阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

源码搭建LAMP+FastCGI+Xcache加速器

98次阅读
没有评论

共计 12955 个字符,预计需要花费 33 分钟才能阅读完成。

Apache HTTP Server(简称 Apache)是 Apache 软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的 Web 服务器端软件之一。它快速、可靠并且可通过简单的 API 扩展,将 Perl/Python 等解释器编译到服务器中。

方式一:模块化的方式

安装 apache

一、安装条件
1. 确保 linux 上已经安装 apr 和 apr-util
2. 确保 linux 上已经安装了 PCRE
3. 确保 linux 上已经安装了 gcc
4. 确保 linux 上没有安装 rpm 包的 httpd
1 [root@web ~]# rpm -qa | grep httpd

我安装的是 httpd-2.4.7,它所依赖的 apr 的版本是 1.4.0,而用 yum 安装的最高是 1.3.9。所以索性将 apr、apr-util 和 pcre 都使用源码。
apr:http://apache.fayea.com/apache-mirror/apr/apr-1.5.0.tar.bz2
apr-util:http://apache.fayea.com/apache-mirror/apr/apr-util-1.5.3.tar.bz2
pcre:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.32.tar.bz2

二、安装
1. 解压各个软件包
[root@web ~]# tar xf httpd-2.4.7.tar.bz2
[root@web ~]# tar xf apr-1.5.0.tar.bz2
[root@web ~]# tar xf apr-util-1.5.3.tar.bz2
[root@web ~]# tar xf pcre-8.32.tar.bz2

2. 解决 apr 和 apr-util 的依赖关系
[root@web ~]# mv apr-1.5.0 ~/httpd-2.4.7/srclib/apr
[root@web ~]# mv apr-util-1.5.3 ~/httpd-2.4.7/srclib/apr-util
# 移动到 httpd 解压后的文件 srclib 目录中,注意不要写版本号

3. 解决 pcre 的依赖关系
[root@web ~]# cd pcre-8.32
[root@web pcre-8.32]# ./configure –prefix=/usr/local/pcre
[root@web pcre-8.32]# make && make install

4. 安装 apache 软件
[root@web httpd-2.4.7]# ./configure  –prefix=/usr/local/apache \
 –sysconfdir=/etc/httpd  \
 –enable-so \
 –enable-ssl \
 –enable-track-vars \
 –enable-rewrite \
 –with-zlib \
 –enable-mods-shared=most \
 –with-included-apr \
 –with-pcre=/usr/local/pcre
[root@web httpd-2.4.7]# make
[root@web httpd-2.4.7]# make install
#–enable-ssl 需要安装 openssl-devel

–prefix=/usr/local/apache #指定 httpd 的安装路径
–sysconfdir=/etc/httpd  #指定安装后配置文件的路径
–enable-so #这项是关键:支持动态模块装卸载,如果不写的话,php 没办法以模块的方式编译成 apache 的模块了
–enable-ssl #支持 https
–enable-rewrite #支持 url 重写
–with-zlib #支持使用 zlib 库将数据发送到客户端之前进行压缩
–enable-mpms-shared=most #构建 MPM 为动态模块,将所有的模块都设为动态共享,可以在系统运行时加载
–with-included-apr  #和依赖的 apr 和 apr-util 软件相关
–with-pcre=/usr/local/pcre  #依赖于 pcre 告知 pcre 的安装路径

5. 完善安装
[root@web apache]# vim /etc/profile
export PATH=$PATH:/usr/local/apache/bin
[root@web apache]# . !$
# 在 PATH 变量中添加 apache 的可执行文件
[root@web apache]# vim /etc/ld.so.conf.d/apache-x86_64.conf
/usr/local/apache/lib
[root@web lib]# ldconfig -v
# 让系统可以找到 apache 的库文件
[root@web lib]# vim /etc/man.config
MANPATH /usr/local/apache/man
# 让系统可以找到 apache 的帮助文档
[root@web apache]# ln -sv /usr/local/apache/include /usr/include/apache
`/usr/include/apache’ -> `/usr/local/apache/include’
# 让系统可以找到 apache 的头文件

6. 启动添加启动脚本
这个脚本不需要手动写,只需要把 rpm 安装的那个 /etc/init.d/httpd 文件稍做修改就可以了。
[root@web logs]# vim /etc/httpd/httpd.conf
PidFile “/var/run/httpd.pid”
# 在配置文件中增加这一行

[root@web ~]# vim /etc/init.d/httpd
apachectl=/usr/local/apache/bin/apachectl
httpd=${HTTPD-/usr/local/apache/bin/httpd}
pidfile=${PIDFILE-/var/run/httpd.pid}
# 只需修改这 3 行即可

