<分区>
我在 ESXI 上的虚拟 VMWARE 测试环境中运行两个 Ubuntu 服务器 (ubuntu-14.10-server-amd64.)。
- 第一台服务器是后端 mysql 服务器。 IP:192.168.253.140
- 第二台服务器有一个带有 PHP 的 Apache2 服务来提供网页。 IP:192.168.253.143
1个MySQL服务器:192.168.253.140
A) 我配置了服务器,以便 2 台特定机器有 2 个用户能够连接到特定数据库。
用户 'apache',让 apache 服务器连接到 mysql 服务器:
create user 'apache'@'192.168.253.143' IDENTIFIED BY 'abc123';
grant ALL PRIVILEGES ON Modulus_Docker_IW.* TO 'apache'@'192.168.253.143' WITH GRANT OPTION;
用户“pc”,让我自己的电脑通过 WAMP 服务器 (PHP) 连接到远程 mysql 服务器。
create user 'pc'@'192.168.253.1' IDENTIFIED BY 'abc123';
grant ALL PRIVILEGES ON Modulus_Docker_IW.* TO 'pc'@'192.168.253.1' WITH GRANT OPTION;
FLUSH PRIVILEGES; FLUSH HOSTS;
B) 我还配置了绑定(bind)/etc/mysql/my.cnf 以便 mysql 服务器接受任何主机(不仅是本地主机)
bind-address = 0.0.0.0
2 Apache 服务器:192.168.253.143
Apache 服务器已安装,我在服务器上上传了我的测试 php 页面。这是一个从 mysqlserver 上的数据库获取用户名和密码的简单页面。
我在 Dreamweaver 中创建了一个与“pc”用户的连接,我可以检索一些数据,使用 WAMP 服务器处理 PHP。
如果我将文件上传到远程 Apache 服务器,我将连接字符串更改为 apache 用户并希望一切顺利。但我只是得到了一个空白页面,什么也没有...。
Apache2 中是否有我必须做的事情,以允许到 mysqlserver 的传出或传入连接?
PHP代码:
<?php
$username = "pc";
$password = "abc123";
$host="192.168.253.140";
$database="Modulus_Docker_IW";
$link = mysql_connect($host, $username, $password);
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_select_db ($database, $link);
$strSQL = "SELECT naam, paswoord FROM tblUsers ORDER BY naam ASC";
$result = mysql_query( $strSQL, $link );
mysql_close($link);
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>
<p>echo 'Connected successfully';<p>
<?php
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
echo "Naam :{$row['naam']} <br> ".
"--------------------------------<br>";
}
?>
</body>
</html>
感谢您的评论。我现在从 apache php 获得了一些调试信息。
Fatal error: Call to undefined function mysql_connect() in /var/www/html/modulus/connectHand.php on line 7
好的,解决了:解决方案是在 PHP/Apache: PHP Fatal error: Call to undefined function mysql_connect() 上找到的
我没有在 apache 服务器上安装“sudo apt-get install php5-mysql”。
感谢您的快速回复。