要求:1.httpd服务器(使用event事件驱动机制),php服务器,mysql服务器三者分离。   

    2.http服务提供两个页面.

    另一个虚拟主机用于提供phpMyAdmin;另一个虚拟主机用于提供wordpress

    3.使用xcache提高php资源请求处理速度。


准备工作:三台虚拟主机,配置好yum源,分别准备好httpd,php-fpm源码包和二进制通用版的mariadb。另外作为httpd服务器的主机上需要同时准备apr-1.4+, apr-util-1.4+这两个源码包。


wKioL1caGtCS5tMUAAAeb7Tp6hA878.png


第一步:配置httpd服务器


1.准备编译环境

yum安装Development Tools, Server Platform Development这两个包组,安装openssl-devel,pcre-devel这两个包。


2.开始编译

因为httpd2.4以上的版本依赖于apr-1.4+, apr-util-1.4+,CentOS 6上的apr和apr-util版本太低,所以编译httpd2.4以前需要先编译此两个组件。


编译aprwKiom1cXbvTwJcEpAACh5n3P8Ns209.png

    完成后,执行编译安装

  apr-1.5.0]# make -j 2 && make install

   

编译apr-util

wKioL1cXca-Rnsk4AACRi0B0cHc901.png     完成后,执行编译安装

     apr-util-1.5.2]# make -j 2 && make install


编译httpd2.4

wKioL1cXelTAdhdCAADfuaWRwqk003.png

     完成后,执行编译安装

     httpd-2.4.10]# make -j 2 && make install


3.安装后配置


添加程序默认执行路径(PATH环境变量)

wKioL1cXf3Cg9imLAABB4VbhfMs627.png


wKiom1cXfq_iXlITAAANfBtohw0382.png


wKioL1cXfxbgK6RvAABli9dEVF8301.png


wKioL1cXf57Dg3xYAAApVi8bvdg106.png



导出头文件

wKioL1cXf67zZuQVAAGClf56QGc276.png



导出库文件

wKioL1cXf8vTi6AXAAATyvL1s7w101.png

httpd编译完成后没有提供库文件,所以不用导出了

   如果需要导出库文件,可以按如下步骤:

   导出httpd-2.4库文件目录:在 /etc/ld.so.conf.d/目录下创建一个.conf结尾的文件,编辑它,在其中加入其安装生成的库文件路径。然后运行ldconfig -v重新加载。

   注:可以使用ldconfig -p查看已经加载的库文件。



增加man手册路径

wKioL1cXgFbQB4b8AAAs-LtfENA442.png


wKiom1cXf5ajtHOjAABkpbiI8b8650.png



虽然此时httpd2.4已经可以手动启动,但因为没有服务脚本,所以没办法设置为自动启动。

可以选择写一个服务脚本,或者复制httpd2.2的服务脚本修改。

本人水平不够,写服务脚本这个高难度的事就不挑战了,只好从别的主机复制一个httpd2.2版本的来修改一下用。


wKiom1cXhPOTNPYpAABRJiN7sOs276.png

  编辑修改配置文件

    可以选择删除或者注释   if [ -f /etc/sysconfig/httpd ]; then
                          . /etc/sysconfig/httpd
                    fi

   我这里是注释了

wKioL1cXhbPgtx5CAAAZOpnXZVo309.png

修改httpd进程的相关参数,改为你编译安装的路径

                 apachectl=/Directoy/To/apachectl
             httpd=${HTTPD-/Directoy/To/httpd}
             prog=httpd
             pidfile=${PIDFILE-/usr/local/httpd2.4/logs/httpd.pid}
             lockfile=${LOCKFILE-/var/lock/subsys/httpd2.4}wKioL1cXhbOi7DJxAABM_c7TEzs036.png

服务脚本添加完成,然后使用chkconfig添加服务。之后就可以设置开机自启动和使用service命令控制服务了。

wKiom1cXhPPy9qcwAAA7V3k3bnI272.png

查看httpd的mpm模式

wKiom1cZgoCznmZ7AAAPcSC0d34340.png

查看httpd是否启用fcgi模块

wKioL1cZrbDSGShtAAATJbbDlj0151.png测试是否能提供服务页面

wKiom1cZgeWQwzB7AAB11qyq4XM627.png


配置虚拟主机提供不同的服务主页

修改主配置文件注释掉主服务的资源路径:DocumentRoot这一项,启用下面这一项

wKiom1cZ83iBS5-dAAAPGHCiMWw875.png

然后编辑此路径下的这个配置文件就可以了。

