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

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

设置:

两个独立的盒子:

  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>";

?>

当 Apache 提供该页面时,显示了“开始测试”文本,但没有显示 MySQL 错误或“结束测试”文本。

我能够使用 MySQL 工作台从远程计算机的端口 3306 连接到 MySQL DB。用户和 IP 地址的权限和访问权限已完全开放 (%),以避免出现这方面的问题。

答案1

不要忘记,、mysql_connectmysql_error不是 PHP 的一部分。它们是一个扩展。

如果您想测试 php 是否具有这些功能,您可以做一个小测试,如下:

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

你应该在你的 MySQL Box 上mysql安装mysql-server

您应该已经在 Apache 机器上php安装php-mysql了。如果尚未安装,php-mysql请安装它:yum -y install php-mysql然后重新启动 Apache。

答案2

跑步

$ netstat -l

您应该看到 mysql 服务器正在监听端口 3306。如果是 127.0.0.1,则服务器仅监听环回接口。my.cnf在这种情况下,请修复您的问题。

答案3

问题已解决。我所做的更改是使用 SElinux 并运行setsebool -P httpd_can_network_connect=1或运行setenforce=0宽容模式

相关内容