CentOS6基于源码编译安装LAMP实现WordPress功能和xcache功能

前言: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.解压安装包

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.安装

3.添加环境变量

PATH=/app/PHP/bin:/app/httpd24/bin/:/usr/local/MysqL/bin/:$PATH

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.解压包

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加速

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

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/

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

相关文章

Centos下搭建性能监控Spotlight
CentOS 6.3下Strongswan搭建IPSec VPN
在CentOS6.5上安装Skype与QQ
阿里云基于centos6.5主机VPN配置
CentOS 6.3下配置multipah
CentOS安装、配置APR和tomcat-native