author:JevonWei

版权声明:原创作品


软件环境:

centos6.9
httpd-2.4.27.tar.bz2
apr-1.5.2.tar.bz2
apr-util-1.5.4.tar.bz2
mariadb-5.5.57-linux-x86_64.tar.gz
php-5.6.31.tar.bz2
wordpress-4.8-zh_CN.tar.gz
xcache-3.2.0.tar.bz2

编译安装httpd-2.4.27

yum groupinstall "Development Tools" -y
yum install pcre-devel openssl-devel 下载相关文件到/root/src目录下
tar xvf apr-1.5.2.tar.bz2
tar xvf apr-util-1.5.4.tar.bz2
tar xvf httpd-2.4.27.tar.bz2
mv apr-1.5.2/ httpd-2.4.27/srclib/apr
mv apr-util-1.5.4/ httpd-2.4.27/srclib/apr-util
cd httpd-2.4.27
./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 && make install 或者下面方法
tar xvf apr-1.5.2.tar.bz2
cd apr-1.5.2
./configure --prefix=/app/apr
make && make install tar xvf apr-util-1.5.4.tar.bz2
cd apr-util-1.5.4
./configure --prefix=/app/apr-util --with-apr=/app/apr
make && make install tar xvf httpd-2.4.27.tar.bz2
cd httpd-2.4.27 ./configure --prefix=/app/httpd24 --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/app/apr --with-apr-util=/app/apr-util --enable-modules=most --enable-mpms-shared=all --with-mpm=event
make && make install 配置环境变量
vim /etc/profile.d/app.sh
export PATH=/app/httpd24/bin:$PATH
. /etc/profile.d/app.sh 参考httpd-2.2创建服务脚本
cd /etc/rc.d/init.d/
cp httpd httpd24
vim 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
ss -ntl
httpd -M 查看
mpm_prefork module(share)或者mpm_event_module(shared)

二进制安装mariadb-5.5.57

rpm –qa “mysql*”
yum remove mysql* 下载mariadb-5.5.57-linux-x86_64
tar xvf mariadb-5.5.57-linux-x86_64 -C /usr/local
注意:建议使用/usr/local,编译安装时的默认路径,否则后续很多配置要指定新路径 id mysql
如果不存在mysql用户
useradd –r -m –s /sbin/nlogin –d /app/mysqldb mysql 如果存在 Mysql用户
mkdir /app/mysqldb
chown mysql.mysql /app/mysqldb cd /usr/local
ln -s mariadb-5.5.57-linux-x86_64/ mysql
cd 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 即
[mysqld]
datadir = /app/mysqldb
innodb_file_per_table = on
skip_name_resolve = on 生成mysqld服务脚本
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
service mysqld start touch /var/log/mysqld.log
chown mysql /var/log/mysqld.log vim /etc/profile.d/app.sh
export PATH=/usr/local/mysql/bin/:/app/httpd24/bin:$PATH
. /etc/profile.d/app.sh
mysql \\用mysql命令测试, 登录成功 mysql_secure_installation \\实现安全,设置root口令 创建wordpress使用的数据库和用户及权限
mysql -uroot -pdanran -e "create database blogdb; grant all on blogdb.* to blog@'localhost' identified by 'blog';" 测试验证登录成功
mysql -blog -pblog

编译安装php

下载 php-5.6.31.tar.bz2
tar xvf php-5.6.31.tar.bz2
cd php-5.6.31
yum -y install bzip2-devel libxml2-devel libmcrypt-devel(epel源) ./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-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 说明:
./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-zlib压缩
--with-libxml-dir=/usr 支持文档xml
--enable-xml
--enable-sockets socket通信
--with-apxs2=/app/httpd24/bin/apxs 将Php编译成apache的模块
--with-mcrypt
--with-config-file-path=/etc php配置文件路径
--with-config-file-scan-dir=/etc/php.d
--with-bz2 --enable-maintainer-zts 用于支持worker和event模块,如果prefork不需要 make -j 4 && make install cp php.ini-production /etc/php.ini

配置httpd2.4支持php

vim /app/httpd24/conf/httpd.conf
加二行
AddType application/x-httpd-php .php
Addtype application/x-httpd-php-source .phps 修改
DirectoryIndex index.html
为下面行
DirectoryIndex index.php index.html apachectl stop
apachectl start

测试访问

vim /app/httpd24/htdocs/index.php
<?php
$conn=mysql_connect('127.0.0.1','blog','blog');
if($conn)
echo "OK";
else
echo "Not OK";
mysql_close();
phpinfo();
?>

安装wordpress

tar xvf  wordpress-4.8-zh_CN.tar.gz
mv wordpress /app/httpd24/htdocs/blog/
cd /app/httpd24/htdocs/blog/
cp wp-config-sample.php wp-config.php
vim wp-config.php
define('DB_NAME', 'blogdb');
define('DB_USER', 'wpuser');
define('DB_PASSWORD', 'magedu');
define('DB_HOST', 'localhost'); http://172.16.253.166/blog 登录成功

测试性能

观察下面命令的结果:
ab -c 10 -n 100 http://websrv/blog/

