10月10日 源码编译安装LAMP

1、php的加速器

  • rpm方式实现
    首先测试一下没有安装加速器时访问博客网站每秒钟处理的请求数
    ab -c 10 -n 100 http://172.18.21.107/blog/
yum install php-xcache   ---安装加速器的包,来自epel源
rpm -ql php-xcache
/etc/php.d/xcache.ini      ---做为php的一个配置文件,这个文件中规定了这个模块 extension = xcache.so
/usr/lib64/php/modules/xcache.so   ---可以发现xcache做为php 的一个模块
/usr/share/doc/php-xcache-3.1.1
/usr/share/doc/php-xcache-3.1.1/AUTHORS
/usr/share/doc/php-xcache-3.1.1/COPYING
/usr/share/doc/php-xcache-3.1.1/ChangeLog
/usr/share/doc/php-xcache-3.1.1/README
/usr/share/doc/php-xcache-3.1.1/THANKS
systemctl restart httpd  ---安装之后重启服务即可
判读是否安装成功,可以在httpd的根目录下创建一个测试的php程序

在浏览器上访问这个程序,可以看到php的版本信息,然后按ctrl+f,搜索一下看能否搜到php-xcache,能搜索到说明安装加速器成功。
测试
ab -c 10 -n 100 http://172.18.21.107/blog/   ---和前面对比略有提升

  • 源码编译安装
在官网上下载xcache-3.2.0.tar
官网:http://xcache.lighttpd.net/pub
tar xvf xcache-3.2.0.tar.bz2 
cd /app/xcache-3.2.0/
yum groupinstall "develpment tools"
yum install php-devel
phpize ---生成编译环境,如果不执行这个命令,将无法看到configure脚本,phpize是安装php时生成的程序
./configure --enable-xcache --with-php-config=/usr/bin/php-config    安装时要执行php的一个程序,这个程序为/usr/bin/php-config下,所以要指定这个程序的路径
make &&make install
cp /app/xcache-3.2.0/xcache.ini /etc/php.d/    ---把xcache做为php的一个模块,在xcache.ini文件中有规定,直接复制到php的配置文件目录下就可以了,就像rpm安装的一样,规定这个模块 extension = xcache.so
systemctl restart httpd
测试:ab -c 10 -n 100 http://172.18.21.107/blog/    ----可以发现安装新版本的加速器后性能明显提升。

在安装或者编译安装之前要先看一下当前php的版本,在官方网站上可以查到xcache支持的php版本如下图

10月10日 源码编译安装LAMP_第1张图片
QQ截图20171013150146.png

2、php-fpm

