我的php版本是5.2.13,ysql版本是5.0,在执行下面的语句时
$con = mysql_connect($host_port,$user,$passwd);
报了错误:
PHP Fatal error: Call to undefined function mysql_connect()我查看了下phpinfo()里的信息,有如下两个选项:'--with-mysql=shared,/usr' '--with-mysqli=shared,/usr/bin/mysql_config'
另外,在我的/etc/php.ini中查看extension_dir = "/usr/lib64/php/modules",在/usr/lib64/php/modules 这个目录下,却发现没有mysql.so文件。
我尝试了下:
把
/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD/mysql/mysql.so
下的mysql.so拷贝到 /usr/lib64/php/modules下,再执行一次
$con = mysql_connect($host_port,$user,$passwd);
仍然报: Call to undefined function mysql_connect()请问我是不是还要装某些包啊?比如php-mysql和papache2-mod_php这两个包
$con = mysql_connect($host_port,$user,$passwd);
报了错误:
PHP Fatal error: Call to undefined function mysql_connect()我查看了下phpinfo()里的信息,有如下两个选项:'--with-mysql=shared,/usr' '--with-mysqli=shared,/usr/bin/mysql_config'
另外,在我的/etc/php.ini中查看extension_dir = "/usr/lib64/php/modules",在/usr/lib64/php/modules 这个目录下,却发现没有mysql.so文件。
我尝试了下:
把
/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/auto/DBD/mysql/mysql.so
下的mysql.so拷贝到 /usr/lib64/php/modules下,再执行一次
$con = mysql_connect($host_port,$user,$passwd);
仍然报: Call to undefined function mysql_connect()请问我是不是还要装某些包啊?比如php-mysql和papache2-mod_php这两个包
或者查看一下而 error log
/etc/php.ini中查看extension_dir = "/usr/lib64/php/modules"
此modules中是没有mysql.so文件的
php和mysql的关系都搞不清楚
我在网上查了下资料,有的说是要装 php-mysql包,我装了下,确实在/usr/lib64/php/modules目录下就多了mysql.so和其它几个so文件,但执行时报了新的错误:PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/mysql.so' - libmysqlclient.so.16: cannot open shared object file: No such file or directory in Unknown on line 0
extention=mysql.so 加一行这个
apachectl restart ...
还是重装吧。估计cmake时,什么地方没编译好。
好吧,我只用过apt-get的lamp自动安装的
我看了下,/usr/lib64/php/modules下的所有so,比如,mysql.so,pdo_mysql.so等等对所有组的人都有可读和可执行权限的
additional .ini files parsed => /etc/php.d/dbase.ini,
/etc/php.d/mysql.ini,
/etc/php.d/mysqli.ini,
/etc/php.d/pdo.ini,
/etc/php.d/pdo_mysql.ini
但是在执行$con = mysql_connect($host_port,$user,$passwd);
时仍然报了错误
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/mysql.so' - libmysqlclient.so.16: cannot open shared object file: No such file or directory in Unknown on line 0
Call to undefined function mysql_connect()
我装了一个包, MySQL-shared-compat ,
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/mysql.so' - libmysqlclient.so.16: cannot open shared object file: No such file or directory in Unknown on line 0
这样的错误就没有了,但同时就又出现了新的错误
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/pdo.so' - /usr/lib64/php/modules/pdo.so: undefined symbol: gc_remove_zval_from_buffer in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/pdo_mysql.so' - /usr/lib64/php/modules/pdo_mysql.so: undefined symbol: php_pdo_register_driver in Unknown on line 0
有可能出编译版本不对应,基础库,等等许多问题建议你从源码编译,配合好,执行效率高,错误信息更清晰。
和
undefined symbol: php_pdo_register_driver in Unknown on line 0
的原因是:php-pdo和php版本不符
本机装的php版本是5.2.13,而rpm -qa|grep php可看到php-pdo-5.3.9-1.el5
所以先卸载了php-mysql和php-pdo,直接装与5.2版本对应的包
sudo yum install php-pdo-5.2.13 -b test -y
再装
sudo yum install php-mysql-5.2.13-2 -b test
就行了
还有单从这句call to undefined function 更像是模块没加载的问题。 重新编译几次试试。
请把你编译时的 configure 发出来看看~