admin 發表於 2015-11-22 08:18:22

双apache + php + nfs + mariadb 配置 以discuz做测试

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://wukui.blog.51cto.com/1080241/1540833

http://img1.51cto.com/attachment/201408/15/1080241_1408105894elZe.jpg实验目标:    1,两台前端apache和php都挂载nfs文件系统中的php程序。    2,mysql 为单独一台服务器,为php页面程序提供数据库存储    3,静态页面文件都放在nfs服务器上    4,需要dns轮循为两台前端服务器分配访问请求            缺点: 压力都在文件存储服务器上            优点:不用考虑两台web服务器静态页面一致性的问题。操作大体步骤:    1,两台web服务器:挂载nfs。编译安装apache,添加支持fcgi协议的模块,把php请求都代理到php服务器,站点根目录为挂载的文件。根据实际情况调整进程启动数量。    2,nfs : 在/etc/exprots 配置文件中写明,允许两台apache和php服务器访问本机的nfs服务    3,mysql: 需要授权一个用户从php服务器访问mysql中的一个数据库,此库给discuz使用。    4,php:编译安装以fpm方式启动进程,进程监听本机的通信ip。根据实现情况调整进程数量。使用的软件级版本    数据库 :mariadb-5.5.36-linux-x86_64.tar.gz    web:httpd-2.4.9.tar.bz2    apr-1.5.0.tar.bz2    apr-util-1.5.3.tar.bz2    php :php-5.4.26.tar.bz2    nfs 是centos6.5系统发行时安装的版本。===================================================================NFS配置,/webdata是存储数据的位置# vim /etc/exprots      编辑nfs配置文件加入以下一行/webdata 172.16.2.10(rw,no_root_squash) 172.16.2.15(rw,no_root_squash) 172.16.2.11(rw,no_root_squash)# service nfs start    启动nfs服务把discuz代码upload目录中的所有传到/webdata目录下。====================================================================php服务器配置编译php时依赖的开发环境,位于系统盘和和epel安装源。    “Desktop Platform Development” 包组      bzip2-devel                              php用到的压缩功能      libmcrypt-devel                        php用到的加密功能      libmcrypt   
      mhash      mhash-devel# yum -y groupinstall "Desktop Platform Development"      # yum -y install bzip2-devel# yum -y install libmcrypt-devel# tar -xvf php-5.4.26.tar.bz2# cd php-5.4.26# ./configure --prefix=/usr/local/php --with-mysql --with-mysqli --with-openssl --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-xml --enable-sockets --enable-fpm --with-bz2 --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-mcrypt# make &&make install为php提供配置文件和 Sysv 脚本文件。这些文件的模板在php解压后的源代码包下。# cp php.ini-production /etc/php.ini                         复制主配置文件的模板到/etc下,位于源代码目录中。   
# cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php   复制服务控制脚本模板到/etc/rc.d/init.d下   
# chmod u+x /etc/rc.d/init.d/php
# chkconfig --add php                     添加到init的控制下   
# chkconfig php on                        设定php开机自动启动# cp /usr/local/php/etc/php-fpm.conf.default         /usr/lcocal/php/etc/php.fpm.conf提供php的fpm工作模式下的配置文件。# vim /usr/local/php/etc/php-fpm.conf          修改配置文件listen = 172.16.2.11:9000      修改php监听的ip地址pm.max_children = 20            允许最大请求的并发数,由httpd请求的。pm.start_servers = 5                服务启动后开启多少个进程pm.min_spare_servers = 2      最少空闲多少个进程pm.max_spare_servers = 10            最多空闲多少个进程pid = /usr/local/php/var/run/php-fpm.pid            指定php的PID文件所在位置。这条要写在下面第一行。# service php start启动php进程# mkdir /webdata# mount -t nfs 172.16.2.14:/webdata /webdata挂载nfs,用来存储php页面。# echo " mount -t nfs 172.16.2.14:/webdata /webdata"/etc/rc.d/rc.local    让系统启动后自动执行挂载脚本#chown -R nobody /webdata    修改webdata目录的所有者为nobody,nobody是php进程运行的用户。
====================================================================apache服务器配置# mount -t nfs 172.16.2.14:/webdata /webdata    挂载nfs# echo " mount -t nfs 172.16.2.14:/webdata /webdata"/etc/rc.d/rc.local    让系统启动后自动执行挂载脚本# yum grouplist    查看当前系统是否安装了编译时所需的开发环境。需要以下两个开发包组    Development tools    Server Platform Developmenthttpd程序依赖于apr和apr-util    apr : apache portable runtime,apache可移值运行环境。相当于httpd运行于各平台的虚拟机,为了httpd跨平台开发不那么复杂,和httpd底层实现方法统一。    httpd-2.4依赖1.4以上版本的apr。    # rpm -qa | grep apr      查看当前系统是否安装了apr和apr-util。如果安装会把apr的包名显示出来,包名包含了版本信息。下载所需要的软件包# ls
apr-1.5.0.tar.bz2 apr-util-1.5.3.tar.bz2 httpd-2.4.9.tar.bz2
安装apr--------------------------------------------------------# mv /etc/httpd /etc/httpd.bak                      备份之前httpd的配置文件,此步操作看情况而定。# tar -xf apr-1.5.0.tar.bz2
# cd apr-1.5.0# ./configure --prefix=/usr/local/apr       安装到/usr/local/apr下是为了不和系统之前rpm安装的包冲突。# make&&   make install# ls /usr/local/apr/bin/            查看已安装的apr二进制程序http://img1.51cto.com/attachment/201408/15/1080241_1408105898cIRO.png# ls /usr/local/apr/lib/                  查看apr的库文件http://img1.51cto.com/attachment/201408/15/1080241_1408105900TvJL.png
安装apr-util------------------------------------------------------------解压,并切换到解压后的目录# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr      #指定安装目录    指定刚才编译好的apr路径,因为apr-util是为作apr的子功能运行的。# make && make install                编译,编译安装
编译apache操作-----------------------------------------------------------------------    # ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd/ --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --enable-mpms-shared=all --with-mpm=event --enable-modules=all                        配置安装特性    # make&& make install   编译并且安装vi    # echo "export PATH=/usr/local/apach/bin:$PATH" >> /etc/profile.d/httpd.sh      修改PATH环境变量,让shell可以搜索到apache的命令    # source /etc/profile.d/httpd.sh    让刚设置的PATH环境变量在当前shell进程中生效    # apachectl start            使用apachectl 启动httpd服务测试是否安装成功# vim /etc/httpd/httpd.con      编辑httpd的主配置文件LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so   开启fcgi协议支持LoadModule proxy_module modules/mod_proxy.so                  开启代理支持ServerName www.wukui.com:80                                        设定主机名ProxyRequests off                                                                        关闭正向代理ProxyPassMatch ^/(.*\.php)$ fcgi://172.16.2.11:9000/webdata/$1   只要是php文件都使用fcgi协议代理到php服务器。DocumentRoot "/webdata/"                                                   修改站点根目录为nfs<Directory "/webdata/">                                                         修改对站点根目录的控制标签DirectoryIndex index.html index.php                                    添加默认请求文件AddType application/x-httpd-php .php      在<IfModule mime_module>标签中加入,以支持php格式的文件。AddType application/x-httpd-php-source .phps      同上                  # httpd -t                  测试配置文件是否有语法错误# apacherestart      重启httpd服务
====================================================================
mysql配置安装mariadb ,二进制安装。mysql数据库文件存放在/data下。?data挂载的是一个逻辑卷,属主属组为mysql。
# groupadd -r mysql   
# useradd -s /sbin/nologin -g mysql -r mysql   
# tar -xvf mariadb-5.5.36-linux-x86_64.tar.gz   
# mv mariadb-5.5.36-linux-x86_64 /usr/local/   
# ln -sv /usr/local/mariadb-5.5.36-linux-x86_64/ /usr/local/mysql   
# cd /usr/local/mysql 切换到解压后的目录到   
#chown -R mysql:mysql ./*   
# scripts/mysql_install_db --user=mysql --datadir=/data 执行mysql脚本安装配置。   
# cp support-files/my-large.cnf /etc/my.cnf   
修改配置文件以下几个参数   
thread_concurrency = 2 数据是cpu核心乘以2   
datadir = /data 指定mysql数据库文件存放的位置   
# vim /etc/profile.d/mysql.sh 添加一环境变量   
export PATH=/usr/local/mysql/bin:$PATH   
# . /etc/profile.d/mysql.sh   
# chown -R mysql ./*   
# cp support-files/mysql.server /etc/init.d/mysqld   
# chmod u+x /etc/init.d/mysqld   
# chkconfig --add mysqld   
# chkconfig mysqld on   
# service mysqld start#mysqlMariaDB [(none)]> use mysqlMariaDB > grant all on discuz.* to disadmin@172.16.2.11 identified by 'discuz';    为数据库用户disadmin授权在172.16.2.11主机上登陆,密码为 discuzQuery OK, 0 rows affected (0.34 sec)MariaDB > flush privileges;                           刷新授权Query OK, 0 rows affected (0.03 sec)mysql配置完成
=============================================================安装discuz测试在浏览器里输入httpd的访问地址http://img1.51cto.com/attachment/201408/15/1080241_1408105905guvw.pnghttp://img1.51cto.com/attachment/201408/15/1080241_1408105916rBGr.pnghttp://img1.51cto.com/attachment/201408/15/1080241_14081059191RCR.pnghttp://img1.51cto.com/attachment/201408/15/1080241_1408105925mQYR.pnghttp://img1.51cto.com/attachment/201408/15/1080241_1408105927vigy.png
==================================================================第二个apache配置# yum -y groupinstall   "Development tools"                        安装所需的开发包组# yum -y groupinstall   "Server Platform Development"# yum -y install pcre-devel# tar -xvf apr-1.5.0.tar.bz2                                                安装apr# cd apr-1.5.0# ./configure --prefix=/usr/local/apr# make && make install# tar -xvf apr-util-1.5.3.tar.bz2                                        安装apr-util# cd apr-util-1.5.3# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr# make && make install# tar -xvf httpd-2.4.9.tar.bz2                                          安装apache# cd apr-util-1.5.3#./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-mpms-shared=all --with-mpm=event --enable-modules=all# make && make install# vim /etc/httpd/httpd.conf   修改主配置文件LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so启用LoadModule proxy_module modules/mod_proxy.so                启用ServerName www.wukui.com:80                                        设定主机名ProxyRequests off                                                                        关闭正向代理ProxyPassMatch ^/(.*\.php)$ fcgi://172.16.2.11:9000/webdata/$1   只要是php文件都使用fcgi协议代理到php服务器。DocumentRoot "/webdata/"                                                   修改站点根目录为nfs<Directory "/webdata/">                                                         修改对站点根目录的控制标签DirectoryIndex index.html index.php                                    添加默认请求文件AddType application/x-httpd-php .php      在<IfModule mime_module>标签中加入,以支持php格式的文件。AddType application/x-httpd-php-source .phps      同上# mount -t nfs 172.16.2.14:/webdata /webdata                  挂载nfs=================================================================收尾工作,让各个服务开机自动启动,并挂载文件共享服务目录。至此完成。
頁: [1]
查看完整版本: 双apache + php + nfs + mariadb 配置 以discuz做测试