脚本已上传到附件里,将.txt 后缀去掉即可

7. 设置开机自启动
[root@web logs]# chkconfig –add httpd
[root@web logs]# chkconfig httpd on

安装 MySQL
http://www.linuxidc.com/Linux/2014-03/97657.htm 我的这篇博客写了

安装 php
1. 安装 php 主程序
[root@web ~]# tar xf php-5.5.9.tar.bz2
[root@web ~]# cd php-5.5.9
[root@web php-5.5.9]# ./configure –prefix=/usr/local/php \
–with-apxs2=/usr/local/apache/bin/apxs \
–with-mysql=/usr/local/mysql \
–with-mysqli=/usr/local/mysql/bin/mysql_config \
–with-libxml-dir  \
–with-zlib-dir  \
–enable-mbstring
[root@web php-5.5.9]# make && make install
[root@web php-5.5.9]# cp php.ini-production /usr/local/php/lib/php.ini

2. 配置 apache 使其可以调用 php
注意:apache 调用 php 有 3 种方式,CGI、FastCGI 和模块,这里选择的调用方式就是将 php 作为 apache 的一个模块。
[root@web php-5.5.9]# vim /etc/httpd/httpd.conf
LoadModule php5_module        modules/libphp5.so    #确保这一行没有被注释
AddType application/x-httpd-php  .php
AddType application/x-httpd-php-source  .phps  #增加这 2 行
DirectoryIndex index.php index.html  #修改主页文件

[root@web php-5.5.9]# service httpd restart
Stopping httpd:                                            [OK]
Starting httpd:                                            [OK]

[root@web ~]# vim /etc/profile
export PATH=$PATH:/usr/local/php/bin

3. 测试
[root@web ~]# cd /usr/local/apache/htdocs/
# 源码安装的 apache 的网站根目录就在这里,可以通过配置文件修改为熟悉的 /var/www/html/ 下
[root@web htdocs]# vim index.php
<?php
phpinfo();
?>

源码搭建 LAMP+FastCGI+Xcache 加速器

看到这个页面就说明的 apache 可以成功调用 php 了,继续测试 php 到 mysql 的连接
[root@web htdocs]# vim index.php
<?php
$link=mysql_connect(localhost,’root’,’12345′);
if ($link)
 echo “success”;
else
 echo “failure”;
?>

[root@web htdocs]# service mysqld start
Starting MySQL.                                            [OK]

源码搭建 LAMP+FastCGI+Xcache 加速器

[root@web htdocs]# service mysqld stop
Shutting down MySQL..                                      [OK]

源码搭建 LAMP+FastCGI+Xcache 加速器

这样就说明测试成功了。

 

httpd 下载

免费下载地址在 http://linux.linuxidc.com/

用户名与密码都是www.linuxidc.com

具体下载目录在 /2014 年资料 / 3 月 / 4 日 / 源码搭建 LAMP+FastCGI+Xcache 加速器

下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm

 

推荐阅读

Ubuntu 13.04 安装 LAMP\Vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm

CentOS 5.9 下编译安装 LAMP(Apache 2.2.44+MySQL 5.6.10+PHP 5.4.12) http://www.linuxidc.com/Linux/2013-03/80333p3.htm

RedHat 5.4 下 Web 服务器架构之源码构建 LAMP 环境及应用 PHPWind http://www.linuxidc.com/Linux/2012-10/72484p2.htm

LAMP 源码环境搭建 WEB 服务器 Linux+Apache+MySQL+PHP http://www.linuxidc.com/Linux/2013-05/84882.htm

安装 php 加速器 xcache
下载地址:xcache.lighttpd.net/pub/Releases/3.0.4/xcache-3.0.4.tar.bz2
1. 解压并安装
[root@web ~]# tar xf xcache-3.1.0.tar.bz2
[root@web ~]# mv xcache-3.1.0 /usr/local/xcache
[root@web ~]# cd !$
[root@web xcache]# phpize
# 如果没有在 PATH 中声明需使用 /usr/local/php/bin/phpize 这个路径
[root@web xcache]# ./configure –enable-xcache –enable-xcache-coverager
[root@web xcache]# make && make install
Installing shared extensions:    /usr/local/php/lib/php/extensions/no-debug-zts-20121212/
# 把安装结束的这个信息复制下来

注意:如果使用 /usr/local/php/bin/phpize 的路径, 并且他不是 $PATH 内第一个可以找到 phpize 的, 那么记得 使用./configure –with-php-config=/usr/local/php/bin/phpize