编译安装xcache

下载xcache-3.2.0.tar.bz2
tar xf xcache-3.2.0.tar.bz2
cd xcache-3.2.0 /app/php/bin/phpize 生成编译环境.configure脚本
./configure --enable-xcache --with-php-config=/app/php/bin/php-config
make && make install
注意最后结果的一行目录
ls /app/php/lib/php/extensions/no-debug-non-zts-20131226/xcache.so mkdir /etc/php.d/
cp xcache.ini /etc/php.d/
vim /etc/php.d/xcache.ini
[xcache-common]
修改
extension = /app/php/lib/php/extensions/no-debug-non-zts-20131226/xcache.so service httpd24 restart

测试性能

http://localhost/ 在后面可以看到xcache的信息
观察下面命令的结果:性能有提高
ab -c 10 -n 100 http://172.16.253.166/pma/index.php

实验:在centos6上配置以fpm方式的php

在上一个实验基础上实现本实验

软件环境:

centos6.9
httpd-2.4.27.tar.bz2
apr-1.5.2.tar.bz2
apr-util-1.5.4.tar.bz2
mariadb-5.5.57-linux-x86_64.tar.gz
php-5.6.31.tar.bz2
wordpress-4.8-zh_CN.tar.gz
xcache-3.2.0.tar.bz2

先在centos6上编译安装httpd2.4和mariadb二进制方式

先删除前面实验的php信息
rm -rf /root/src/php*
和前面实验的步骤一样,先httpd24 mysql,再做下面步骤:

编译安装php

yum -y install bzip2-devel  libxml2-devel libmcrypt-devel(epel源)
tar xvf php-5.6.31.tar.bz2
cd php-5.6.31/ 为防止和上面实验冲突,修改下面的相关路径
./configure --prefix=/app/php5 --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-zlib --with-libxml-dir=/usr --enable-xml --enable-sockets --enable-fpm --with-mcrypt --with-config-file-path=/etc/php5 --with-config-file-scan-dir=/etc/php5.d --with-bz2 make -j 4 && make install

实现php的配置文件和服务脚本

mkdir /etc/php5  /etc/php5.d/
cp php.ini-production /etc/php5/php.ini cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
chmod +x /etc/rc.d/init.d/php-fpm
chkconfig --add php-fpm
chkconfig --list php-fpm cd /app/php5/etc
cp php-fpm.conf.default php-fpm.conf 编辑php配置文件,可不做修改
vim /app/php5/etc/php-fpm.conf
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 5 和pm.start_servers一致
pid = /app/php5/var/run/php-fpm.pid service php-fpm start
ps aux|grep fpm
netstat -ntl

修改httpd24的配置文件

service httpd24 stop

cp /app/httpd24/conf/httpd.conf  /app/httpd24/conf/httpd.conf.bak \\备份配置文件
vim /app/httpd24/conf/httpd.conf 去掉下面两行注释
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
\\ 说明:启用httpd的相关模块
在Apache httpd 2.4以后已经专门有一个模块针对FastCGI的实现,此模块为mod_proxy_fcgi.so,它其实是作为mod_proxy.so模块的扩充,因此,这两个模块都要加载 添加如下二行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps 定位至DirectoryIndex index.html
修改为:
DirectoryIndex index.php index.html <IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule> 加下面两行,全局任意位置,如最后
ProxyRequests Off 关闭正向代理
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1 \\ProxyPassMatch:把以.php结尾的文件请求发送到php-fpm进程,php-fpm至少需要知道运行的目录和URI,所以这里直接在fcgi://127.0.0.1:9000后指明了这两个参数,其它的参数的传递已经被mod_proxy_fcgi.so进行了封装,不需要手动指定。 httpd -t
httpd –M
service httpd24 restart

生成测试页

vim /app/apache24/htdocs/index.php
如下:
<?php
$link = mysql_connect('127.0.0.1','blog','blog');
if ($link)
echo "Success...";
else
echo "Failure...";
mysql_close();
phpinfo();
?> http://websrv/index.php 成功 ,但没有xcache信息 观察下面命令的结果:Requests per second:没有xcache加速
ab -c 100 -n 1000 http://websrv/index.php

编译安装xcache实现加速

tar xf xcache-3.2.0.tar.bz2
cd xcache-3.2.0/
/app/php5/bin/phpize 生成编译环境.configure脚本
./configure --enable-xcache --with-php-config=/app/php5/bin/php-config
make && make install 注意最后结果的一行目录
ls /app/php5/lib/php/extensions/no-debug-non-zts-20131226 cp xcache.ini /etc/php5.d/
vim /etc/php5.d/xcache.ini
[xcache-common]
修改
extension = /app/php5/lib/php/extensions/no-debug-non-zts-20131226/xcache.so service php-fpm restart
\\ 注意:不需要重启httpd服务
ps aux |grep php 查看php进程
http://localhost/ 在后面可以看到xcache的信息

