前言:APR(Apache portable Run-time libraries,Apache可移植运行库)的目的如其名称一样,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。

php的加速器xcache:基于PHP的特殊扩展机制如opcode缓存扩展也可以将opcode缓存于php的共享内存中,从而可以让同一段代码的后续重复执行时跳过编译阶段以提高性能。这些加速器并非真正提高了opcode的运行速度,而仅是通过分析opcode后并将它们重新排列以达到快速执行的目的

注意:php-xcache支持的版本

准备工作

软件版本:软件包全都放在: /app/目录下

apr-1.6.2.tar.gz 

apr-util-1.6.0.tar.gz 

httpd-2.4.27.tar.bz2

 注:在centos6上httpd的版本是2.2版本的,而要使用2.4版本的apr必须要在apr-1.4版本以上

php-5.6.31.tar.xz  

xcache-3.2.0.tar.bz2

mariadb-5.5.57-linux-x86_64.tar.gz

wordpress-4.8.1-zh_CN.tar.gz



一、编译httpd-2.4

1.安装编译的环境  

    cd /app/

 yum groupinstall "development tools" # 开发工具包组

 yum install openssl-devel pcre-devel expat-devel  # 在编译时,依赖或指定相关特性的包,这里最好先安装好,免的在编译一半的时候再提示安装。

2.解压安装包

 tar -xvf apr-1.6.2.tar.gz 

 tar -xvf apr-util-1.6.0.tar.gz 

 tar -xvf httpd-2.4.27.tar.bz2 

3.复制到httpd-2.4.27/srclib/目录下,放在一起的进行编译了,也可以单独进行编译,这个httpd-2.4.27/srclib/是必须放在这个目录下的。

 cp -r apr-1.6.2  httpd-2.4.27/srclib/apr

 cp -r apr-util-1.6.0  httpd-2.4.27/srclib/apr-util

4.编译

 cd httpd-2.4.27/

 ./configure --prefix=/app/httpd24 --enable-so --enable-ssl --enable-rewrite --with-zlib --with-pcre --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork   

5.安装

 make  &&  make install

6.环境变量

 vim  /etc/profile.d/lamp.sh # 这里单独创建一个文件,比较容易来管理。

   PATH=/app/httpd24/bin/:$PATH

   .  /etc/profile.d/lamp.sh  # 生效

7.服务脚本

 cp  /etc/init.d/httpd  /etc/init.d/httpd24  # 这里把yum安装好的脚本,或者其它安装好的脚本拿过来编辑修改一下。

 vim /etc/init.d/httpd24  # 下面是要修改的地方,其它的地方不需要修改

   apachectl=/app/httpd24/bin/apachectl

   httpd=${HTTPD-/app/httpd24/bin/httpd}

   prog=httpd

   pidfile=${PIDFILE-/app/httpd24/logs/httpd.pid}

   lockfile=${LOCKFILE-/var/lock/subsys/httpd24}

 编辑完成之后,再把服务添加到开机启动项当中

   chkconfig --add httpd24

   chkconfig --list httpd24

   service httpd24 start



二、二进制安装mariadb

1.解压安装包    

 cd  /app/

 tar -xvf mariadb-5.5.57-linux-x86_64.tar.gz -C /usr/local/

 cd  /usr/local/

 mv  mariadb-5.5.57-linux-x86_64  mysql  # 这里必须要以mysql为目录名,在预编译的时候已经指字好的,或者做个软链接也可以:ln  -s  mariadb-5.5.57-linux-x86_64/   mysql

2.创建用户

 useradd  -r  -m  -d  /app/mysqldb  -s  /sbin/nologin  mysql    # 系统用户不会自动创建家目录所以用 -m

3.生成数据库

 cd  /usr/local/mysql

 scripts/mysql_install_db  --datadir=/app/mysqldb  --user=mysql # 分别指定数据库的位置和用户

4.创建数据库配置文件

 mkdir  /etc/mysql

 cp support-files/my-large.cnf /etc/mysql/my.cnf  # my-large.cnf这是系统自带的模板

 vim /etc/mysql/my.cnf

   [mysqld]

   datadir = /app/mysqldb # 数据库位置

5.创建服务脚本 

 cp  /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld  # mysql.server放到系统启动目录下,并重新命名。

 chkconfig  --add  mysqld