2. 配置 xcache
[root@web xcache]# cat xcache.ini >> /usr/local/php/lib/php.ini
[root@web xcache]# echo -n “123456” | md5sum
[root@web xcache]# vim /usr/local/php/lib/php.ini
[xcache-common]
extension_dir = “/usr/local/php/lib/php/extensions/no-debug-zts-20121212/”  #添加这一行,指定共享库路径
[xcache.admin]
xcache.admin.user = “xcache”
xcache.admin.pass = “e10adc3949ba59abbe56e057f20f883e”
#web 方式访问 xcache 的用户名和密码,可以随便自己怎么设置
[xcache]
xcache.shm_scheme = “mmap”
xcache.mmap_path = “/tmp/xcache”
# 其它参数暂不修改

查看一下信息

源码搭建 LAMP+FastCGI+Xcache 加速器

3. 拷贝 web 管理的文件到网站根目录
[root@web xcache]# mkdir /usr/local/apache/htdocs/xcache-admin
[root@web xcache]# cp -a htdocs/* /usr/local/apache/htdocs/xcache-admin

4. 测试

源码搭建 LAMP+FastCGI+Xcache 加速器源码搭建 LAMP+FastCGI+Xcache 加速器

[root@Oracle ~]# ab -c 500 -n 1000 http://192.168.2.91/index.php

源码搭建 LAMP+FastCGI+Xcache 加速器

Apache HTTP Server(简称 Apache)是 Apache 软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的 Web 服务器端软件之一。它快速、可靠并且可通过简单的 API 扩展,将 Perl/Python 等解释器编译到服务器中。

方式一:模块化的方式

安装 apache

一、安装条件
1. 确保 linux 上已经安装 apr 和 apr-util
2. 确保 linux 上已经安装了 PCRE
3. 确保 linux 上已经安装了 gcc
4. 确保 linux 上没有安装 rpm 包的 httpd
1 [root@web ~]# rpm -qa | grep httpd

我安装的是 httpd-2.4.7,它所依赖的 apr 的版本是 1.4.0,而用 yum 安装的最高是 1.3.9。所以索性将 apr、apr-util 和 pcre 都使用源码。
apr:http://apache.fayea.com/apache-mirror/apr/apr-1.5.0.tar.bz2
apr-util:http://apache.fayea.com/apache-mirror/apr/apr-util-1.5.3.tar.bz2
pcre:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.32.tar.bz2

二、安装
1. 解压各个软件包
[root@web ~]# tar xf httpd-2.4.7.tar.bz2
[root@web ~]# tar xf apr-1.5.0.tar.bz2
[root@web ~]# tar xf apr-util-1.5.3.tar.bz2
[root@web ~]# tar xf pcre-8.32.tar.bz2

2. 解决 apr 和 apr-util 的依赖关系
[root@web ~]# mv apr-1.5.0 ~/httpd-2.4.7/srclib/apr
[root@web ~]# mv apr-util-1.5.3 ~/httpd-2.4.7/srclib/apr-util
# 移动到 httpd 解压后的文件 srclib 目录中,注意不要写版本号

3. 解决 pcre 的依赖关系
[root@web ~]# cd pcre-8.32
[root@web pcre-8.32]# ./configure –prefix=/usr/local/pcre
[root@web pcre-8.32]# make && make install

4. 安装 apache 软件
[root@web httpd-2.4.7]# ./configure  –prefix=/usr/local/apache \
 –sysconfdir=/etc/httpd  \
 –enable-so \
 –enable-ssl \
 –enable-track-vars \
 –enable-rewrite \
 –with-zlib \
 –enable-mods-shared=most \
 –with-included-apr \
 –with-pcre=/usr/local/pcre
[root@web httpd-2.4.7]# make
[root@web httpd-2.4.7]# make install
#–enable-ssl 需要安装 openssl-devel

–prefix=/usr/local/apache #指定 httpd 的安装路径
–sysconfdir=/etc/httpd  #指定安装后配置文件的路径
–enable-so #这项是关键:支持动态模块装卸载,如果不写的话,php 没办法以模块的方式编译成 apache 的模块了
–enable-ssl #支持 https
–enable-rewrite #支持 url 重写
–with-zlib #支持使用 zlib 库将数据发送到客户端之前进行压缩
–enable-mpms-shared=most #构建 MPM 为动态模块,将所有的模块都设为动态共享,可以在系统运行时加载
–with-included-apr  #和依赖的 apr 和 apr-util 软件相关
–with-pcre=/usr/local/pcre  #依赖于 pcre 告知 pcre 的安装路径

