PHP5.6开启opcache方法

发布时间:2018-12-05 02:53:19编辑:丝画阁阅读(822)

1、打开php.ini文件(如果centos的/usr/local/lib目录下没有php.ini,那么从php解压后源文件中复制一个过去,比如:php.ini-production)

2、找到:[opcache],设置为:


[opcache]
; dll地址
zend_extension=php_opcache.dll
; 开关打开
opcache.enable=1
; 开启CLI
opcache.enable_cli=1
; 可用内存, 酌情而定, 单位为:Mb
opcache.memory_consumption=528
; Zend Optimizer + 暂存池中字符串的占内存总量.(单位:MB)
opcache.interned_strings_buffer=8
; 对多缓存文件限制, 命中率不到 100% 的话, 可以试着提高这个值
opcache.max_accelerated_files=10000
; Opcache 会在一定时间内去检查文件的修改时间, 这里设置检查的时间周期, 默认为 2, 定位为秒
opcache.revalidate_freq=1
; 打开快速关闭, 打开这个在PHP Request Shutdown的时候回收内存的速度会提高
opcache.fast_shutdown=1



安装opcache过程

PHP5.5.0以后版本自带Opcache加速器,但默认情况下木有启用。所以编译的使用我们想要启用该PHP加速器就应该添加参数 : –enable-opcache 来制定。
对于已经编译安装了PHP5.5.0以上版本但当初又没有启用该加速器的用户可以像PHP添加模块一样编译添加。添加已经编译安装好的PHP模块可参照 这里 。

下面是编译安装的过程。

查找php5.6自带包的位置,使用下面的命令。

	
  1. [root]# find / -name opcache
  2. /usr/local/php-5.6/extcode/opcache

查找phpize的位置。

	
  1. [root]# find / -name phpize
  2. /usr/local/php-5.6/bin/phpize
  3. /usr/local/php-generic-5.3/bin/phpize

切换到opcache包的目录

	
  1. [root]# cd /usr/local/php-5.6/extcode/opcache

然后在包的目录,执行phpize。

	
  1. [root opcache]# /usr/local/php-5.6/bin/phpize
  2. Configuring for:
  3. PHP Api Version: 20090626
  4. Zend Module Api No: 20090626
  5. Zend Extension Api No: 220090626

不要切换目录,继续在当前目录下执行下面的configure。

	
  1. ./configure --with-php-config=/usr/local/php-5.6/bin/php-config

还是在这个目录,继续编译文件。

	
  1. make && make install
  2.  
  3. Build complete.
  4. Don't forget to run 'make test'.
  5.  
  6. Installing shared extensions: /usr/local/php-5.6/lib/php/extensions/no-debug-non-zts-20131226/

最后它会告诉你opcache.so已经编译成功,就放在/usr/local/php-5.6/lib/php/extensions/no-debug-non-zts-20131226/这个目录里。

用vi打开php.ini,编写opcache的配置参数。如果你不知道你的php.ini在哪里,可以用phpinfo.php来查看。

	
  1. vi /home/wwwroot/etc/php.ini

将下面的代码放置在php.ini的最后面,保存后退出。

	
  1. [opcache]
  2. zend_extension = /usr/local/php-5.6/lib/php/extensions/no-debug-non-zts-20131226/opcache.so
  3. opcache.enable=1
  4. opcache.memory_consumption = 64
  5. opcache.interned_strings_buffer = 8
  6. opcache.max_accelerated_files = 4000
  7. opcache.revalidate_freq = 60
  8. opcache.fast_shutdown = 1
  9. opcache.enable_cli = 1

重启php-fpm

先用下面的命令找出php-fpm的master进程号

	
  1. ps aux|grep php-fpm
  2.  
  3. [root@iZ62b2wlpwdZ opcache]# ps aux|grep php-fpm
  4.  
  5. root 11473 0.0 0.2 274592 5168 ? Ss 14:29 0:00 php-fpm: master process (/home/wwwroot/php-fpm/php-fpm.conf)
  6. www 11474 0.0 0.2 274592 4656 ? S 14:29 0:00 php-fpm: pool www
  7. www 11475 0.0 0.2 274592 4656 ? S 14:29 0:00 php-fpm: pool www

重启php-fpm:

	
  1. kill -USR2 11473

php-fpm的master进程可以理解以下信号

INT, TERM 立刻终止
QUIT 平滑终止
USR1 重新打开日志文件
USR2 平滑重载所有worker进程并重新载入配置和二进制模块

注意,如果你没有使用php-fpm。那么就直接重启apache就可以了。

结束


关键字