Apache、Nginx 与php缓冲加速模块

环境:

Linux moban 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64     x86_64 GNU/Linux

mysql-5.5.32-linux2.6-x86_64、apache2.2.27、php5.3.27、nginx-1.6.2 、                   eaccelerator0.9.6、xcache-1.3.2、PDO_MYSQL-1.0.2、ImageMagick-6.5.1-2、

一、php加速之前先了解一下Apache、nginx相关的知识,有这么几点:

1、 纯php的并发一般在几百个左右,优化后500-1000已经很不错了。

2、Apache和php的原理:用户通过浏览器访问apache服务器,如果是静态请求apache服务器就自

行就处理了,如果是动态请求(php)apahe会交给libphp5.so这个模块来连接php处理(编译

解析)动态请求,解析后把结构返回给apache,apache在提交给用户,如果涉及到数据库他

会 调用数据库来返回请求。如何提高php的解析呢?缓存,把php解析的结果缓存,称之为

操作码缓存,是一个二进制的表现形式,当下一次请求调用同一个页面的时候会重复调用,节          节省php重复编译的时间,提高php执行效率;当然也可以在数据库、存储一边优化来提高

效率。

3、nginx和apache 与php大体相同,只不过nginx是通过fastcgi来调用php来处理动态请求,加速

也是利用缓存的形式来提高php的解析效率。

二、调整字符集:

echo ‘export LC_ALL=C‘>>/etc/profile

source /etc/profile

#字符集会影响正则表达式的匹配;

echo $LC_ALL

#返回为C 就可以确认无误;

yum install perl-devel -y

#由于php的加速器好多是perl语言写的,所以最好提前安装,否则出现问题。

三、其次要注意几点,

1、准好环境,lamp、lnmp,需要关注的是它的编译参数(如何查看编译参数后续慢慢补充);

2、备份,相当重要;

3、记录自己的每一步操作步骤,注意查看每一步执行的结果;磨刀霍霍不误砍柴!

4、创建一个自己的存放、安装软件目录,方便寻找,这是养成好习惯的开始,

暂时先想到这么多吧。

四、介绍几个加速器:eaccelerator、xcache、Zend、apc,建议选择前两个,生产环境最好使用一个

加速软件,如果是测试环境随便搞。

1、eaccelerator 缓存加速模块是一个自由开放的缓存加速、优化和动态内容缓存的扩展模块,

可以提升php程序的缓存性能,降低php程序在解析时对服务器性能的开销。缺点就是开发不活跃

安装:

tar jxf eaccelerator-0.9.6.tar.bz2

cd eaccelerator-0.9.6

/application/php/bin/phpize

#根据自己phpize的路径,执行外挂模块,这是php安装第三方插件的时候几乎都要执行;

Configuring for:

PHP Api Version:         20090626

Zend Module Api No:      20090626

Zend Extension Api No:   220090626

#这是执行phpize返回的结果。

./configure  --enable-eaccelerator=shared --with-php-config=/application/php/bin/php-config

make && make install

ls  ../php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/

eaccelerator.so

#完成后会生成一个eaccelerator.so的模块,如果有表示成功;

这里要注意lamp和lnmp环境的生成eaccelerator.so文件路径的区别

lamp路径:../php5.3.27/lib/php/extensions/no-debug-zts-20090626/

lnmp路径:../php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/

完毕。

注意:php5.3.. 可以用eaccelerator-0.9.6版本,如果使用0.9.5.2版本会报错啊,解

决不了,自己看官方文档吧。

2、XCache也是一个又快又稳的php缓存加速器,和eaccelerator差不多吧,开发比较活跃。

安装:

tar jxf xcache-1.3.2.tar.bz2 

cd xcache-1.3.2

/application/php/bin/phpize

./configure  --enable-xcache --with-php-config=/application/php/bin/php-config

echo $?

make &&make install

ls /application/php5.3.27/lib/php/extensions/no-debug-non-zts-20090626/

ls /application/php5.3.27/lib/php/extensions/no-debug-zts-20090626/

#如果生成xcache.so模块表示成功。

3、Zend插件 官网:http://www.zend.com/

目前Zend只支持php5.2的版本,意味着5.3的不支持,所以这里搞不了。

4、memcache数据库缓存扩展模块,它是C/S模式的,分为服务端和客户端,是用来存内存的。

(服务端memcached), 此处安装的是客户端。

安装:

tar xf memcache-2.2.5.tgz

cd memcache-2.2.5

/application/php/bin/phpize

./configure  --with-php-config=/application/php/bin/php-config

echo $?

make &&make install

#在上述同样的路径下查看是否生成memcache.so  这个模块,如果有表示成功。

5、安装PDO——MYSQL扩展模块,这是为了扩展php访问数据库定义一个轻量级、一致性的接口。

下载地址:wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.TGZ

安装:

tar xf PDO_MYSQL-1.0.2.tgz

