数年前、私が管理しているLinuxサーバにApache 2.2xとPHP 5.3.1をインストールしました。私は(rpmsやwhat-have-youの代わりに).tar.gzを使って指示通りにビルドしました。そして、すべて大丈夫でした。
今日はPHPライブラリのように見える this をインストールする必要があります。私はインストールを行うために上のすべてのステップを経て、私は$PHP_HOME/lib/extensions/somecomplicatedname/ibm_db2.so
の中にibm_db2.soを見つけます。
最後のステップはphp.iniの設定ですが、私のシステムにはphp.iniはありません。恐怖の恐怖。 PHPはもちろんうまくいきますが、私が使いたいと思うこの新しいもつれたibm_db2の事を除けば、誰かがDB2
をいじるためにGUIを使うことができます。 (失敗してibm_db2関数が使用できないことを示す小さなphpスクリプトを試しました)。
私は数年に一度PHPに対処しなければならないので、DB2
へのWebベースのGUIアクセスを可能にするために何ができるかについて非常に基本的なレベルで私を啓発してください。
これを見つける最善の方法は、phpファイルを作成して次のコードを追加することです。
<?php phpinfo(); ?>
ブラウザで開くと、実際に読み込まれているファイルが表示されます。
OPによる更新:
<?php echo php_ini_loaded_file(); ?>
にも注意してください。コマンドラインで次のコマンドを実行します。
php --ini
次のようになります。
Configuration File (php.ini) Path: /etc/php5/cli
Loaded Configuration File: /etc/php5/cli/php.ini
Scan for additional .ini files in: /etc/php5/cli/conf.d
Additional .ini files parsed: /etc/php5/cli/conf.d/curl.ini,
/etc/php5/cli/conf.d/pdo.ini,
/etc/php5/cli/conf.d/pdo_sqlite.ini,
/etc/php5/cli/conf.d/sqlite.ini,
/etc/php5/cli/conf.d/sqlite3.ini,
/etc/php5/cli/conf.d/xdebug.ini,
/etc/php5/cli/conf.d/xsl.ini
それは私の地元のdev-machineからです。しかし、2行目は興味深いものです。何も言及されていない場合は、最初のものを見てください。それがパスです。ここで、PHPはphp.ini
を探します。
スクリプトでphpinfo()
を使って同じ情報をgrepしてブラウザで呼び出すことができます。それは出力の最初のブロックで言及されています。 php -i
はコマンドラインに対しても同じことをしますが、非常に不快です。
これは私のために働く:
php -i | grep 'php.ini'
次のようなものが見えるはずです。
Loaded Configuration File => /usr/local/lib/php.ini
pS php.ininパスだけを取得する
php -i | grep /.+/php.ini -oE
コマンドウィンドウタイプ
php --ini
それはあなたにパスのようなものを見せるでしょう
Configuration File (php.ini) Path: /usr/local/lib
Loaded Configuration File: /usr/local/lib/php.ini
上記のコマンドが機能しない場合は、これを使用してください
echo phpinfo();
このコマンドはそれを見つけるのに役立ちます
php -r "phpinfo();" | grep php.ini
以下のコマンドを使用して、Linuxのphp.ini
ファイルパスを見つけます。
[root@AnyDirectory ~]# locate php.ini
/etc/php.ini
/etc/php.ini.rpmnew
/usr/share/doc/php-common-5.4.45/php.ini-development
/usr/share/doc/php-common-5.4.45/php.ini-production
またはこれを別の方法で試してください
[root@AnyDirectory ~]# php --ini
パスの結果が表示されます
phpinfo();
その場所、またはコマンドラインから教えてくれます
php -i
PHPには、どの設定ファイルがロードされているかを示すための2つのネイティブ関数が付属しています。
設定によっては、ApacheとCLIで異なるiniファイルが使用される場合があります。これが2つの解決策です。
以下をphpファイルに追加してブラウザで開くだけです。
print php_ini_loaded_file();
print_r(php_ini_scanned_files());
端末にコピー&ペーストします。
php -r 'print php_ini_loaded_file(); print_r(php_ini_scanned_files());'
find / -name php.ini
おい...それは私のために働いた!
以下のようなものを使って、あなたの設定ファイルに関するより多くの情報を得ることができます。
$ -> php -i | ack config # Use fgrep -i if you don't have ack
Configure Command => './configure' ...
Loaded Configuration File => /path/to/php.ini
SAPIの場合:php-fpm
Php.infoファイルを作成する必要はありません(とにかく読むことを世界に任せるのは良い方針ではありません)。コマンドラインで:
php-fpm -i | more
その出力のどこかに、この行が表示されます。
Configuration File (php.ini) Path => /etc
これはより完全な説明です: https://www.cloudinsidr.com/content/how-to-figure-out-your-php-configuration-parameters-without-info-php/
この解決方法を試してください
あなたの端末でfind / -name "php.ini"
とタイプしてください。
あなたの端末でphp -i | grep php.ini
とタイプしてください。ファイルパスはConfiguration File (php.ini) Path => /etc
として表示されます。
<?php
の後に新しい行phpinfo();
の下に次のコードを挿入します。これにより、php.iniの場所がわかります。php -a
と入力してphpinfo()と入力するだけです。 PHPが起動した後。