php - 将 Apache 连接到远程 MySQL

标签 php mysql apache ubuntu

<分区>

我在 ESXI 上的虚拟 VMWARE 测试环境中运行两个 Ubuntu 服务器 (ubuntu-14.10-server-amd64.)。

  1. 第一台服务器是后端 mysql 服务器。 IP:192.168.253.140
  2. 第二台服务器有一个带有 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”。

感谢您的快速回复。

最佳答案

好的,解决了:解决方案是在 PHP/Apache 上找到的:PHP Fatal error: Call to undefined function mysql_connect()

我没有在 apache 服务器上安装“sudo apt-get install php5-mysql”。

感谢您的快速回复。

关于php - 将 Apache 连接到远程 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27680948/

相关文章:

php - MySQLi 如果值不存在则插入

phpMyadmin 无法导入文件,错误为 : open_basedir > enabled without access to the/tmp directory

php - Magento 迁移中断 - 子页面返回 404

mysql - 过滤数据库表

ruby-on-rails - nginx 用 Passenger 重写规则

linux - Github post hook 到 DEVELOPMENT VM

php - 通过唯一ID动态加载MySQL数据到Bootstrap模态-CodeIgniter

php - 选择连接表 A 和表 B,同时根据表 A 的外键显示表 B 项目

php - 根据两列列出表

apache - GCP HTTP(S) 负载平衡器会将 HTTP/1.1 header 名称转换为小写,我的代码会受到影响吗?