cd PDO_MYSQL-1.0.2

/application/php/bin/phpize

./configure  --with-php-config=/application/php/bin/php-config                          --with-pdo-      mysql=/application/mysql

echo $?

make

echo $?

make install

#在上述同样的路径下查看是否生成pdo_mysql.so 这个模块,如果有表示成功。

忘记说了,有些程序可能需要PDO,不是必须安装。所以可选。

6、图像处理程序ImageMagick,免费滴,且稳定的工具集和开发包,用来读、写、处理各种格式

的图片。

安装:

cd ImageMagick-6.5.1-2/

./configure

echo $?

make

echo $?

make install

echo $?

7、imagick 插件工作需要ImageMagick软件的支持,所以必须先安装ImageMagick ,否则会报错;

装了ImageMagick图像程序后,在装php的扩展imaick插件,才能使用ImageMagick提供的api来

进行图片的创建与修改、压缩等操作,都集成在imaick 这个扩展中。

安装:

tar  zxf imagick-2.3.0.tgz

cd imagick-2.3.0

/application/php/bin/phpize

./configure --with-php-config=/application/php/bin/php-config

echo $?

make

echo $?

make install

#在上述同样的路径下查看是否生成imagick.so 这个模块,如果有表示成功。

五、整合php的加速缓存扩展模块。

注意:php 的默认配置文件在/php/lib下,如果你是/etc下这是你在编译的时候指定的。

vi ../php/lib/php.ini

#注意在php.ini的注释不是#是;

819 ;extension_dir = "./"

819 extension_dir = "/application/php/lib/php/extensions/no-debug-zts-200906        26/"

#去掉;注释,添加插件的路径,不要忘记lamp和lnmp的路径是不一样的。

1920 ;--cache----------------

1921 extension = memcache.so

1922 extension = pdo_mysql.so

1923 extension = imagick.so

1924 ;---cache--------------

#末尾添加,上述三行,这是为了刚才安装的插件生效,它们不需要配置文件,直接放里边就好了。

接着lamp重启apache即可,lnmp要重启php、nginx。

六、配置eaccelerator插件生效;

1、创建eacclerator缓存目录:mkdir -p /tmp/eaccelerator

#这是为了可以用tmpfs内存文件系统来存储(可以放在固态硬盘,或内存)

#注意要根据自己的用户来lamp、lnmp环境运行的用户来授权。

#tmp目录的权限不要随意修改,出问题有时候不好排除。

2、cat >> /application/php/lib/php.ini<<EOF

[eaccelerator]

extension=eaccelerator.so

#查找.so目录,配置文件里添加过

eaccelerator.shm_size="64"

eaccelerator.cache_dir="/tmp/eaccelerator"

eaccelerator.enable="1"

eaccelerator.optimizer="1"

eaccelerator.check_mtime="1"

eaccelerator.debug="0"

eaccelerator.filter=""

eaccelerator.shm_max="0"

eaccelerator.shm_ttl="3600"

eaccelerator.shm_prune_period="3600"

eaccelerator.shm_only="0"

eaccelerator.compress="1"

eaccelerator.compress_level="9"

EOF

#注意添加完成后,要查看检查一遍,基本上是缓存的设置,不是很需要关注。

3、查看是否生效:

/application/php/bin/php -v

PHP 5.3.27 (cli) (built: Nov  3 2014 13:16:34)

Copyright (c) 1997-2013 The PHP Group

Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies

with eAccelerator v0.9.6, Copyright (c) 2004-2010 eAccelerator, by eAccelerator

#需要关注eAccelerator。

#查看缓存目录是否生成内容:ll /tmp/eaccelerator/  ;tree查看;

#用搭建好的网站访问一下,看看里边是否生成文件。

七、xcache 配置:

1、xcache的配置文件: ls  /home/oldboy/tools/xcache-1.3.2/xcache.ini

调整: 3 zend_extension = /usr/local/lib/php/extensions/non-debug-non-zts-xxx/xca        che.so

6 ;zend_extension_ts = c:/php/extensions/php_xcache.dll

8 extension = xcache.so

25 xcache.size  =                128M

27 xcache.count =                 2

31 xcache.ttl   =                 86400

33 xcache.gc_interval =           3600

2、追加到php.ini 文件中:

echo ‘;xcache config---------------------‘ >>php.ini

cat    /home/oldboy/tools/xcache-1.3.2/xcache.ini>>php.ini

3、        /application/php/bin/php -v

报错:

PHP Warning:  Cannot load module ‘XCache‘ because conflicting module ‘eAccelerator‘ is already loaded in Unknown on line 0 (警告和eacc冲突)

解决:eacc和xcache选择一个使用。

4、  /application/php/bin/php -v

完毕!!!

时间: 2024-10-13 15:58:07

Apache、Nginx 与php缓冲加速模块的相关文章

nginx加速模块ngx_pagespeed

