前言:APR(Apache portable Run-time libraries,Apache可移植运行库)的目的如其名称一样,主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。
PHP的加速器xcache:基于PHP的特殊扩展机制如opcode缓存扩展也可以将opcode缓存于PHP的共享内存中,从而可以让同一段代码的后续重复执行时跳过编译阶段以提高性能。这些加速器并非真正提高了opcode的运行速度,而仅是通过分析opcode后并将它们重新排列以达到快速执行的目的
准备工作
软件版本:软件包全都放在: /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.解压安装包
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
cd /usr/local/MysqL
scripts/MysqL_install_db --datadir=/app/MysqLdb --user=MysqL # 分别指定数据库的位置和用户
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
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数据库是否启用、是否开启远程连接等等
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.安装
3.添加环境变量
PATH=/app/PHP/bin:/app/httpd24/bin/:/usr/local/MysqL/bin/:$PATH
cp /app/PHP-5.6.31/PHP.ini-production /etc/PHP.ini # 编译安装完成后生成的模板文件
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.解压包
tar -xvf wordpress-4.8.1-zh_CN.tar.gz -C /app/httpd24/htdocs
cd /app/httpd24/htdocs
mv wordpress blog
cd /app/httpd24/htdocs/blog/
cp wp-config-sample.PHP wp-config.php # 安装包当中自带的模块配置文件,必须改这个名
vim wp-config.php
define('DB_NAME','wpdb');
define('DB_USER','wpuser');
define('DB_PASSWORD','centos');
/** MysqL主机 */
define('DB_HOST','localhost');
六、编译xcache 实现PHP加速
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
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/