web-dev-qa-db-ja.com

PHP CLI:mysqlモジュールが有効になっている場合でも、未定義の関数mysql_connect()を呼び出します

コマンドラインからPHPスクリプトを実行しようとしましたが、次のエラーが発生します。

_Call to undefined function mysql_connect()
_

ただし、mysqlモジュールはロードされます。

_root /var/www/scripts # php -m | grep mysql
mysql
mysqli
pdo_mysql
_

私はDebianマシンを使用しているため、すべてのモジュールが独自の.iniファイルにロードされています。

_root /var/www/scripts # 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/10-pdo.ini,
/etc/php5/cli/conf.d/20-apc.ini,
/etc/php5/cli/conf.d/20-Gd.ini,
/etc/php5/cli/conf.d/20-mcrypt.ini,
/etc/php5/cli/conf.d/20-mysql.ini,
/etc/php5/cli/conf.d/20-mysqli.ini,
/etc/php5/cli/conf.d/20-pdo_mysql.ini,
/etc/php5/cli/conf.d/20-xmlrpc.ini
_

したがって、mysqlモジュールがロードされていても、PHPスクリプトでmysql_connect()を呼び出そうとすると、エラーが発生します。

何か案は?

PS:Apacheを介したスクリプトの実行は正常に機能します。

2
Matthias

この問題の解決策は、簡単で奇妙な(?)のようです。

php -c /etc/php5/cli/php.ini -nf script.php

明示的に指定しなくても、インタプリタがそのiniファイルをロードすると言った場合、コマンドラインでphp.iniファイルを再度指定する必要があるのはなぜですか?

0
Matthias