php コマンド ラインが、メインの php インタープリターとは異なる php.ini を使用しているようです。Ubuntu 10.4 を使用しています。私の問題は、メインの php.ini に外部ライブラリの追加パスが含まれていることですが、cli バージョンにはこれが存在しないため、パス インクルージョン エラーが発生します。
ありがとう
PHPに聞いてみてください:
php -i |grep php\.ini
さらに良いことに:
$ php --ini
これにより、ロードされたすべての余分な *.ini ファイルも表示されます (通常、debian の conf.d ディレクトリにぶら下がっています)。
構成ファイル (php.ini) パス: /etc/php5/cli
ロードされた構成ファイル: /etc/php5/cli/php.ini 次
の追加の .ini ファイルをスキャンします: /etc/php5/cli/conf.d
追加の .ini解析された ファイル :
/etc/php5/cli/conf.d/apc.ini、/etc/php5/cli/conf.d/curl.ini、/etc/php5/cli/conf.d/gd.ini、/etc /php5/cli/conf.d/geoip.ini、/etc/php5/cli/conf.d/imagick.ini、/etc/php5/cli/conf.d/imap.ini、/etc/php5/cli/ _ _ _ conf.d/ldap.ini、/etc/php5/cli/conf.d/memcache.ini、/etc/php5/cli/conf.d/memcached.ini、/etc/php5/cli/ conf.d / ming .ini、 /etc/ php5/cli/conf.d/mysql.ini、/etc/php5/cli/conf.d/mysqli.ini、/etc/php5/cli/conf.d/ pdo.ini、
/etc/php5/cli/conf.d/pdo_mysql.ini、/etc/php5/cli/conf.d/pdo_sqlite.ini、/etc/php5/cli/conf.d/snmp.ini、/etc/php5/
_
_
_ cli/conf.d/sqlite.ini、/etc/php5/cli/conf.d/sqlite3.ini、/etc/php5/cli/conf.d/suhosin.ini、/etc/php5/
cli
/
conf.d /tidy.ini、/etc/php5/cli/conf.d/xdebug.ini、/etc/php5/cli/conf.d/xsl.ini
_
_
これは php-cli に関するものであることに注意してください。php-cgi にはこれがありません。
最後の仕事で、実行のたびに ini ファイルを指定する習慣がつきました...
C:\php\cli\php.exe -c C:\php\php.ini myscript.php
以下のコマンドを使用して php.ini を見つけることができます。Linuxで
find / -name php.ini
また
locate php.ini
/etc/php5/cli/php.ini
私も同じ問題を抱えていました。/etc/php5/conf.d/ 内のすべてのファイルから所有者と権限を確認するだけです。root が所有し、誰でも読み取り可能である必要があります。