6.添加日志文件

 touch /var/log/mysqld.log

 chown mysql /var/log/mysqld.log

 service mysqld start

 查看服务是否启动,查看端口信息:ss -ntl   是否有3306端口打开

7.添加环境变量

 vim  /etc/profile.d/lamp.sh 

   PATH=/app/httpd24/bin/:/usr/local/mysql/bin/:$PATH

   .  /etc/profile.d/lamp.sh

8.数据库密码环境的初始化

 mysql_secure_installation # 脚本,更改root密码、test数据库是否启用、是否开启远程连接等等

9.添加wordpress的用户和相关的数据库

 mysql -uroot -pcentos  # 初始当中指定了root的密码

 create datebase wpdb;

 grant all on wpdb.* to wpuser@'192.168.25.%' identified by  'centos';



三、源码编译php

1.解压并编译

 cd  /app/

 tar -xvf php-5.6.31.tar.xz

 yum install libxml2-devel bzip2-devel libmcrypt-devel # 在编译时,依赖或指定相关特性的包,libmcrypt-devel这个包是在epel源上,要先配置epel源。

 cd  php-5.6.31

 ./configure --prefix=/app/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-png-dir --with-jpeg-dir --with-freetype-dir --with-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --with-apxs2=/app/httpd24/bin/apxs --with-mcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2

2.安装

 make && make install

3.添加环境变量

 vim  /etc/profile.d/lamp.sh 

   PATH=/app/php/bin:/app/httpd24/bin/:/usr/local/mysql/bin/:$PATH

   .  /etc/profile.d/lamp.sh 

4.添加配置文件

 cp  /app/php-5.6.31/php.ini-production /etc/php.ini  # 编译安装完成后生成的模板文件

5.添加配置文件到httpd当中,支持php

 vim  /etc/httpd24/httpd.conf

   # 在文件尾部加两行

   AddType  application/x-httpd-php   .php

   AddType  application/x-httpd-php-source   .phps

   # 修改下面行

   <IfModule dir_module>

     DirectoryIndex  index.php  index.html  # 添加php的主页面

   </IfModule>

  最后重启服务

  service httpd24 restart 



四、测试数据库的连接

  vim /app/httpd24/htdocs/index.php

    <html><body><h1>It works!</h1></body></html>

    <?php

      $mysqli=new mysqli("localhost","root","centos");

      if(mysqli_connect_errno()){

       echo "连接数据库失败!";

       $mysqli=null;

       exit;

      }

      echo "连接数据库成功!";

      $mysqli->close();

    ?>

  最后从网页当中打开,输入httpd服务器的ip地址,会有提示是否成功。



五、配置WordPress

1.解压包

 cd /app/

 tar -xvf wordpress-4.8.1-zh_CN.tar.gz -C /app/httpd24/htdocs

 cd /app/httpd24/htdocs

 mv wordpress blog 

2.添加配置文件并编辑配置文件

 cd /app/httpd24/htdocs/blog/

 cp wp-config-sample.php  wp-config.php  # 安装包当中自带的模块配置文件,必须改这个名

 vim wp-config.php

    define('DB_NAME', 'wpdb');

    /** MySQL数据库用户名 */

    define('DB_USER', 'wpuser');

    /** MySQL数据库密码 */

    define('DB_PASSWORD', 'centos');

    /** MySQL主机 */

    define('DB_HOST', 'localhost');



六、编译xcache 实现Php加速

1.解压包

 cd /app/

 tar -xvf xcache-3.2.0.tar.bz2 

 cd xcache-3.2.0

2.编译、安装

 在解压后的目录当下没有configure这个脚本,所以要自己生成这个脚本文件

 phpize  # 统当中没有phpize这个工具,在之前编译的好的php里面/app/php/bin/这个目录下,有的php版本当中不支持这个工具。

 ./configure  --enable-xcache  --with-php-config=/app/php/bin/php-config

 make && make install

3.添加配置文件并编辑

 mkdir /etc/php.d/

 cp xcache.ini /etc/php.d/


 vim /etc/php.d/xcache.ini 

    extension = /app/php/lib/php/extensions/no-debug-non-zts-20131226/xcache.so

    注:这个编译生成的模块文件,默认不存放在默认的目录下,要指定其存放在那里

 service httpd24 restart # 重启httpde服务



七、测试

1.http://httpd服务器的地址/blog/ 

2.压力测试  ab -c 100 -n 100  http://httpd服务器的地址/blog/

    登录上去会出现主页面的注册信息