Bashを使用してPHP拡張フォルダを見つける

Bashを使用してPHP拡張フォルダを見つける

Source Guardian PHP拡張機能をインストールするためのbashスクリプトを作成しようとしていますが、ターゲットディレクトリはUbuntuのそれ以降のバージョンによって異なります。

Ubuntu 14.04にPHP5をインストールすると、拡張機能は/usr/lib/php5/20121212+lfs/に保存されます。 Ubuntu 15.04では、このディレクトリが変更されます(例:/usr/lib/20131226/)。

/etc/php5/fpm/php.ini および /etc/php5/fpm/php-fpm.conf を確認しましたが、これらのファイルのいずれも 20121212+lfs または 20131226 を参照していません。

Source Guardian 拡張機能を別の場所に置くと読み込まれません。

プログラムで拡張フォルダを決定する方法はありますか?

答え1

たぶんこれを行う必要があります:

php-config --extension-dir

php-configない場合は、Ubuntu apt-get install php-config/ Debianまたはyum install php-configCentOS / Red Hat)

phpこのコマンドは拡張フォルダの正確な場所を提供します。

php.ini拡張機能を使用するには、拡張機能を変更することを忘れないでください。

答え2

あなたはこれを使うことができます

php -i | grep extension_dir

答え3

xdebugファイル拡張子を検索できます。find $(php -r 'echo ini_get("extension_dir");') -type f -name 'xdebug.so'

または単に値を取得してください:php -r 'echo ini_get("extension_dir");'

答え4

それでもただ追加したかった

php-config --extension-dir

拡張ディレクトリが提供されていますが、通常はアクティブなphp.iniファイル内のいくつかの拡張場所を修正します。 (複数のPHPバージョンをシステムに同時にインストールできます。phpinfo関数の出力を見ると、現在のphp.iniファイルの場所を見つけることができます。phpinfo関数の出力でphp.ini検索を使用してください。)

たとえば、zend_extension変数を使用すると、xdebugは主にphp.iniファイルの末尾にある拡張ディレクトリとは異なるフォルダに配置できます。

zend_extension=/usr/lib/php/20170718/xdebug.so

したがって、ディレクトリ内のモジュールファイルを交換するときは注意してください。 (ある瞬間奇妙になりました。ファイルを変更しましたが、実際にはphpinfoファイルの出力に反映されていないためです。)

関連情報