PHP应该安装在Apache Web服务器还是MySQL数据库服务器上?

build立:

两个单独的框:

  1. Fedora 15,Apache,PHP和PHP模块
  2. Fedora 15,MySQL

我无法从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_connectmysql_error等不是PHP的一部分。 它们是一个扩展。

如果你想testing如果PHP有这些function,你可以做一个像这样的testing:

 if(!function_exists('mysql_connect')) echo 'MySQL extension not installed'; 

你应该在你的MySQL盒子上安装mysqlmysql-server

你应该在你的Apache盒子上安装phpphp-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 ,这是许可模式