快速架构Mysql与Apache分离的完整的LAPM方案
作者:卫岩
一、方案分析:
我们构建出三个服务器,两个为Web服务器,一个为Mysql的数据服务器。其中两个Web服务器将接收到的数据请求直接连入最底层的Mysql服务器。将所有的数据都存储在Mysql服务器上。
这里我们采用wordpress这款时下最流行的个人博客站点来当做我们的测试网站。
二、实现方法:
我们采用实用nfs共享的机制,实现让Mysql服务器的数据直接共享给两个Web服务器,然后数据通过Web服务器访问进来的时候,会自动通过php找到位于其他主机上的Mysql数据库。
三、实现方式:
1.配置Mysql服务器:
首先我们要配置我们的yum安装源的位置。
之后确保重要的开发包都已经成功安装,他们分别是:
"DevelopmentTools"
"DevelopmentLibraries"
"LegacySoftware Development"
"X SoftwareDevelopment"
"MySQLDatabase"
"WebServer"
之后,为mysql创立mysql用户和组:
groupadd -g 3306mysql
useradd -u 3306-g mysql -M -s /sbin/nologin mysql
在任何一台主机上不要忘记关闭selinux
serenforce 0
我们创建一个存放数据的目录,将已经配置好的逻辑卷挂载至上面(/mydata)
并且给它mysql的权限:
chown -R mysql:mysql /mydata
将下载到的mysql-5.5.15-linux2.6-i686.tar.gz解压至/usr/local
tarxf mysql-5.5.15-linux2.6-i686.tar.gz -C /usr/local
创建一个链接目录,使之简单的目录名成为我们的工作目录:
cd /usr/local
ln -sv mysql-5.5.15-linux2.6.i686 mysql
把mysql目录的属主属组都改为mysql用户,mysql组
cd mysql
chown -R mysql:mysql .
初始化Mysql
scripts/mysql_install_db --user=mysql--datadir=/mydata/data
此时mysql尚且不能启动
要把属主改为root用户
chown -R root .
给mysql准备启动所需要的服务的脚本
cp support-files/mysql.server/etc/init.d/mysqld
加入到服务队列
chkconfig --add mysqld
开机启动启动
chkconfig mysqld on
这个时候如果启动的话会报错的,默认情况下mysql会到它的安装目录下找data目录作为它的数据目录的。
给它准备主配置文件
cp support-files/my-large.cnf /etc/my.cnf
编辑这个文件给他一个datadir目录
vim /etc/my.cnf
加入: datadir =/mydata/data
并将thread_concurrency= 改为你的CPU核心数*2的数字
此时才可以正常启动
service mysqld start
如果启动错误,一定要到/mydata/data/localhost.localdomain.err下去看它的说明的错误信息。
此时我们的Mysql尚且没有完全准备完成,我们还需要准备它的库文件,头文件。
导入库文件:
vim/etc/ld.so.conf.d/mysql.conf
加入:/usr/local/mysql/lib
ldconfig
使用ldconfig重新载入
导入头文件,PATH环境变量:
ln -sv /usr/local/mysql/include/usr/include/mysql
vim /etc/profile
写入:PATH=$PATH:/usr/local/mysql/bin
至此,我们的Mysql已经全部安装完成,可以正式启动了:
servicemysqld restart
2.安装wordpress
将下载好的wordpress解压并放到相关的位置:
unzipwordpress-3.0.4-zh_CN.zip
mkdir–p /var/www/html/wordpress
mvwordpress/* /var/www/html/wordpress
rm–rf wordpress
好的,接下来,我们进去配置wordpress的相关文件
cd/var/www/html/wordpress
cpwp-config-sample.php wp-config.php
修改wp-config.php里面的
define('DB_NAME','wordpress');
define('DB_USER','root');
define('DB_PASSWORD','aaa');
define('DB_HOST','192.168.0.44');
成为自己所对应的配置文件即可。
进入mysql服务器,为我们的wordpress手动创建数据库以及远程访问的用户和密码
mysql
>CREATEDATABASE wordpress;
>GRANT ALL PRIVILEGES ON *.* TO root@'%.%.%.%' IDENTIFIED BY 'redhat';
>FLUSHPRIVILEGES;
>\q
3.配置nfs,实现文件共享
打开/etc/exports
在里面加入
/var/www/html192.168.0.0/24(rw,async)
注意,这里面的网段对应的是你自己的Web服务器的网段
启用nfs服务
servicenfs start
chkconfignfs on 实现开机启动
rpcinfo-p 检查,发现开启了许多的端口
4.开始配置两个Web服务器。
4.1.挂载nfs共享过来的目录
mkdir/mnt/web ## 创建我们要挂载的目录
showmount-e 192.168.0.44 ## 这个ip是你Mysql服务器的ip
mount-t nfs 192.168.0.44:/var/www/html /mnt/web
4.2 安装httpd
我们在这里使用yum源安装httpd
yuminstall httpd -y
4.3安装php以及相关的关联程序
yuminstall php php-mysql php-mbstring –y
4.4配置httpd.conf
打开/etc/httpd/conf/httpd.conf
修改DocumentRoot“/var/www/html” 为DocumentRoot "/mnt/web/wordpress/"
修改<Directory"/var/www/html"> 为<Directory "/mnt/web/wordpress">
在DirectoryIndexindex.html index.html.var 中加入 index.php
加入
AddTypeapplication/x-httpd-php .php
AddType application/x-htppd-php-source .phps
4.5 重启httpd服务
servershttpd start
好的,此时此刻~我们的Web服务器就已经完全配置完成了,这时候,如果你在浏览器里输入自己的Web服务器的ip则应该显示的就是一个完整的wordpress页面了!