要求:httpd的动态和静态资源分为两台主机提供,mysql也用单独一台主机。httpd服务提供虚拟主机,一个虚拟主机用于提供phpMyAdmin;另一个虚拟主机用于提供wordpress。安装使用xcache为php服务提速。

方案:1台主机作为httpd服务器,1台主机做php服务器,使用php-fpm模式,1台主机作为mysql数据库服务器。

准备工作:三台主机,配置好yum源。

wKiom1cW2CzjWAOTAABM6RKxY-Q689.png



第一步:配置httpd服务器

  1. yum安装httpd包

    ~]# yum install httpd

    wKioL1cW28rhbrVzAAAj5RwrD20320.png

  

   启动服务

 wKiom1cW25bCJoaOAACSq9rNlgw574.png   


测试是否能提供服务页面

wKiom1cW3BnDyXVsAAIn92zBOGg558.png  httpd服务工作正常


2. 配置虚拟主机和定义动态页面转发到php服务器。

     

   注释掉主服务页面路径

   ~]# vim /etc/httpd/conf/httpd.conf

   wKioL1cW36DRP4nJAAAjcecF8Bc927.png

   

    添加一个配置文件,用于定义虚拟主机和定义转发。

   ~]# touch /etc/httpd/conf.d/virtualhost.conf

   ~]# vim /etc/httpd/conf.d/virtualhost.conf

wKiom1cW413BLRwoAAD81BWCDds485.png


3. 测试虚拟主机

  ~]# touch /var/virtualhost/a/check.html

  ~]# vim /var/virtualhost/a/check.html

wKioL1cW5Zmyu_i7AAAFH_QaRtQ818.png

 

  ~]# touch /var/virtualhost/b/check.html

  ~]# vim /var/virtualhost/b/check.html

wKioL1cW5g7CYWQpAAADNfx7DHs112.png  

在访问测试的主机中定义将www.a.com和www.b.com解析为httpd服务器的ip地址

wKiom1cW5gDTE8UnAABI0vTy-58265.png

wKiom1cW5gCQsWzKAABJIIOlyNI317.png

注:httpd-2.4:rpm包安装默认编译支持了fcgi模块;可以使用httpd -M查看已经加载的模块。

wKiom1cW8vfwB1UfAAAQIUeF0qQ715.png


4.使用systemctl enable httpd.service将服务设置为开机启动



第二步:配置php服务器

  1. yum安装php-fpm包

 ~]# yum install php-fpm

  查看状态

wKioL1cW6O-SKYx3AAAjugmiLsk299.png


2. 修改配置文件

wKioL1cW7LWQTaZ6AABCcH6rdJY983.png

wKiom1cW6_XhUPneAABAJMWQx08648.png

wKioL1cW7LaxYpSbAAAtIRTMipY660.png

wKiom1cW6_agEOdwAAAiSI03jfU927.png

 ~]# mkdir /var/lib/php/session

  ~]# chown apache:apache /var/lib/php/session


3. 启动服务,查看状态

wKiom1cW7OHAwxjKAACAw1Mawik017.png


4. 在php服务器的资源路径下添加测试页面并测试

  ~]# vim /var/phppage/a/check.php

wKiom1cW76eDRAG-AAAH_ROmp8Y932.png

  ~]# vim /var/phppage/b/check.php

wKiom1cW8H-yhtG5AAAILhlKLrM290.png

 访问

wKiom1cW8QWxSE9BAAC-0f9lef4807.png


wKioL1cW8cbQ31_eAADNALPAJP4523.png



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

 ~]# yum install php-mysql

  然后重载一下服务

  ~]# systemctl reload php-fpm.service

6.使用systemctl enable php-fpm.service将服务设置为开机启动



第三部:配置mysql服务器


  1. yum安装mariadb包

    ~]# yum install mariadb-server

wKiom1cW96eT7SDZAAAhSeHgWSw503.png


2.启动服务

wKiom1cXD_7woDxpAAEz57ifTW8552.png


