搭建lamp环境,apache和php在一台服务器,mysql在另一台服务器

2024-11-19 10:14:22
推荐回答(3个)
回答1:

先回答你在一台服务器上安装lamp和在两台服务器上分别安装lamp的区别。
只要是为了安全性,其次是考虑均衡服务器性能。
一般有点规模的网站,都会做如下考虑,将网站应用层,数据层和图片附件等剥离。
应用层,你可以理解为放你的php程序的服务器,应用服务器是直接面对访问者的,一般如果被黑客攻击的话,主要是攻击他。
数据层,就是一台服务器上,仅仅安装mysql,其他什么php,apache什么的,什么都不安装,并且和应用层等组成局域网,
也就是要访问数据库,必须先通过应用层服务器。
图片和附件服务器,应为数据量巨大,需要独立为一台服务器,当然,这个回答已经超过你问题的范畴了。
多台服务器,还可以利用他们自己相互备份,比如数据库服务器,定时拷贝应用服务器的内容,应用服务器,同事拷贝数据库服务器的内容。
这样,无论哪个服务器的硬盘损坏,都可以将最近的备份立刻调出,甚至此时将某个服务器直接安装lamp,先顶一顶,做到服务不间断。

另外,应用服务器和数据库服务器对硬件的要求是不一样的,如果你经常接触网络程序和服务器,可以发现,程序的短板一般都是数据库。
数据库对服务器的内存要求非常高,而程序对cpu的要求比较高,我见过最贵的数据库服务器售价是36万(去年),和他配套的应用服务器是1万元的。
每天顶100万pv左右的访问。

然后回答你如何配置,其实很简单,如果服务器托管,你让机房帮你搞定(免费的,你可以提出要求)。
如果在本地调试,进入mysql,命令界面,输入用户名和密码,输入以下代码

CREATE USER 'username'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'username'@'%' IDENTIFIED BY 'password'
WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

以上代码生成一个用户名是 username ,密码是 password 的远程用户。
你可以查一下mysql grant语句的使用方法。
一个很简单的方法是,在应用层服务器上安装一个phpmyamdin,然后在config.default.php 文件中,将所有的localhost,改成装有mysql数据库的ip地址。
然后就很简单了,就像操作本地数据库一样,就这么简单。

希望对你有用。
=============================================================
你追问的问题应该是这样的。
mysql中建立一个可以远程访问的用户名和密码。
php程序中,将连接数据库的代码中的,localhost,改为mysql所在服务器的IP。

回答2:

区别在于程序和数据是否分开放在两个服务器上。
唯一不同的只是php连接mysql的时候,换一下host

回答3:

比如apache服务器是192.168.0.1
mysql服务器是192.168.0.2

在mysql上建一个用户user 密码password 主机192.168.0.1

用php连接数据库就是mysql_connect('192.168.0.2', 'user', 'password');