質問: コマンドラインからphp拡張機能を有効/無効にするコマンドはありますか? コマンドラインから簡単にphp拡張機能を有効/無効にするコマンドはありますか? (php.ini)
回答: あなたは単に使うことができますsed -i.bkp 's/^extension=x.so/# extension=x.so/' /path/of/php.ini && /etc/init.d/httpd reload -i.bkp php.php.bkpとしてバックアップを取り、元のファイルに書き込みます&&最初のコマンドが成功した場合、httpdサービスをリロードします。検索パターンが一致しないときにsedが終了ステータス0を与えることに気づくので、使用できますphp_ini=/path/of/php.ini __module=x.so grep -q "^extension=$__module" $php_ini && { sed -i.bkp "s/^extension=$__module/# extension=$__module/" $php_ini && echo /etc/init.d/httpd reload; } || echo "cannot make requested change" または、以下のスクリプトを有効化と無効化に使用できます。#!/bin/bash php_ini=/path/of/php.ini __module="$2" [[ ! -f $php_ini ]] && { echo "error: can not found $php_ini" >&2; echo "please define php.ini path in $php_ini"; exit 1; } [[ -z $__module ]] && { echo "error: please type module name:" >&2; exit 1; } show_help(){ cat <<_eof usage: to enable : $0 -ie <modulename> to disable : $0 -id <modulename> example: $0 -i xyz.so _eof } do_enable() { grep -eq "# extension=$__module$" $php_ini && { sed -i.bkp "s/^# extension\=$__module$/extension=$__module/" $php_ini && echo /etc/init.d/httpd reload; echo "changes successfully done"; } || echo "cannot make requested change" } do_disable() { grep -q "^extension=$__module" $php_ini && { sed -i.bkp "s/^extension=$__module/# extension=$__module/" $php_ini && echo /etc/init.d/httpd reload; echo "changes successfully done"; } || echo "cannot make requested change" } main() { case $1 in -ie) do_enable ;; -id) do_disable ;; *) show_help ;; esac } main $*