build立:
两个单独的框:
我无法从Apache Web服务器连接到MySQL。
<?php echo "<br>begin test<br>"; mysql_connect('hostname[FQDN]','username','password') or ("Error" . mysql_error()); echo "<br>end test<br>"; ?>
正在显示“开始testing”文本,但在Apache服务页面时没有MySQL错误或“结束testing”文本。
我可以使用端口3306上的MySQL工作台从远程机器连接到MySQL数据库。 用户和IP地址的权限和访问权限已完全打开(%),以避免在这些方面出现问题。
不要忘记, mysql_connect
, mysql_error
等不是PHP的一部分。 它们是一个扩展。
如果你想testing如果PHP有这些function,你可以做一个像这样的testing:
if(!function_exists('mysql_connect')) echo 'MySQL extension not installed';
你应该在你的MySQL盒子上安装mysql
和mysql-server
你应该在你的Apache盒子上安装php
和php-mysql
。 如果你还没有安装php-mysql
请安装: yum -y install php-mysql
,然后重新启动Apache。
跑
$ netstat -l
你应该看到mysql服务器在端口3306上侦听。如果是127.0.0.1,服务器只侦听回送接口。 在这种情况下修复你的my.cnf
。
问题解决了。 我所做的更改是使用SElinux并运行setsebool -P httpd_can_network_connect=1
或运行setenforce=0
,这是许可模式