真正企业中的网站,为保证数据的安全,数据库是与网站主机分离的,今天用这个实验研究下这个效果是如何实现的。

    先上拓扑图:


mysql数据库与web主机分离实验_lamp 数据库主机分离

    配置过程:

一.WEB端:

  1. 安装Apache:

tar -vxf httpd-2.2.27.tar.gz
cd httpd-2.2.27
./configure --prefix=/usr/local/apache2
make && make install

2. 安装PHP:

tar vxf php-5.3.29.tar.bz2
cd php-5.3.29
./configure --prefix=/usr/local/php5 --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-apxs2=/usr/local/apache2/bin/apxs
make && make install

    在PHP编译时的参数是关键,因为Mysql数据库并没有安装在本地,无法把在PHP中将mysql指向本地目录,这里利用mysqlnd参数来使PHP与Mysql关联。

3. Apache+PHP整合:

    修改httpd.conf配置文件中的字段:

vim /usr/local/apache2/conf/httpd.conf
LoadModule php5_module        modules/libphp5.so
AddType application/x-httpd-php .php
DirectoryIndex index.php index.html

    保存退出,并测试PHP测试页面是否正常加载。

二.Mysql端:

  1. 安装:

tar vxf mysql-5.1.63.tar.gz
cd mysql-5.1.63
./configure --prefix=/usr/local/mysql
make && make install

2.将mysql加入系统服务及配置调整:

find / --name "my-med*"     #查找my.cnf模板文件
cp /lamp/mysql-5.1.63/support-files/my-medium.cnf /etc/my.cnf
find / "mysql.server"       #查找mysql.server模板文件
cp /lamp/mysql-5.1.63/support1-files/mysql.server /etc/rc.d/init.d/mysqld
useradd mysql
mkdir /usr/local/mysql/data
chkconfig --add mysqld
chkconfig --level 35 mysqld on
vim /etc/my.cnf     #加入如下两个字段

datadir = /usr/local/mysql/data
basedir = /usr/local/mysql

#保存退出
/usr/local/mysql/bin/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/ --basedir=/usr/local/mysql/    #初始化数据库

三.注意事项:

1.PHP编译时的参数要注意,一定要加上mysqlnd参数,否则会造成网站安装页面空白。

2.在WEB端安装wordpress论坛时需注意的问题:

    在论坛安装时数据库填写那要写数据库的域名或IP地址,不像在本机安装时写localhost来本地查找数据库。前两天我还犯了这样一个错误,在帮一个朋友在阿里云主机上安装一个wordpress网站时,怎么跳不出安装页面,一直提示:数据库连接时出错,各处找问题,最后才发现是数据库指定那出错了,云主机的数据库并不在本地,而是在另一台数据库服务器上,然后把wp-config.php文件中的数据库指向数据库服务器的域名,问题才得以解决。这里wordpress论坛的安装就不赘述了,因为各个网站安装方式大同小异,就交给大家自己来研究了。