实验:在centos6上编译lamp基于fpm模式的应用wordpress,并且实现xcache加速
软件版本:
apr-1.6.2.tar.gz mariadb-5.5.57-linux-x86_64.tar.gz
apr-util-1.6.0.tar.gz xcache-3.2.0.tar.gz
PHP-5.6.31.tar.xz httpd-2.4.28.tar.bz2
wordpress-4.8.1-zh_CN.tar.gz
必要的包:
"development tools" 开发环境包组
openssl-devel expat-devel pcre-devel httpd需要的包
libxml2-devel bzip2-devel libmcrypt-devel PHP需要的包
步骤:
1、源码编译安装Httpd2.4
具体含义请参考之前的博文:http://13150617.blog.51cto.com/13140617/1974733
①安装包组及包
yum groupinstall "development tools" 安装开发包组
yum install openssl-devel expat-devel pcre-devel 安装必要的包
②下载软件并解压
tar xvf apr-1.6.2.tar.gz
tar xvf apr-util-1.6.0.tar.gz
tar xvf httpd-2.4.28.tar.bz2
cp -r apr-1.6.2 httpd-2.4.28/srclib/apr
cp -r apr-util-1.6.0 httpd-2.4.28/srclib/apr-util 将apr和apr-util放到同一指定目录下
③编译安装httpd
cd httpd-2.4.28/
./configure --prefix=/app/httpd24 \
--enable-so \
--enable-ssl \
--enable-cgi \
--enable-rewrite \
--with-zlib \
--with-pcre \
--with-included-apr \
--enable-modules=most \
--enable-mpms-shared=all \
--with-mpm=prefork
make -j 4 && make install
④将httpd的命令路径加入PATH变量,方便使用(不需要每次都使用绝对路径)
vim /etc/profile.d/lamp.sh
PATH=/app/httpd24/bin/:$PATH
. /etc/profile.d/lamp.sh执行脚本使其生效
⑤启动服务
apachectl start
⑥配置成服务
cp /etc/init.d/httpd /etc/init.d/httpd24
vim /etc/init.d/httpd24
apachectl=/app/httpd24/bin/apachectl
httpd=${HTTPD-/app/httpd24/bin/httpd}
pidfile=${PIDFILE-/app/httpd24/logs/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd24}
chkconfig --add httpd24
service http24 restart 重启服务
查看已打开80端口:ss -ntl
2、二进制安装mariadb
具体含义请参考之前的博文:http://13150617.blog.51cto.com/13140617/1971776
①下载二进制包并解压
tar xvf mariadb-10.2.9-linux-x86_64.tar.gz -C /usr/local/ 路径必须在这里
②将解压后的包改名为MysqL
cd /usr/local
ln -s mariadb-10.2.9-linux-x86_64/ MysqL 创建软链接,名字必须为MysqL,
或者,mv mariadb-10.2.9-linux-x86_64MysqL 直接改名为MysqL
mkdir -p /app/MysqLdb
useradd -r -m -d /app/MysqLdb -s /sbin/nologin MysqL 创建MysqL用户,家目录为/app/MysqLdb,可以自己指定
【附加,可以不做此操作:使用逻辑卷作为数据库的数据存放位置
设置-->添加一块硬盘
echo '- - -' > /sys/class/scsi_host/host2/scan 使硬盘生效
创建逻辑卷:
pvcreat /dev/sdb vgcreate vg_MysqLdb /dev/sdb
lvcreate -n lv_MysqLdb -l +100%FREE vg_MysqLdb
mkfs.ext4 /dev/vg_MysqLdb/lv_MysqLdb -L /app/MysqLdb(卷标名) 格式化
vim /etc/fstab 配置开机挂载 /dev/vg_MysqLdb/lv_MysqLdb /app/MysqLdb ext4 defaults,acl 0 0
mount -a 重新挂载
chown MysqL /app/MysqLdb 修改文件所属人为MysqL
】
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 文件名必须叫这个vim /etc/MysqL/my.cnf
[MysqLd]
datadir = /app/MysqLdb
innodb_file_per_table = ON
skip_name_resolve = ON⑥将mysqp配置成服务MysqLd
cp support-files/MysqL.server /etc/init.d/MysqLd
chkconfig --add MysqLd
service MysqLd start 启动不了因为没有日志文件,根据提示做如下操作
touch /var/log/MysqLd.log 创建日志文件
chown MysqL /var/log/MysqLd.log 修改日志文件权限
service MysqLd start 启动MysqLd服务
ss -ntl 看到3306端口打开
⑦将MysqLd的命令路径加入变量,方便使用
vim /etc/profile.d/lamp.sh
PATH=/app/httpd24/bin/:/usr/local/MysqL/bin/:$PATH
. /etc/profile.d/lamp.sh
⑧运行安全脚本,设置root密码
MysqL_secure_installation ⑨登陆数据库创建数据库及用户为wordpress的实现做准备
MysqL -uroot -pcentos
>create datebase blogdb; 创建blogdb数据库
创建用户wpuser@'192.168.199.%'并授权:
>grant all on blogdb.* to wpuser@'192.168.199.%' identified by '123456';
3、源码编译安装PHP
①安装必要的包,下载PHP源码并解压
yum install libxml2-devel bzip2-devel libmcrypt-devel 有的包需要epel源
tar xvf PHP-7.1.10.tar.xz
②编译安装PHP,基于fpm独立服务方式
cd PHP-7.1.10/
./configure --prefix=/app/PHP \
--with-MysqL=/usr/local/MysqL \
--with-openssl \
--with-MysqLi=/usr/local/MysqL/bin/MysqL_config \
--enable-mbstring \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-libxml-dir=/usr \
--enable-xml \
--enable-sockets \
--enable-fpm \
--with-mcrypt \
--with-config-file-path=/etc/PHP \
--with-config-file-scan-dir=/etc/PHP.d \
--with-bz2 make -j 4 && make install
③将PHP的命令路径加入 vim /etc/profile.d/lamp.sh
PATH=/app/httpd24/bin/:/usr/local/MysqL/bin/:/app/PHP/bin/:$PATH
. /etc/profile.d/lamp.sh
mkdir /etc/PHP
cp PHP-7.1.10/PHP.ini-production /etc/PHP/PHP.ini
复制脚本模板并配置成服务,方便使用:
cp PHP-7.1.10/sapi/fpm/init.d.PHP-fpm.in /etc/init.d/PHP-fpm
chkconfig --add PHP-fpm
chmod +x /etc/init.d/PHP-fpm
准备自己服务的配置文件:
cp /app/PHP/etc/PHP-fpm.conf.default /app/PHP/etc/PHP-fpm.conf
vim /app/httpd24/conf/httpd.conf
在文件尾部加四行
ProxyRequests Off
ProxyPassMatch ^/(.*\.PHP)$ fcgi://127.0.0.1:9000/app/http24/htdocs/$1
AddType application/x-httpd-PHP .PHP
AddType application/x-httpd-PHP-source .PHPs 取消两行注释
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
<IfModule dir_module>
DirectoryIndex index.PHP index.html
</IfModule>
启动PHP服务:
service PHP-fpm start
如果启动不起来,报错如下:
那么vim /etc/init.d/PHP-fpm
PHP_fpm_BIN=/app/PHP/sbin/PHP-fpm
PHP_fpm_CONF=/app/PHP/etc/PHP-fpm.conf
PHP_fpm_PID=/app/PHP/var/run/PHP-fpm.pid
再启动即可service PHP-fpm start
可以使用ss -ntl 查看9000端口打开了
5、测试PHP和mariadb连接
vim /app/httpd24/htdocs/index.PHP
<html><body><h1> LAMP</h1></body></html>
<?PHP
$MysqLi=new MysqLi("MysqLserver","root","123456");
if(MysqLi_connect_errno()){
echo "连接数据库失败!";
$MysqLi=null;
exit;
}
echo "连接数据库成功!";
$MysqLi->close();
PHPinfo();
?>
网页访问:http://192.168.199.137/,效果如下则测试成功。至此lamp架构就实现了
6、配置wordpress
①下载wordpress并解压
tar xvf wordpress-4.8.1-zh_CN.tar.gz
②将wordpress下所有文件放到主站点下,并且配置使其连接数据库
mv wordpress/* /app/httpd24/htdocscd /app/httpd24/htdocs/
cp wp-config-sample.PHP wp-config.php 准备配置文件
vim wp-config.php 编辑配置文件
define('DB_NAME','blogdb'); 数据库名
define('DB_USER','wpuser'); 用户名
define('DB_PASSWORD','123456'); 密码
define('DB_HOST','localhost'); 数据库所在服务器地址
7、性能测试: ab-c 20 -n 1000 http://192.168.199.137
windows测试:http://192.168.199.137出现如下欢迎界面
①下载工具并解压
tar xvf xcache-3.2.0.tar.gz
②编译安装xcache
cd xcache-3.2.0
./configure --enable-xcache --with-PHP-config=/app/PHP/bin/PHP-config
make && make install 编译安装
③配置xcache
mkdir /etc/PHP.d
cp xcache-3.2.0/xcache.ini /etc/PHP.d/ 将xcache复制到PHP.d下就可以使PHP和xcache结合在一起
修改库的路径(可以使用ls看一下路径):
vim /etc/PHP.d/xcache.ini
extension = /app/PHP/lib/PHP/extensions/no-debug-non-zts-20131226/xcache.so
④重启PHP-fpm服务
servicePHP-fpmrestart
性能测试:ab-c 20 -n 1000 比较之前会发现处理速度明显提升
感谢浏览,如有疑问,欢迎留言
原文链接:https://www.f2er.com/centos/375438.html