httpd+php结合的方式:
cgi:module: php,以模块方式,php做为httpd的模块
fastcgi: php-fpm,以独立的服务的方式,也会打开自己独立的端口
CentOS 6:
PHP-5.3.2之前:默认不支持fpm机制;需要自行打补丁并编译安装
httpd-2.2:默认不支持fcgi协议,需要自行编译此模块
解决方案:编译安装httpd-2.4, php-5.3.3+
CentOS 7:
httpd-2.4:rpm包默认编译支持了fcgi模块
php-fpm包:专用于将php运行于fpm模式,也就是yum安装此软件包即可实现php-fpm模式
fcgi服务配置文件:/etc/php-fpm.conf, /etc/php-fpm.d/*.conf

  • 用rpm方式在centos7.3上实现php-fpm模式
yum remove php     ---删除原有的以模块方式的php,因为两者不能共存
yum install php-fpm  ---安装独立方式运行的php软件包
rpm -ql php-fpm    ---查看一下这个软件包生成的文件列表
vim  /etc/php-fpm.d/www.conf   ---修改php-fpm的配置文件
listen = 9000   ---只写端口号就表示监听本机的所有ip,上面有说明
;listen.allowed_clients = 127.0.0.1   ---把这一行注释掉,默认是允许任何主机访问,如果httpd服务和php-fpm在同一台主机就不用改了,一般情况下这两个服务都是在一台主机的,只允许本机访问就可以了
systemctl start php-fpm   ---启动php-fpm服务
vim /etc/httpd/conf.d/fpm.conf   ---编辑httpd的配置文件,使它和php-fpm结合
DirectoryIndex index.php   ---指明httpd服务主目录的动态页面的文件
ProxyRequests Off   ---关闭代理请求
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/$1   --表示匹配以.php结尾的文件就通过fcgi也就是php-fpm的本机的ip的9000端口去处理,处理的目录是根目录下的匹配的.php结尾的文件,$1代替的就是前面匹配的以.php结尾的文件
systemctl restart httpd 
注意:在HTTPD服务器上必须启用proxy_fcgi_module模块,充当PHP客户端,可以通过如下命令查看模块是否启用
httpd –M |grep fcgi   ---发现模块已经启用
测试
vim /var/www/html/index.php 
 
http://172.18.21.107/    ---发现是rpm安装的php-fpm的版本
ab -c 10 -n 100 http://172.18.21.107/blog/  

3、fastcgi虚拟主机配置

vim /etc/httpd/conf.d/vhost.conf 

servername www.a.com
documentroot /app/website

require all granted

directoryIndex index.php
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/website/$1

mkdir /app/website
vim /app/website/index.php 
close();
phpinfo();
?>
在centos6上测试,修改/etc/hosts文件,使其能解析www.a.com,在图形界面下用火狐浏览器访问www.a.com,可以发现连接成功。

4、centos7.3实现基于源码编译安装LAMP的wordpress应用

软件环境:
apr-1.6.2.tar.gz       httpd-2.4.27.tar.bz2                php-7.1.10.tar.xz
apr-util-1.6.0.tar.gz  mariadb-10.2.8-linux-x86_64.tar.gz  wordpress-4.8.1-zh_CN.tar.gz
1 源码编译安装Httpd2.4
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.27.tar.bz2 
cp -a apr-1.6.2 httpd-2.4.27/srclib/apr
cp -a apr-util-1.6.0 httpd-2.4.27/srclib/apr-util
cd httpd-2.4.27/
./configure --prefix=/app/httpd24 --sysconfdir=/etc/httpd24 --enable-so --enable-ssl --enable-rewrite --with-zlib --with-pcre --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork
make -j 4 && make install
vim /etc/profile.d/lamp.sh
PATH=/app/httpd24/bin/:$PATH
. /etc/profile.d/lamp.sh
apachectl start
ss -tnl
2 二进制安装mariadb 
tar xvf mariadb-10.2.8-linux-x86_64.tar.gz  -C /usr/local/
cd /usr/local
ln -s mariadb-10.2.8-linux-x86_64/ mysql
useradd -r -m -d /app/mysqldb -s /sbin/nologin mysql 
cd mysql/
scripts/mysql_install_db --datadir=/app/mysqldb --user=mysql  ---生成mysql的初始数据库和相应的表,比如mysql。
mkdir /etc/mysql
cp support-files/my-large.cnf   /etc/mysql/my.cnf   ---创建mysql的配置文件
vim /etc/mysql/my.cnf
[mysqld]
datadir = /app/mysqldb
innodb_file_per_table = ON
skip_name_resolve = ON
cp support-files/mysql.server /etc/init.d/mysqld   ---创建一个服务脚本
chkconfig --add mysqld
chkconfig --list 
service mysqld start
mkdir /var/log/mariadb   ---创建一个日志目录,并修改所有者或者权限,不然服务无法启动,会报错,也就是服务启动的时候会写日志
chown mysql /var/log/mariadb/
service mysqld start
vim /etc/profile.d/lamp.sh 
PATH=/app/httpd24/bin/:/usr/local/mysql/bin/:$PATH
. /etc/profile.d/lamp.sh
mysql_secure_installation
mysql -uroot -pcentos
create datebase wpdb;
grant all on wpdb.* to wpuser@'192.168.25.%' identified by 'centos';
grant all on wpdb.* to wpuser@'127.%' identified by 'centos';
grant all on wpdb.* to wpuser@'localhost' identified by 'centos';
如果数据库和php在同一台主机要授权本机的localhost和127.%,不然本机都无法访问后面的wpdb数据库
3 源码编译安装php
yum install libxml2-devel bzip2-devel libmcrypt-devel 
tar xvf php-7.1.10.tar.xz 
cd php-7.1.10/
./configure \
--prefix=/app/php \
--enable-mysqlnd \
--with-mysqli=mysqlnd \
--with-openssl \
--with-pdo-mysql=mysqlnd \
--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 \  ---指明安装的php为模块的运行模式
--with-mcrypt \
--with-config-file-path=/etc \   ---指明主配置文件的路径
--with-config-file-scan-dir=/etc/php.d \   ---指明副配置文件路径
--enable-maintainer-zts \
--disable-fileinfo
make -j 4 && make install
cp php.ini-production /etc/php.ini  ----创建一个php的配置文件,可以从模板复制,这个文件不需要修改什么,如果需要可以修改一下时区
vim /etc/httpd24/httpd.conf   ---修改httpd的配置文件
在文件尾部加两行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
修改配置文件中的主目录的网页文件

    DirectoryIndex index.php index.html

apachectl stop
apachectl start
4 测试php和mariadb连接
vim /app/httpd24/htdocs/index.php 

LAMP

close(); phpinfo(); ?> 5 配置wordpress tar xvf wordpress-4.8.1-zh_CN.tar.gz -C /app/httpd24/htdocs ---把wordpress解压到httpd网站的主目录下 cd /app/httpd24/htdocs ln -s wordpress/ blog/ 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'); 6 登录测试 http://172.18.21.107/blog/ 测试性能 ab -c 10 -n 100 http://172.18.21.107/blog/

5、centos6.9实现基于源码编译安装LAMP(php模块方式)的wordpress应用

软件版本:
apr-1.6.2.tar.gz       httpd-2.4.27.tar.bz2                php-5.6.31.tar.xz             xcache-3.2.0.tar.bz2
apr-util-1.6.0.tar.gz  mariadb-5.5.57-linux-x86_64.tar.gz  wordpress-4.8.1-zh_CN.tar.gz
1 、编译httpd2.4
yum groupinstall "development tools"
yum install openssl-devel pcre-devel expat-devel
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 
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
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
make -j 4 && make install
vim /etc/profile.d/lamp.sh
PATH=/app/httpd24/bin/:$PATH
. /etc/profile.d/lamp.sh
cp  /etc/init.d/httpd  /etc/init.d/httpd24  ---将原电脑上的httpd的服务脚本复制一下,注意原httpd服务不要启动。
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
2、 二进制安装mariadb
tar xvf mariadb-5.5.57-linux-x86_64.tar.gz  -C /usr/local/
cd /usr/local/
ln -s mariadb-5.5.57-linux-x86_64/ mysql
useradd -r -m -d /app/mysqldb -s /sbin/nologin 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
cp support-files/mysql.server /etc/init.d/mysqld  ----创建数据库服务脚本
chkconfig --add mysqld
chkconfig --list 
service mysqld start
touch /var/log/mysqld.log    ---创建日志文件并授权,不然服务无法启动
chown mysql /var/log/mysqld.log
service mysqld start
vim /etc/profile.d/lamp.sh 
PATH=/app/httpd24/bin/:/usr/local/mysql/bin/:$PATH
. /etc/profile.d/lamp.sh
mysql_secure_installation
mysql -uroot -pcentos
create datebase wpdb;
grant all on wpdb.* to wpuser@'192.168.25.%' identified by 'centos';
grant all on wpdb.* to wpuser@'127.%' identified by 'centos';
grant all on wpdb.* to wpuser@'localhost' identified by 'centos';
3、 源码编译php
yum install libxml2-devel bzip2-devel libmcrypt-devel
tar xvf php-5.6.31.tar.xz 
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
make -j 4 && make install
vim /etc/profile.d/lamp.sh 
PATH=/app/php/bin:/app/httpd24/bin/:/usr/local/mysql/bin/:$PATH
.  /etc/profile.d/lamp.sh 
cp /app/php-5.6.31/php.ini-production /etc/php.ini   ---创建一个php的配置文件,可以修改一下时区
vim /app/httpd24/conf/httpd.conf   ---要想让httpd和php连接,需要在httpd的配置文件中增加和修改内容,在文件尾部加两行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
修改下面行

DirectoryIndex index.php index.html

service httpd24 restart
4 、测试php是否可以连接数据库
vim /app/httpd24/htdocs/index.php

It works!

close(); phpinfo(); ?> 5、 配置wordpress tar xvf wordpress-4.8.1-zh_CN.tar.gz -C /app/httpd24/htdocs cd /app/httpd24/htdocs ln-s wordpress/ blog/ 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'); 6 、登录测试 http://websrv/blog 测试性能 ab -c 10 -n 100 http://websrv/blog/ 7、 编译xcache 实现Php加速 tar xvf xcache-3.2.0.tar.bz2 cd xcache-3.2.0 phpize ./configure --enable-xcache --with-php-config=/app/php/bin/php-config ---安装加速器时要执行php-config这个程序,这个程序在编译安装php的时候生成的,在/app/php/bin/目录下 make && make install mkdir /etc/php.d/ cp xcache.ini /etc/php.d/ vim /etc/php.d/xcache.ini ---xcache做为php的一个模块,在php的配置文件中要规定模块的路径 extension = /app/php/lib/php/extensions/no-debug-non-zts-20131226/xcache.so service httpd24 restart 8 、测试 ab -c 10 -n 100 http://websrv/blog/

6、centos6.9实现基于源码编译安装LAMP(PHP-FPM方式)的wordpress应用

软件版本:
apr-1.6.2.tar.gz       httpd-2.4.27.tar.bz2                php-5.6.31.tar.xz             xcache-3.2.0.tar.bz2
apr-util-1.6.0.tar.gz  mariadb-5.5.57-linux-x86_64.tar.gz  wordpress-4.8.1-zh_CN.tar.gz
1、 编译httpd2.4
yum groupinstall "development tools"
yum install openssl-devel pcre-devel expat-devel
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 
cp -a apr-1.6.2 httpd-2.4.27/srclib/apr
cp -a apr-util-1.6.0 httpd-2.4.27/srclib/apr-util
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
make -j 4 && make install
vim /etc/profile.d/lamp.sh
PATH=/app/httpd24/bin/:$PATH
. /etc/profile.d/lamp.sh
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}
prog=httpd
pidfile=${PIDFILE-/app/httpd24/logs/httpd.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd24}
chkconfig --add httpd24
chkconfig --list httpd24
service httpd24 start
2 、二进制安装mariadb
tar xvf mariadb-5.5.57-linux-x86_64.tar.gz  -C /usr/local/
cd /usr/local/
ln -s mariadb-5.5.57-linux-x86_64/ mysql
useradd -r -m -d /app/mysqldb -s /sbin/nologin 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
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --list 
service mysqld start
touch /var/log/mysqld.log
chown mysql /var/log/mysqld.log
service mysqld start
vi /etc/profile.d/lamp.sh 
PATH=/app/httpd24/bin/:/usr/local/mysql/bin/:$PATH
. /etc/profile.d/lamp.sh
mysql_secure_installation
mysql -uroot -pcentos
create datebase wpdb;
grant all on wpdb.* to wpuser@'192.168.25.%' identified by 'centos';
grant all on wpdb.* to wpuser@'127.%' identified by 'centos';
grant all on wpdb.* to wpuser@'localhost' identified by 'centos';
3、 源码编译php
yum install libxml2-devel bzip2-devel libmcrypt-devel
tar xvf php-5.6.31.tar.xz 
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 \   ---指定是fpm模式安装php
--with-mcrypt \
--with-config-file-path=/etc/php5 \
--with-config-file-scan-dir=/etc/php5.d \
--with-bz2
make -j 4 && make install
vi /etc/profile.d/lamp.sh 
PATH=/app/php5/bin:/app/httpd24/bin/:/usr/local/mysql/bin/:$PATH
.  /etc/profile.d/lamp.sh 
mkdir /etc/php5/
cp /app/php-5.6.31/php.ini-production /etc/php5/php.ini  ---创建php的配置文件,规定时区
cp   /app/php-5.6.31/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm   ---创建php-fpm的服务脚本
chmod +x /etc/init.d/php-fpm
chkconfig --add php-fpm
chkconfig --list  php-fpm
service php-fpm start
cd /app/php5/etc
cp php-fpm.conf.default php-fpm.conf  ---创建php-fpm的配置文件,里面规定了端口号等
vim app/httpd24/conf/httpd.conf
取消两行的注释
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
在文件尾部加四行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
ProxyRequests Off 关闭代理
ProxyPassMatch  ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1
修改下面行

    DirectoryIndex index.php index.html

service httpd24 restart
4 测试
vim /app/httpd24/htdocs/index.php

It works!

close(); phpinfo(); ?> 5 、配置wordpress 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'); /** MySQL数据库用户名 */ define('DB_USER', 'wpuser'); /** MySQL数据库密码 */ define('DB_PASSWORD', 'centos'); /** MySQL主机 */ define('DB_HOST', 'localhost'); 6 、登录测试 http://websrv/blog 测试性能 ab -c 10 -n 100 http://websrv/blog/ 7 、编译xcache 实现Php加速 tar xvf xcache-3.2.0.tar.bz2 cd xcache-3.2.0 phpize ./configure --enable-xcache --with-php-config=/app/php5/bin/php-config make && make install mkdir /etc/php5.d/ cp /app/xcache-3.2.0/xcache.ini /etc/php5.d/ ---创建php对于xcache的配置文件 vim /etc/php5.d/xcache.ini ---xcache做为php的一个模块,在php的配置文件中规定了模块的路径 extension = /app/php5/lib/php/extensions/no-debug-non-zts-20131226/xcache.so service php-fpm restart 8 、测试 ab -c 10 -n 100 http://websrv/blog/

总结:4、5、6方法编译安装时都需要将php和数据库放到同一台主机,不然无法连接到数据,因为没有安装php-mysql软件包,即使安装了也不配套,源码编译安装php的时候都安装好了php-mysql,就不需要安装php-mysql了。

你可能感兴趣的:(10月10日 源码编译安装LAMP)