web-dev-qa-db-ja.com

コマンドラインからphp拡張機能を有効/無効にするコマンドはありますか?

コマンドラインから簡単にphp拡張機能を有効/無効にするコマンドはありますか? (php.ini)

49
PHPst

DebianベースのディストリビューションでPHP5.4 +を使用している場合は、php5enmodを使用して有効にし、php5dismodを使用してPHP拡張機能を無効にします。

27
cherrysoft

次のコマンドを使用して、コマンドラインから拡張機能を有効にできます。

php -d extension=/path/to/extension.so

-dは、コマンドラインを介してini値を渡すために使用されます。残念ながら、php.iniファイルで設定されている拡張機能をコマンドラインで無効にする方法はありません。 (もちろん、他の回答に従うこともできますが、-dまたはphpコマンドのオプションを使用して実行できることは何もありません。)

15
hek2mgl

Lubuntuではpdo_sqlite

手動で有効にする:

$ Sudo php5enmod pdo_sqlite

動作しない場合は、以下を確認してください。

$ ls /etc/php5/mods-available

結果リストがありませんpdo_sqlite.ini。インストールする必要があります。

$ Sudo apt-get install php5-sqlite

またはphp7の場合:

$ Sudo apt-get install php7-sqlite3

拡張子sqlite3は、インストールプロセス中にCLIおよびApacheで自動的に有効になり、mods-availablepdo_sqlite.inisqlite3.ini

拡張機能を無効にする:

$ Sudo php5dismod pdo_sqlite
9

-nを指定して、php.iniから拡張機能が読み込まれないようにすることができます。これにより、一部(XDebugなど)を使用しているときのパフォーマンスが向上します。例えば。

php -n -r "phpinfo();"
4
kenorb

-nを使用し、-dextensionを使用して必要な各拡張機能を追加する必要があります

例:

php -n -dextension=json.so -dextension=phar.so composer.phar update
3
Cobuz Alexandru

あなたは単に使うことができます

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 $*
2
Rahul Patil

使用法:phpenmod [-v ALL | php_version] [-s ALL | sapi_name] module_name [module_name_2]

Phpenmod -s cli yourextensionを使用してください

2
neoteknic

これを確認してください

インストールされているすべてのPHPモジュール構成ファイルは/ etc/php/PHP_VERSION/mods-availableディレクトリにあります

0
Dulanjana K