nginx的ngx_pagespeed是一个前段加速模块 安装需要的nginx依赖环境 yum install gcc gcc-c++ pcre* zlib-devel openssl-devel gd-devel php php-mysql php-fpm geoip-devel -y 下载nginx的12版本  不建议用高版本的会有bug wget http://nginx.org/download/nginx-1.12.2.tar.gz 下载加速的模块 pagespeed wget htt

Google发布Apache加速模块

作为互联网伟人,Google一直致力于为页面拜访加速.此前,不只推出了Page Speed东西对网站的各方面提出建议,还设计了一个新的协议SPDY对HTTP作出改善.今日,Google又发布了一个Apache模块,名为mod_pagespeed,依据一些最好实习,对Web性能多个方面包含缓存.客户端与服务器之间的往复.载荷巨细等进行了优化,能够将页面加载时刻缩短50%. Google的文章中还说到,该模块是Google与知名主机托管公司GoDaddy.CDN提供商Cotendo的合作下开发的.

安装部署LNMP/大并发nginx优化/php性能加速 实战

安装部署LNMP及Nginx优化.PHP加速进行压力测试 部署LNMP环境: 主机 IP 主机名 Centos7.2 192.168.5.128 www.benet.com 部署步骤如下: 使用yum仓库安装Nginx依赖包 yum -y install  gcc gcc-c++ make libtool zlib zlib-devel pcre pcre-devel openssl openssl-devel 创建Nginx用户 组解压Nginx软件包 编译安装Nginx ./configur

Apache/Nginx+Tomcat+Memcahced实现session管理

一.memcached简介 Memcached是一个免费开源.高性能.分布式的内存对象缓存系统.Memcached是在内存中,为特定数据(字符串或对象)构建key-value的小块数据存储. Memcached项目地址: http://www.memcached.org/ 现在最新版本为1.4.22,时间点:2015.01.26 二.实验环境介绍 第一个实验:我们在node3节点实现一个LNMP架构,测试memcached的基本的使用和web gui界面管理: 第二个实验:我们将node3节点当

ubuntu apache nginx 启动 关闭

转载自:http://www.comflag.com/2011/05/01/apache-web.htm 电影<社交网络>中,facebook创始人马克.扎克失恋后入侵哈佛大学宿舍楼服务器,窃取数据库资料,并在两个小时内完成了一个给校内女生评分的交互网站,该网站一天内点击数过10W,直接导致学校服务器崩溃...... 其 实,构建那样一个网站并不需要很多高深的技术,任何一个有一定网络编程基础的人都可以做到.马克构建网站所用的是Apache服务器和PHP服务器脚本语 言,我曾经用三天时间学习PH

CentOS7.4—构建Apache+Nginx动静分离

构建Apache+Nginx动静分离实验目的:html静态页面由nginx处理,php动态页面交给apache处理 目录第一部分 准备工作第二部分 配置apache+nginx动静分离第三部分 测试验证 第一部分 环境准备一:服务器两台:Linux系统-CentOS 7.4IP地址:192.168.80.10(搭建LAMP)192.168.80.40(搭建LNMP) 客户端一台:以WIN7为例,用来测试验证,与服务器同一网段IP地址:192.168.80.2二:将防火墙与selinux关闭 注意

web服务器 - apache &amp; nginx &amp; tomact

web服务器 - apache & nginx & tomact HTTP Server本质上来说都是这样几件事: 监听端口 接收(accept)socket连接 解析HTTP请求 使用通用或专用协议对请求进行分发 接收分发的请求产生的运行结果 将结果格式化成HTTP Response并写到socket里面 关闭连接或者Keep-Alive 区别一方面在于用了什么语言来实现(Tomcat用Java),一方面是分发时支持的具体协议,Tomcat只支持Servlet接口,Apache和ngin

apache nginx 区别

Apache和Nginx的区别 Nginx 轻量级,采用 C 进行编写,同样的 web 服务,会占用更少的内存及资源 抗并发,nginx 以 epoll and kqueue 作为开发模型,处理请求是异步非阻塞的,负载能力比 apache 高很多,而 apache 则是阻塞型的.在高并发下 nginx 能保持低资源低消耗高性能 ,而 apache 在 PHP 处理慢或者前端压力很大的情况下,很容易出现进程数飙升,从而拒绝服务的现象. nginx 处理静态文件好,静态处理性能比 apache 高三

为PHP设置服务器(Apache/Nginx)环境变量

为PHP设置服务器(Apache/Nginx)环境变量 设置环境变量常见的地方为区分开发环境/生产环境,或者定义一些数据库的帐号密码 设置Apache环境变量 指令 设置当前环境变量为DEV SetEnv RUNTIME_ENVIROMENT DEV 数据库帐号密码 SetEnv MYSQL_USERNAME root SetEnv MYSQL_PASSWORD root 配置文件格式 <VirtualHost *:80> ServerAdmin [email protected] Docum