设为首页 收藏本站
查看: 1717|回复: 0

[经验分享] Apache、Nginx 与php缓冲加速模块

[复制链接]

尚未签到

发表于 2018-11-17 06:01:00 | 显示全部楼层 |阅读模式
  环境:
  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 DSC0000.gif
  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.iniphp.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
  完毕!!!


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-635881-1-1.html 上篇帖子: nginx 新上线、机房白名单 下篇帖子: Nginx 不记录指定文件类型的日志
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表