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

时间:2022-10-22 07:43:58

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

实验目标:

    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解压后的源代码包下。

[root@wukui php-5.4.26]# cp php.ini-production /etc/php.ini                         复制主配置文件的模板到/etc下,位于源代码目录中。  
[root@wukui php-5.4.26]# cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php     复制服务控制脚本模板到/etc/rc.d/init.d下    
[root@wukui php-5.4.26]# chmod u+x /etc/rc.d/init.d/php 
[root@wukui php-5.4.26]# chkconfig --add php                     添加到init的控制下    
[root@wrukui php-5.4.26]# chkconfig php on                          设定php开机自动启动

[root@wukui php-5.4.26]# cp /usr/local/php/etc/php-fpm.conf.default         /usr/lcocal/php/etc/php.fpm.conf  提供php的fpm工作模式下的配置文件。

[root@wukui php-5.4.26]# 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文件所在位置。这条要写在[global]下面第一行。

[root@wukui php-5.4.26]# service php start  启动php进程

[root@wukui php-5.4.26]# mkdir /webdata

[root@wukui php-5.4.26]# mount -t nfs 172.16.2.14:/webdata /webdata  挂载nfs,用来存储php页面。

[root@wukui php-5.4.26]# echo " mount -t nfs 172.16.2.14:/webdata /webdata"  /etc/rc.d/rc.local    让系统启动后自动执行挂载脚本

[root@wukui php-5.4.26]#  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 Development

httpd程序依赖于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的包名显示出来,包名包含了版本信息。

下载所需要的软件包

[root@wukui httpd]# ls 
apr-1.5.0.tar.bz2 apr-util-1.5.3.tar.bz2 httpd-2.4.9.tar.bz2


安装apr--------------------------------------------------------

[root@wukui httpd]# mv /etc/httpd /etc/httpd.bak                      备份之前httpd的配置文件,此步操作看情况而定。

[root@wukui httpd]# tar -xf apr-1.5.0.tar.bz2 
[root@wukui httpd]# cd apr-1.5.0

[root@wukui apr-1.5.0]# ./configure --prefix=/usr/local/apr       安装到/usr/local/apr下是为了不和系统之前rpm安装的包冲突。

[root@wukui apr-1.5.0]# make  &&   make install

[root@wukui apr-1.5.0]# ls /usr/local/apr/bin/            查看已安装的apr二进制程序

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

[root@wukui apr-1.5.0]# ls /usr/local/apr/lib/                    查看apr的库文件

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


安装apr-util------------------------------------------------------------

解压,并切换到解压后的目录

[root@wukui apr-util-1.5.3]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr      #指定安装目录    指定刚才编译好的apr路径,因为apr-util是为作apr的子功能运行的。

[root@wukui apr-util-1.5.3]# make && make install                编译,编译安装


编译apache操作-----------------------------------------------------------------------

    [root@wukui httpd-2.4.9]# ./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                        配置安装特性

    [root@wukui httpd-2.4.9]# make  && make install     编译并且安装vi

    [root@wukui apache]# echo "export PATH=/usr/local/apach/bin:$PATH" >> /etc/profile.d/httpd.sh        修改PATH环境变量,让shell可以搜索到apache的命令

    [root@wukui apache]# source /etc/profile.d/httpd.sh    让刚设置的PATH环境变量在当前shell进程中生效

    [root@wukui apache]# 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                  测试配置文件是否有语法错误

# apache  restart      重启httpd服务


====================================================================


mysql配置

安装mariadb ,二进制安装。mysql数据库文件存放在/data下。?data挂载的是一个逻辑卷,属主属组为mysql。  
[root@mysql /]# groupadd -r mysql    
[root@mysql /]# useradd -s /sbin/nologin -g mysql -r mysql    
[root@mysql wukui]# tar -xvf mariadb-5.5.36-linux-x86_64.tar.gz    
[root@mysql wukui]# mv mariadb-5.5.36-linux-x86_64 /usr/local/    
[root@mysql local]# ln -sv /usr/local/mariadb-5.5.36-linux-x86_64/ /usr/local/mysql    
[root@mysql mysql]# cd /usr/local/mysql 切换到解压后的目录到    
[root@mysql mysql]#chown -R mysql:mysql ./*    
[root@mysql mysql]# scripts/mysql_install_db --user=mysql --datadir=/data 执行mysql脚本安装配置。    
[root@mysql mysql]# cp support-files/my-large.cnf /etc/my.cnf    
修改配置文件以下几个参数    
thread_concurrency = 2 数据是cpu核心乘以2    
datadir = /data 指定mysql数据库文件存放的位置    
[root@mysql mysql]# vim /etc/profile.d/mysql.sh 添加一环境变量    
export PATH=/usr/local/mysql/bin:$PATH    
[root@mysql mysql]# . /etc/profile.d/mysql.sh    
[root@mysql mysql]# chown -R mysql ./*    
[root@mysql mysql]# cp support-files/mysql.server /etc/init.d/mysqld    
[root@mysql mysql]# chmod u+x /etc/init.d/mysqld    
[root@mysql mysql]# chkconfig --add mysqld    
[root@mysql mysql]# chkconfig mysqld on    
[root@mysql mysql]# service mysqld start

[root@mysql mysql]#mysql

MariaDB [(none)]> use mysql

MariaDB [mysql]> grant all on discuz.* to disadmin@172.16.2.11 identified by 'discuz';    为数据库用户disadmin授权在172.16.2.11主机上登陆,密码为 discuz

Query OK, 0 rows affected (0.34 sec)

MariaDB [mysql]> flush privileges;                           刷新授权

Query OK, 0 rows affected (0.03 sec)

mysql配置完成


=============================================================

安装discuz测试

在浏览器里输入httpd的访问地址

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

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

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

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

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


==================================================================

第二个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

=================================================================

收尾工作,让各个服务开机自动启动,并挂载文件共享服务目录。至此完成。

本文出自 “红颜易逝豪情长” 博客,请务必保留此出处http://wukui.blog.51cto.com/1080241/1540833