2016-01-05 41 views
1

当通过浏览器执行时,我的PHP脚本运行良好,但在尝试使用命令提示符执行时显示错误消息。PHP脚本在通过命令行执行时不会工作,但在从浏览器执行时工作正常

首先,我在php文件中使用“system('ls> /tmp/test.txt')”命令提示符测试了php文件。它运行良好。 (注意:php文件中的同一个mysql查询已经成功地从浏览器中执行)。但是,当执行Mysql查询在PHP脚本通过命令提示符时,它显示错误。

命令:PHP FULLPATH ____/automatic.php

错误:PHP致命错误:调用到FULLPATH未定义功能mysqli_connect()_____上线7号

问题是什么/ automatic.php?

+0

发布您的代码...我认为mysqli_connect()需要参数 – rdn87

+0

@ rdn87错误说该函数不存在,这不是由参数不足造成的。 –

+0

@KaloyanDoichinov我认为相同;) – rdn87

回答

0

注意,PHP可以使用完全不同的配置的CLI(命令行)版本和该web服务器转发到(例如,PHP-FPM)

即错误意味着一个MySQL扩展是不为PHP的CLI配置启用。以特权用户身份登录并尝试此操作: sudo php5enmod mysql,之后应该可以正常工作。

+0

我试过提起命令。但有错误信息:找不到命令。 –

+0

我能够通过谷歌搜索找到“sudo php5enmod mcrypt”命令。上面提到的命令与此不同吗? –

0

php命令行使用与php浏览器不同的php.ini。 您必须安装了pdo_mysql扩展名。 在linux系统的命令行的php.ini是

/etc/php5/cli/php.ini 

和浏览器的php.ini是

/etc/php5/apache2/php.ini 

检查你有文件

extension=pdo_mysql.so 
+0

我检查了文件,但没有得到“extension = pdo_mysql.so”。我是否需要在php.ini中编写同一行或需要安装它? –

+0

或者也想知道两个php.ini中的哪个文件,我必须添加这一行。 –

+0

添加“extension = pdo_mysql.so”后出现错误。 “PHP警告:PHP启动:无法加载动态库'/usr/lib/php5/20090626/pdo_mysqli.so' - /usr/lib/php5/20090626/pdo_mysqli.so:无法打开共享对象文件:无此类文件或目录在未知的行0 –

相关问题