Я пытаюсь запустить 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
модуль загружен, я все еще получаю указанную ошибку при попытке позвонить mysql_connect()
в скрипте PHP.
Любые идеи?
PS: Запуск скрипта через Apache работает нормально.
Решение этой проблемы кажется одновременно простым и странным (?):
php -c /etc/php5/cli/php.ini -nf script.php
Почему я должен указывать php.ini
файл в командной строке снова, если интерпретатор говорит, что он все равно загружает этот ini-файл, даже если он не указывает его явно?