我尝试从命令行运行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
所以,尽pipemysql模块已经被加载,但是在PHP脚本中调用mysql_connect()时候仍然会出现错误。
有任何想法吗?
PS:通过Apache运行脚本工作正常。
这个问题的解决scheme似乎既简单又奇怪(?):
php -c /etc/php5/cli/php.ini -nf script.php
为什么我必须再次在命令行上指定php.ini文件,如果解释器说它加载了ini文件,即使没有明确指定它?