我已经安装了各种PHP包,以便能够在Apache中使用PHP,但也可以在命令行中使用PHP。从这两个方面,我都需要能够连接到MySQL数据库。很简单对吧?这就是我所想的,但是使用php-cli,我会收到以下错误:
Fatal error: Call to undefined function mysql_pconnect()我尝试从零开始,删除所有依赖的包和配置,如下所示:
sudo apt-get --purge remove php5 libapache2-mod-php5 php5-cli php5-mysql然后运行以下命令来安装包:
sudo apt-get install php5 libapache2-mod-php5 php5-cli php5-mysql然后我发现cli使用的是哪个php.ini:
php -r "phpinfo();" | grep php.ini这给了我这个:
Configuration File (php.ini) Path => /etc/php5/cli/php.ini然后,我取消了扩展部分中的“mysql.so”注释,但是当我这样做并运行以下命令时,它会说:
PHP Warning: Module 'mysql' already loaded in Unknown on line 0因此,出于某种原因,他认为它已经加载了,但是不管是否启用了“mysql.so”,php都找不到'mysql_pconnect‘函数。
我知道有一些部分可以启用持久连接,默认情况下是打开的,标准函数'mysql_connect‘也不可用。
我遗漏了什么?谢谢!
更新:
正如Bart S. 'php -r所建议的那样,"phpinfo();“‘:
MYSQL_SOCKET => /var/run/mysqld/mysqld.sock MYSQL_INCLUDE => -I/usr/include/mysql MYSQL_LIBS => -L/usr/lib -lmysqlclient mysql.allow_persistent => On => On .还有更多
来自Jakačar。‘'php -v’显示:
PHP5.1.2 (cli) (建于:2009年2月11日19:55:22)
并从php交互模式'php -r 'var_dump(extension_loaded("mysql"));‘什么都不给!
发布于 2009-04-08 08:50:59
php -i | grep mysql第一行应包括:
Configure Command => '../configure' ... '--with-mysql=shared,/usr'也要检查
grep extension_dir /etc/php5/cli/php.ini应该是:extension_dir = /usr/lib/php5/extensions,然后检查/usr/lib/php5/extensions/mysql.so的权限,如果链接正确的话:
ldd /usr/lib/php5/extensions/mysql.so发布于 2012-05-18 10:25:03
您不能在CLI模式下使用pconnect。您没有一个持久的进程,如web服务器,它可以容纳打开的连接。
发布于 2009-04-08 09:04:43
cli模式下的pconnect有意义吗?也许这是“按计划工作”。
注意:注意,这类链接只有在使用模块版本的PHP时才能工作。有关详细信息,请参阅持久数据库连接部分。
https://stackoverflow.com/questions/729070
复制相似问题