微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP / Apache:PHP致命错误:调用未定义的函数mysql_connect

我有在Fedora 15机器上运行的MysqL(5.5.23社区服务器),Apache(2.2)和PHP(5.3.13)(64位)。 每个工作都没有问题。

我认为,PHPconfiguration/编译与MysqL工作,但是当我尝试加载任何PHP网页,使MysqL调用,然后我得到上面提到的致命错误(在Apache错误日志)。 虽然PHP可以通过Apache和命令行自行工作。

当我从命令行运行PHP -i时,确定它显示了所有的MysqL数据块,但是当我加载显示PHPinfo()的页面时,没有提到MysqL模块。

我也在PHP.ini中尝试了un-commenting“extension = MysqL.so”,但是PHP却抱怨“PHP启动:无法加载dynamic库'/usr/lib64/PHP/modules/MysqL.so'." (即使模块确实驻留在那里)。 但是,我并不完全确定这条线是否需要不予评论。 [更正:说错误实际上是由于错字,但从命令行运行表明,该模块已经加载 – 无论如何PHP有这样的警告。]

使用htaccess修复拼写错误的url

可重写的URL重写(更改地址栏中的URL)

Apache ErrorDocument外部redirect与variables

Python作为Windows和Apache下的FastCGI

在归档opentokaudio/video聊天时遇到问题

我也禁用了SELinux; 停止/重启Apache很多次; 假设它有什么区别的话,MysqL-Devel就是一个例子。 而且,似乎是其他所有可能的事情。

如果我从命令行运行一个小小的PHPtesting脚本来访问MysqL数据库,那么它可以正常工作,所以PHP知道MysqL,但是当它在Apache下运行时,似乎不知道MysqL是否存在。

我一直试着解决这个问题,似乎已经尝试了一切,但似乎没有任何工作。

我不介意必须重新安装PHP,如果有必要的话,如果有人能够certificate正确的方式来configuration/编译与MysqL支持,以便我可以得到它在Apache下工作,虽然理想情况下,我只是更喜欢获得现有的安装工作。

非常感谢您的帮助!

java.lang.NoClassDefFoundError:apache-tomcat-7.0.25

configurationApache不重写FILE + SLASH的URL

重复使用,并添加到500错误,以获得更好的肥皂属性

为什么不是Flask给我一个交互式debugging器?

限制Apache2中的并发连接数

如果有其他人面临这种​​情况,这是PHP无法访问MysqL客户端库的情况。 在系统上安装MysqL服务器不是正确的修复方法。 修复Ubuntu(和PHP 5):

sudo apt-get install PHP5-MysqL

安装客户端之后,应该重新启动Web服务器。 如果你使用的是Apache,下面的代码应该可以工作:

sudo service apache2 restart

请记住,从PHP 5.5.0起, MysqL_connect()函数已被弃用,并且在PHP 7中完全删除

更多信息可以在PHP文档中找到:

引用:

警告

这个扩展在PHP 5.5.0中被弃用,并且在PHP 7.0.0中被删除。 应该使用MysqLi或PDO_MysqL扩展。 另请参阅MysqL:选择一个API指南和相关的FAQ以获取更多信息。 这个功能的替代包括

* MysqLi_connect()

* PDO :: __构造()

我有这个相同的问题,不得不参考PHP手册告诉我的MysqLMysqL的扩展要求加载libMysqL.dll。 我在C: WINDOWS SYstem32(Windows 7)下搜索它,找不到,所以我在这里下载并放在我的C: WINDOWS SYstem32。 我重新启动Apache,一切正常。 花了我3天弄清楚,希望它有帮助。

Apache模块PHP版本可能出于某种奇怪的原因,不会像CLI版本那样提取PHP.ini文件,我建议您仔细阅读:

.ini文件PHP -i和PHPinfo()通过网页的不同之处*

如果没有区别,那么看看MysqL.so和.ini文件的权限,但我认为Apache解析这些作为root用户

在这里要非常清楚,不要去搜索文件系统上的PHP.ini文件,看看PHP说它在看什么

怎么样

sudo yum安装PHP-MysqL

要么

sudo apt-get安装PHP5-MysqL

我收到了类似的错误消息。 认为我无意中在PHP.ini文件的第一行开头输入了“9o”。 一旦我删除了,我不再收到“致命的错误”消息。 希望这可以帮助。

MysqL deamon应该正在运行。

如果不尝试这个:

#/etc/init.d/MysqL start

或这个:

#service MysqLd start

如果你想在启动时添加MysqL

# chkconfig --add MysqLd # chkconfig -- level 235 MysqLd on

如果是的话,它仍然不工作试试这个:

取消/etc/PHP/PHP.ini中的以下行注释

extension=MysqLi.so extension=MysqL.so

并请检查您的帖子上面'/usr/lib64/PHP/modules/msql.so' 。 它应该是MysqL.so (如果错误输入忽略它)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