agangliu0400 发表于 2018-12-16 10:44:29

php引擎优化

  php引擎优化
  6.1.php引擎缓存优化
  首先,影响php效率的主要有2个因素。其一:libphp5.so需要编译php源代码成为opcode树(操作码);其二:php需要与数据库进行读写,数据库的并发能力很低。
  

  于是php缓存加速器为的就是解决上述第一个原因,将opcode内容进行缓存,目的是防止php每次请求都重复编译php程序代码,因为在高访问量的网站上,大量的重复编译会小号很多资源和时事件,所以这里的瓶颈就是php的重复编译既影响了相应速度,又加重了服务器的负载,为了解决此问题,php加速器就这样诞生了
  

  解决php与mysql之间的问题,用到了memcache,在php与mysql之间架设缓存,有效提高了数据库的并发数。
  

  

  查看nginx编译参数
  /application/nginx/sbin/nginx -V
  查看nginx版本
  /application/nginx/sbin/nginx -v
  

  查看apache版本
  /application/apache/bin/apachectl -v
  查看apache编译参数
  cat /application/apache/build/config.nice
  

  查看Mysql编译参数
  grep CONFIGURE_LINE /application/mysql/bin/mysqlbug
  

  查看php编译参数
  /application/php/bin/php -i | grep configure
  

  

  6.1.1安装php引擎缓存加速器
  echo 'export LC_ALL=C' >> /etc/profile
  source /etc/profile
  echo $LC_ALL
  yum install perl-CPAN
  

  (1) eaccelerator
  tar xf eaccelerator-0.9.6.tar.bz2
  cd eaccelerator-0.9.6
  /application/php/bin/phpize
  ./configure \
  --enable-eaccelerator=shared \
  --with-php-config=/application/php/bin/php-config
  make
  make install
  

  make install完成会显示这样一个目录,记录下来
  ls /application/php5.3.27/lib/php/extensions/no-debug-zts-20090626/
  

  (2)xcache
  http://xcache.lighttpd.net
  

  /application/php/bin/phpize
  ./configure \
  --enable-xcache \
  --with-php-config=/application/php/bin/php-config
  make
  make install
  注意:xcache与eaccelerator只要装一个就好了
  

  php缓存加速软件种类
  xcache,eaccelerator,Zend,apc
  如何选择
  建议xcache,eaccelerator 二选一
  xcache>eaccelerator
  原因:
  a.xcache更快,效率更高
  b.xcache开发更活跃
  

  操作码缓存加速软件↑
  

  

  6.1.2数据库缓存memcache
  php瓶颈:
  1.本身需要解析php代码
  2.需要请求数据库,数据库并发比较低
  解决方案:在php与数据库之间架设缓存,memcached(客户端软件)
  

  服务端memcached-1.4.3.tar.gz
  客户端memcache-2.2.5.tgz
  

  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
  

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

  

  6.1.3PDO_MYSQL扩展模块
  PDO扩展为PHP访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层,这样,无论使用什么数据库,都可以通过一致的函数执行查询并获取数据
  

  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
  make
  make install
  

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

  

  6.1.4安装图像处理程序及imagick扩展模块
  BEGIN failed--compilation aborted at Makefile.PL line 24.
  make: *** Error 2
  make: Leaving directory `/home/xiaoyi/tools/ImageMagick-6.5.1-2'
  make: *** Error 2
  

  yum install perl-CPAN -y
  tar xf ImageMagick.tar.gz
  cd ImageMagick-6.5.1-2/
  make
  make install
  cd ..
  

  tar xf imagick-2.3.0.tgz
  cd imagick-2.3.0
  /application/php/bin/phpize
  ./configure --with-php-config=/application/php/bin/php-config
  make
  make install
  

  # ls /application/php5.3.27/lib/php/extensions/no-debug-zts-20090626/
  eaccelerator.soimagick.somemcache.sopdo_mysql.so
  

  

  6.1.5配置扩展插件
  cp /application/php/lib/php.ini /application/php/lib/php.ini.bak
  vim /application/php/lib/php.ini
  819extension_dir = "/application/php5.3.27/lib/php/extensions/no-debug-zts-20090626/"
  尾行追加
  1919 ; ----------------------
  1920 extension = memcache.so
  1921 extension = pdo_mysql.so
  1922 extension = imagick.so
  1923 ;-----------------------
  快速复制:
  extension = memcache.so
  extension = pdo_mysql.so
  extension = imagick.so
  

  (1)配置eaccelerator插件
  1.配置eaccelerator缓存目录
  mkdir -p /tmp/eaccelerator
  chown ett /tmp/eaccelerator -R
  此目录可以用tmpfs内存文件系统来存储,SSD固态硬盘
  

  cat >> /application/php/lib/php.ini/application/php/lib/php.ini
  

  最后通过phpinfo();检查都扩展都已安装
  
  

  wget http://blog.zyan.cc/soft/linux/webbench/webbench-1.5.tar.gz
  tar xf webbench-1.5.tar.gz
  cd webbench-1.5
  make
  make install
  

  565webbench -c 100 -t 10 http://bbs.etiantian.org/forum.php
  566webbench -c 200 -t 10 http://bbs.etiantian.org/forum.php
  567webbench -c 300 -t 10 http://bbs.etiantian.org/forum.php
  568webbench -c 400 -t 10 http://bbs.etiantian.org/forum.php
  569webbench -c 500 -t 10 http://bbs.etiantian.org/forum.php
  570webbench -c 500 -t 30 http://bbs.etiantian.org/forum.php
  571webbench -c 600 -t 30 http://bbs.etiantian.org/forum.php
  572webbench -c 650 -t 30 http://bbs.etiantian.org/forum.php
  573webbench -c 550 -t 30 http://bbs.etiantian.org/forum.php
  574webbench -c 520 -t 30 http://bbs.etiantian.org/forum.php
  575webbench -c 510 -t 30 http://bbs.etiantian.org/forum.php
  

  未安装eaccelerator之前忘记对网站进行压力测试了 - -
  




页: [1]
查看完整版本: php引擎优化