LAMP 在一台 linux 服务器上与 apache 和 php 堆叠,在另一台 linux 服务器上与 mysql 堆叠

LAMP stack with apache and php on one linux server and mysql on a different linux server

我对 linux 和 LAMP 设置还很陌生。我想设置一个 LAMP 环境,AP 在一个 linux 服务器上,M 在另一个 linux 服务器上。好不容易找到这样配置的相关文档

到目前为止我已经完成了以下步骤:

服务器 1:

yum install -y httpd
/sbin/service httpd restart
yum install -y php php-mysql
sed -i "s/Listen 80/#Listen 80/g" /etc/httpd/conf/httpd.conf
yum install -y mod_ssl openssl
/sbin/service httpd restart
service iptables stop

我将 /etc/httpd/conf/httpd.conf 中的服务器名称从

更改为
#ServerName www.example.com:80

ServerName 172.32.35.14 (ip address of server1)
/sbin/service httpd restart

服务器 2:

yum install -y mysql-libs
yum install -y mysql
yum install -y perl-DBI
yum install -y perl-DBD-MySQL
yum install -y mysql-server
/sbin/chkconfig mysqld on
/sbin/service mysqld start
mysql -u root  -e "CREATE USER 'mysqluser' IDENTIFIED by 'password'" 
mysql -u root  -e "CREATE USER 'mysqluser'@'localhost' IDENTIFIED by 'password'"
mysql -u root  -e "GRANT ALL PRIVILEGES ON *.* TO 'mysqluser'@'localhost' WITH GRANT OPTION"
mysql -u root  -e "GRANT ALL PRIVILEGES ON *.* TO 'mysqluser'@'%' WITH GRANT OPTION"
mysql -u mysqluser -p password -e "CREATE DATABASE mysqldb" 
mysql -u mysqluser -p password mysqldb < /tmp/mysqlinstaller/world.sql
service iptables stop

然后我有这些 post 配置步骤:

在安装了我的 mysql 的服务器 2 上,我执行了以下操作:

bind-address = 172.32.35.14 (ip of server 1 where apache/php are installed)
service mysql restart

但是我无法建立连接。你能指出我遗漏了什么并指导我吗?

好的,一些可能对您有帮助的事情:

  1. 我认为 ServerName 没有达到您的预期。请查看 docs。 TLDR:我认为您不需要根据需要修改它。
  2. bind-address 实际上是 MySQL 服务器将自己绑定以监听的地址,因此您不希望它监听 server1 的 IP,而是监听 server1 的 IP 地址服务器 2。这很可能是您的 MySQL 无法启动的原因。如果您使用的是较旧的 MySQL 版本,请确保您已将 skip_networking 选项注释掉。
  3. 创建用户后别忘了FLUSH PRIVILEGES

现在有几个问题:

  1. 您能否确认服务器 1 上的 apache 和 PHP 正在运行?
  2. 完成我建议的第 2 步后,您能否确认您已启动 mysql 服务器并在服务器 2 上 运行?

由于这可能需要一些沟通,我会随时更新答案。

编辑

到目前为止,我们已经在 server2 和 apache 上启动 MySQL 和 运行,在 server1 上启动 PHP 和 运行。尝试从主机访问 server1 时出现问题,但我们稍后会处理这个问题。现在让我们确保我们可以从 PHP 连接到服务器 2 上的 MySQL。

能否在 mysqldb 中创建一个 table,在其中插入几行,然后尝试从 server1 上的 PHP 脚本中检索这些行? 现在继续通过 lynx.

从 server1 访问页面