5. 完善安装
[root@web apache]# vim /etc/profile
export PATH=$PATH:/usr/local/apache/bin
[root@web apache]# . !$
# 在 PATH 变量中添加 apache 的可执行文件
[root@web apache]# vim /etc/ld.so.conf.d/apache-x86_64.conf
/usr/local/apache/lib
[root@web lib]# ldconfig -v
# 让系统可以找到 apache 的库文件
[root@web lib]# vim /etc/man.config
MANPATH /usr/local/apache/man
# 让系统可以找到 apache 的帮助文档
[root@web apache]# ln -sv /usr/local/apache/include /usr/include/apache
`/usr/include/apache’ -> `/usr/local/apache/include’
# 让系统可以找到 apache 的头文件

6. 启动添加启动脚本
这个脚本不需要手动写,只需要把 rpm 安装的那个 /etc/init.d/httpd 文件稍做修改就可以了。
[root@web logs]# vim /etc/httpd/httpd.conf
PidFile “/var/run/httpd.pid”
# 在配置文件中增加这一行

[root@web ~]# vim /etc/init.d/httpd
apachectl=/usr/local/apache/bin/apachectl
httpd=${HTTPD-/usr/local/apache/bin/httpd}
pidfile=${PIDFILE-/var/run/httpd.pid}
# 只需修改这 3 行即可

脚本已上传到附件里,将.txt 后缀去掉即可

7. 设置开机自启动
[root@web logs]# chkconfig –add httpd
[root@web logs]# chkconfig httpd on

安装 MySQL
http://www.linuxidc.com/Linux/2014-03/97657.htm 我的这篇博客写了

安装 php
1. 安装 php 主程序
[root@web ~]# tar xf php-5.5.9.tar.bz2
[root@web ~]# cd php-5.5.9
[root@web php-5.5.9]# ./configure –prefix=/usr/local/php \
–with-apxs2=/usr/local/apache/bin/apxs \
–with-mysql=/usr/local/mysql \
–with-mysqli=/usr/local/mysql/bin/mysql_config \
–with-libxml-dir  \
–with-zlib-dir  \
–enable-mbstring
[root@web php-5.5.9]# make && make install
[root@web php-5.5.9]# cp php.ini-production /usr/local/php/lib/php.ini

2. 配置 apache 使其可以调用 php
注意:apache 调用 php 有 3 种方式,CGI、FastCGI 和模块,这里选择的调用方式就是将 php 作为 apache 的一个模块。
[root@web php-5.5.9]# vim /etc/httpd/httpd.conf
LoadModule php5_module        modules/libphp5.so    #确保这一行没有被注释
AddType application/x-httpd-php  .php
AddType application/x-httpd-php-source  .phps  #增加这 2 行
DirectoryIndex index.php index.html  #修改主页文件

[root@web php-5.5.9]# service httpd restart
Stopping httpd:                                            [OK]
Starting httpd:                                            [OK]

[root@web ~]# vim /etc/profile
export PATH=$PATH:/usr/local/php/bin

3. 测试
[root@web ~]# cd /usr/local/apache/htdocs/
# 源码安装的 apache 的网站根目录就在这里,可以通过配置文件修改为熟悉的 /var/www/html/ 下
[root@web htdocs]# vim index.php
<?php
phpinfo();
?>

源码搭建 LAMP+FastCGI+Xcache 加速器

看到这个页面就说明的 apache 可以成功调用 php 了,继续测试 php 到 mysql 的连接
[root@web htdocs]# vim index.php
<?php
$link=mysql_connect(localhost,’root’,’12345′);
if ($link)
 echo “success”;
else
 echo “failure”;
?>

[root@web htdocs]# service mysqld start
Starting MySQL.                                            [OK]

源码搭建 LAMP+FastCGI+Xcache 加速器

[root@web htdocs]# service mysqld stop
Shutting down MySQL..                                      [OK]

源码搭建 LAMP+FastCGI+Xcache 加速器

这样就说明测试成功了。

 

httpd 下载

免费下载地址在 http://linux.linuxidc.com/

用户名与密码都是www.linuxidc.com

具体下载目录在 /2014 年资料 / 3 月 / 4 日 / 源码搭建 LAMP+FastCGI+Xcache 加速器

下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm

 

推荐阅读

Ubuntu 13.04 安装 LAMP\Vsftpd\Webmin\phpMyAdmin 服务及设置 http://www.linuxidc.com/Linux/2013-06/86250.htm

CentOS 5.9 下编译安装 LAMP(Apache 2.2.44+MySQL 5.6.10+PHP 5.4.12) http://www.linuxidc.com/Linux/2013-03/80333p3.htm