3.测试

创建一个测试用户和数据库

wKiom1cXEA3hJ5jRAAC4yrON0ZQ070.png

  

在php服务器上放置网页资源的路径下添加测试页面

wKioL1cXFOrhJv9EAAAbbXX6ONo804.png


wKiom1cXFCnCm_uSAAAjH2WKq3Y182.png


wKioL1cXFOmxvyOaAAAjFNMLqq8327.png

  

访问测试

wKiom1cXFCnjOcXvAAB-mkpcJak200.png


wKiom1cXFCriYk5dAABsfeB_oZw803.png


4.使用systemctl enable mariadb.service将服务设置为开机启动


LAMP搭建完成,可以正常提供服务。


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


1.准备phpMyAdmin,wordpress的源码包

wKioL1cXGTuidPtvAAAW2eL6GL0247.png


2.解压到放置页面资源的路径下

~]# unzip phpMyAdmin-4.4.14.1-all-languages.zip -d /var/phppage/a


3.编辑其配置文件

wKioL1cXHhLzQ4eCAADf-pHmIIs502.png


wKioL1cXHnPQjIB9AABzkLoR3SY493.png


4.访问

wKiom1cXH0axQjYCAACxnQdLecI006.png


已经可以访问了,但是发现页面有些地方无法显示。这是因为此页面是由动态资源和静态资源组成的,而httpd服务器只是把动态资源请求转发到php服务器了,静态资源是httpd提供,它现在资源路径下并没有此资源,所以此页面显示不全。原理可见下图

wKioL1cXIZbT0C5hAAB3558nBF8829.jpg

解决方案:在httpd服务器上的资源放置路径下同样放置一份phpMyAdmin源码文件,这样页面就可以显示完全了。

现在我们要访问phpMyAdmin这个页面时,需要在给出域名的同时还要指定url。这样太麻烦。

有两个方案可以解决。

第一个方案:修改虚拟主机的配置,修改DocumentRoot 路径 同时修改转发后的路径

DocumentRoot /var/virtualhost/a/phpMyAdmin-4.4.14.1-all-languages

ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.0.132:9000/var/phppage/a/phpMyAdmin-4.4.14.1-all-languages/$1

wKiom1cXKo3Ty0fgAABeulGXmAg373.png

然后使用httpd -t测试配置文件语法,再重载一下配置文件,就可以了

wKiom1cXKqCQCMKQAACppld4fgU956.png


第二个方案:将所有phpMyAdmin源码文件直接放在DocumentRoot 路径下。php服务器则直接放在指定转发后的路径下。

wKiom1cXK8Hxrpn_AAC3hBNPI3M936.png

wKiom1cXJYvh1-OEAAC-3DyldSA157.png



布置wordpress

~]# unzip wordpress-4.3.1-zh_CN.zip -d /var/phppage/b

 ]# ]# cp wp-config-sample.php wp-config.php

 ]# vim wp-config.php

wKioL1cXLwLAtu_YAABt21MV1AU622.png

注意:这样wp用来登陆和使用的数据库用户需提前创建。

后续过程类似配置phpMyAdmin,就不重复了。


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


1.安装前先做一下压力测试

wKioL1cXMMHDXjAPAABniOwMB_I064.png

wKiom1cXMAHTS5BAAAC6fw_wlz0512.png


这次我们使用编译安装xcache

准备工作:下载一个xcache源码包,安装Development Tools和Server Platform Development包组。安装php-devel包。


2.开始编译

wKiom1cXNTGixJRTAADwC0s-ElY828.png

如果这一步没问题,执行make,然后执行make instal。

安装完成后,添加配置文件,然后让服务重载。

wKiom1cXNX-i1J0ZAAAZIX-Wlyc461.png


3.再做一次压力测试

wKiom1cXNfrwmcWwAABocFn0Wz4275.png

wKioL1cXNrvwZ7MMAACz-q-df1Q772.png

对比两次压力测试可以看出,装了xcache以后,php请求处理速度提高3倍左右。