配置虚拟主机的方法和CentOS 7上yum安装的2.4一样,这里就不细说了(详情可以参考我的另外一篇博客:在CentOS 7上搭建LAPM



第二步:配置php服务器


1.准备编译环境

yum安装Development Tools, Server Platform Development这两个包组,安装libxml2-devel,libmcrypt-devel,bzip2-devel,libcurl-devel等等这几个包。(在编译过程中依赖到的,都需要按装 pakeagename-devel的开发包)


2.开始编译

wKioL1cZ69OCKAvRAADjIpJkUoQ360.png

wKiom1cZ6yWgdCqxAAAoKRWkwEM750.png

完成后,执行编译安装

  php-5.4.40]# make -j 2 && make install



3.安装后配置


添加程序默认执行路径(PATH环境变量)

wKioL1cZ3WHiYyTQAAAPSjVNgZQ239.png

wKiom1cZ3J6zoo-fAAAN2rFwVEg017.png

然后重新登陆一下bash,重读配置文件。


编辑配置文件

wKioL1cZ7mWDTgFGAAD_EexmQ8g106.png

wKiom1cZ7bKDbxyZAABCQYonBDY573.png

wKioL1cZ7naiMOUaAADPS00F6wg467.png

wKioL1cZ7ouRjTjKAAAmH59OWuc614.png

wKiom1cZ7cjx3K_DAABY62Y3AMk554.png


4.测试

在httpd服务器配置好的虚拟主机

wKiom1cZ_FmwilY7AAC1LyliprA862.png现在在php服务器的资源路径下创建一个测试页面进行测试。

wKiom1cZ_w-SC_GYAAAs9uCBh0c242.png


测试OK

wKioL1cZ_9HDs7cCAACY4tQ9HJU462.png



wKioL1cZ_9LSAO_yAADT2nw8U9U242.png


程序已经运行了,但是没有服务脚本,不能用service命令控制,也不能实现自动运行。

可以看一下编译完有没有提供服务脚本

wKiom1caApaAfOWOAABCu0jhBvc360.png

wKioL1caA2zBAb-CAACUcqNpQEo215.png

是CentOS 6 的服务脚本,路径都是配置正确的,可以使用

wKiom1caAuWTte9AAAAmINPcQN0137.png

注意:查看复制过去后此服务脚本是否有执行权限,如果没有需要加上执行权限。

这样服务就配置完整了


5.安装php-mysql包(php和mysql之间的通信协议)

 ~]# yum install php-mysql

  然后重载一下服务

  ~]# service httpd reload


第三步:配置mariadb服务器


1.安装mariadb

在安装需要创建一个系统用户mysql用于运行mysql, ~]# useradd -r mysql


wKioL1caM5HBZg6JAADeakbLHZY432.png

添加服务脚本

在support-files有配置文件模板和服务脚本。可以查看一下其内容是否符合要求

wKioL1caM9KBx63dAAAJnb_CdVM738.pngwKioL1caM9LTRbIrAACeGfWslE8406.png

验证OK用户,复制到服务脚本的路径下,然后添加系统服务

wKiom1caMw-waEJJAAAhBiuoPZk297.png

添加主配置文件,然后修改参数

wKiom1caMxDSUVl1AAAfUmDisQA583.png


wKioL1caM9Pjfq8bAABc0H1fRkE084.png



启动服务


wKioL1caM9aSPSqQAABCGffp6uQ729.png



添加程序默认执行路径(PATH环境变量):~]# vim /etc/profile.d/mysqld.sh

wKioL1caM9XAZFWYAAAM0fDkuKU553.png


2.测试

登陆mysql:创建一个用户和数据库,并赋权,用于测试。

wKiom1caM3rxX01MAACPQTCbIl8691.png


在PHP服务器添加一个测试页面,写入php连接mysql的测试代码:
<?php
      $conn = mysql_connect('192.168.0.100','ts','tspass');
      if ($conn)
          echo "OK";
      else
        echo "Failure";
?>


wKiom1caNIuSUc3IAACGWFy2YUY126.png


wKiom1ca13bwgbU7AABeMsOiH-I810.png





第四步:用www.a.com这个虚拟主机提供phpMyAdmin,用www.b.com这个虚拟主机提供wordpress  


此过程可以参考我的另外一篇博客:在CentOS 7上搭建LAPM


第五步:安装xcache,提高处理php请求速度

这里使用yum安装xcache(编译安装同样可以看上面链接那篇博客)


1.安装前压测


wKiom1ca3yaT7eGmAABqgUVZlJA757.pngwKioL1ca3_fSdXtOAAC1axswKzE062.png测试三到五次,看结果是否稳定


2.安装xcache

~]# yum install php-xcache

~]# service php-fpm restart



3.安装后压测