RedHat 5.4 下 Web 服务器架构之源码构建 LAMP 环境及应用 PHPWind http://www.linuxidc.com/Linux/2012-10/72484p2.htm

LAMP 源码环境搭建 WEB 服务器 Linux+Apache+MySQL+PHP http://www.linuxidc.com/Linux/2013-05/84882.htm

方式二: FastCGI 方式
标准的 CGI 对每个请求都会执行 ”PHP 解析器会解析 php.ini 文件,初始化执行环境 ”,所以处理每个时间的时间会比较长。而 Fastcgi 会先启一个 master,解析配置文件,初始化执行环境,然后再启动多个 worker。当请求过来时,master 会传递给一个 worker,然后立即可以接受下一个请求。这样就避免了重复的劳动,效率自然是高。而且当 worker 不够用时,master 可以根据配置预先启动几个 worker 等着;当然空闲 worker 太多时,也会停掉一些,这样就提高了性能,也节约了资源。这就是 fastcgi 的对进程的管理。
我们在进程看到的 php-fpm 是用来管理 php-cgi,php-cgi 只是解释 PHP 脚本的程序。fastcgi 是一个协议,php-fpm 实现了这个协议,这就是他们之间的关系。

1. 安装 apache
[root@web httpd-2.4.7]# ./configure –prefix=/usr/local/apache \
–sysconfdir=/etc/httpd\
–enable-so \
–enable-ssl \
–enable-rewrite \
–with-zlib \
–with-pcre=/usr/local/pcre\
–with-included-apr \
–enable-track-vars  \
–enable-mods-shared=most \
–with-mpm=event

2. 配置 httpd 参数
[root@web logs]#vim /etc/httpd/httpd.conf
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so  #去掉注释符
PidFile “/var/run/httpd.pid”# 增加这一行
#DocumentRoot “/usr/local/apache/htdocs”  #关闭中心主机
DirectoryIndex index.php index.html        #增加 index.php
AddType application/x-httpd-php.php
AddType application/x-httpd-php-source.phps  #增加 php 文件类型
Include /etc/httpd/extra/httpd-vhosts.conf  #开启虚拟主机

3. 安装 php
[root@web ~]# yum install libmcrypt-devel mhash-devel libjpeg-devel libpng-devel libxml2-devel
[root@web php-5.5.9]# ./configure –prefix=/usr/local/php \
–with-MySQL=/usr/local/mysql\
–with-mysqli=/usr/local/mysql/bin/mysql_config\
–with-libxml-dir\
–with-png-dir\
–with-jpeg-dir\
–with-zlib-dir\
–with-gd \
–with-pear \
–enable-mbstring \
–enable-fpm        #最后一个参数让 php 支持 fastcig

4. 为 php 提供配置文件:
[root@web php-5.5.9]# cp php.ini-production /usr/local/php/lib/php.ini

5. 配置 php-fpm:
[root@web php-5.5.9]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm      #为 php-fpm 提供启动脚本
[root@web php-5.5.9]# chmod +x !$
chmod+x /etc/init.d/php-fpm
[root@web php-5.5.9]# chkconfig –add php-fpm
[root@web php-5.5.9]# chkconfig php-fpm on
[root@web php-5.5.9]# mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
# 为 php-fpm 提供配置文件

6. 修改 php-fpm 的配置文件
[root@web php-5.5.9]#vim /usr/local/php/etc/php-fpm.conf
pid = run/php-fpm.pid    #取消这一行的注释,因为脚本需要根据 pid 文件确定服务是否正在运行
listen = 127.0.0.1:9000
pm.max_children = 20
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8    #根据需要修改

7. 配置 httpd-vhosts.conf
[root@web ~]# vim /etc/httpd/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot “/usr/local/apache/htdocs/dong”
ServerName www.linuxidc.com
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/usr/local/apache/htdocs/dong/$1
ErrorLog “logs/mylog.err”
CustomLog “logs/mylog.acc”combinedio
</VirtualHost>

在相应的虚拟主机中添加类似如下两行:
ProxyRequests Off  关闭正向代理功能 
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/PATH/TO/DOCUMENT_ROOT/$1 把以.php 结尾的文件请求发送到 php-fpm 进程,php-fpm 至少需要知道运行的目录和 URI,所以这里直接在 fcgi://127.0.0.1:9000 后指明了路径,其它的参数的传递已经被 mod_proxy_fcgi.so 进行了封装,不需要手动指定。

8. 测试

源码搭建 LAMP+FastCGI+Xcache 加速器

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-20发表,共计12955字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中