在centos6上实现编译安装lamp和wordpress,并编译xcache的更多相关文章

  1. centos7编译安装lamp实现wordpress

    准备安装包,并解压 mariadb-10.3.13.tar.gz  ,php-7.3.2.tar.bz2  ,httpd-2.4.38.tar.bz2  php-7.3.2 ,  phpMyAdmin ...

  2. CentOS6.3 编译安装LAMP(1):准备工作

    卸载yum或rpm安装的amp软件 #在编译安装lamp之前,首先先卸载已存在的rpm包. rpm -e httpd rpm -e mysql rpm -e php yum -y remove htt ...

  3. CentOS6.3 编译安装LAMP(2):编译安装 Apache2.2.25

    所需源码包: /usr/local/src/Apache-2.2.25/httpd-2.2.25.tar.gz 编译安装 Apache2.2.25 #切换到源码目录 cd /usr/local/src ...

  4. CentOS6.3 编译安装LAMP(3):编译安装 MySQL5.5.25

    所需源码包: /usr/local/src/MySQL-5.5.25/cmake-2.8.8.tar.gz /usr/local/src/MySQL-5.5.25/mysql-5.5.25.tar.g ...

  5. CentOS6.3 编译安装LAMP(4):编译安装 PHP5.2.17

    所需源码包: /usr/local/src/PHP-5.2.17/libmcrypt-2.5.8.tar.gz /usr/local/src/PHP-5.2.17/mhash-0.9.9.9.tar. ...

  6. CentOS6.5下编译安装LAMP环境

    LAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际流行的Web框架.该框架能够满足大流量.大并发量的网站需求:当然.也可以直接使用高性能的服务器.高性能的负载均衡硬件以及CDN ...

  7. CentOS6.3 编译安装LAMP(2):编译安装 Apache2.4.6

    Apache官方说: 与Apache 2.2.x相比,Apache 2.4.x提供了很多性能方面的提升,包括支持更大流量.更好地支持云计算.利用更少的内存处理更多的并发等.除此之外,还包括性能提升.内 ...

  8. CentOS6.3 编译安装LAMP(4):编译安装 PHP5.3.27

    所需源码包: /usr/local/src/PHP-5.3.27/libmcrypt-2.5.8.tar.gz /usr/local/src/PHP-5.3.27/mhash-0.9.9.9.tar. ...

  9. (1)编译安装lamp三部曲之apache-技术流ken

    简介 采用yum安装lamp简单,快捷,在工作中也得到了普遍应用.但是如果我们需要某些特定模块功能,以及制定安装位置等,就需要用到编译安装了,接下来将编译安装lamp之apache. 系统环境及服务版 ...

随机推荐

  1. Eclipse、maven项目常见问题

    阿里云maven仓库地址: <mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorOf> &l ...

  2. JAVA二维数组的复制

    JAVA二维数组的复制 笔者今天做一道ccf题目时,遇到要将二维数组拷贝复制时,没有用常规的那种一个一个数的复制,用的是System.arraycopy()来进行复制,下面介绍这个函数的一些注意点: ...

  3. 接口自动化(Python)-利用正则表达式从返回的HTML文本中截取自己想要的值

    例如一个功能接口的返回值 是一个HTML文本: 例如我们要取上图中标识的id的值,并且这个值是动态的,这是我们就需要用到正则表达式进行匹配. 如下是正则匹配的方法(代码中都有注释): 我们在真正使用的 ...

  4. Python网络数据采集4-POST提交与Cookie的处理

    Python网络数据采集4-POST提交与Cookie的处理 POST提交 之前访问页面都是用的get提交方式,有些网页需要登录才能访问,此时需要提交参数.虽然在一些网页,get方式也能提交参.比如h ...

  5. Hibernate批量操作(二)

    Hibernate提供了一系列的查询接口,这些接口在实现上又有所不同.这里对Hibernate中的查询接口进行一个小结. 我们首先来看一下session加载实体对象的过程:Session在调用数据库查 ...

  6. gitlab 实现自动部署(简单Python实现)

    功能说明: 当本地master分支执行push动作的时候,服务器端会自动执行master分支的pull操作(还可以执行一些自动化脚本) 原理: git hooks就是那些在git执行特定事件(如com ...

  7. 超多经典 canvas 实例,动态离子背景、移动炫彩小球、贪吃蛇、坦克大战、是男人就下100层、心形文字等等等

    超多经典 canvas 实例 普及:<canvas> 元素用于在网页上绘制图形.这是一个图形容器,您可以控制其每一像素,必须使用脚本来绘制图形. 注意:IE 8 以及更早的版本不支持 &l ...

  8. java实现网页爬虫

    接着上面一篇对爬虫需要的java知识,这一篇目的就是在于网页爬虫的实现,对数据的获取,以便分析. -----> 目录:   1.爬虫原理 2.本地文件数据提取及分析 3.单网页数据的读取 4.运 ...

  9. Git基础命令的使用

    当前git版本: git version 2.9.2.windows.1 1.创建一个能与git服务器连接的本地git库 本地:  git init git status (-s) git add . ...

  10. C/C++ 知识点---排序实现

    1.冒泡排序冒泡排序是O(N^2)复杂度的排序算法,效率较低,需要N趟遍历,每次将候选集中最小的数通过交换浮到最上面: template <typename Type> void Bubb ...