PHP7添加opcache.so模块

本文详细解析了在启动PHP时遇到Opcache模块加载失败的问题,并提供了正确的配置方法,包括如何设置 zend_extension 参数,调整 opcache 的内存消耗、缓存文件数量等关键参数,确保PHP运行效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

启动php报错如下:

# /usr/local/php7/sbin/php-fpm
[09-Apr-2019 16:21:13] NOTICE: PHP message: PHP Warning:  PHP Startup: Invalid library (appears to be a Zend Extension, try loading using 
zend_extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/opcache.so from php.ini) in Unknown on line 0

书写方法:

zend_extension = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/opcache.so"

重新启动并查看模块:

# php -m
[PHP Modules]
……

[Zend Modules]
Zend OPcache 

配置参数:

zend_extension=opcache.so
[opcache]
;开启opcache
opcache.enable=1  

;CLI环境下,PHP启用OPcache
opcache.enable_cli=1

;OPcache共享内存存储大小,单位MB
opcache.memory_consumption=128  

;PHP使用了一种叫做字符串驻留(string interning)的技术来改善性能。例如,如果你在代码中使用了1000次字符串“foobar”,在PHP内部只会在第一使用这个字符串的时候分配一个不可变的内存区域来存储这个字符串,其他的999次使用都会直接指向这个内存区域。这个选项则会把这个特性提升一个层次——默认情况下这个不可变的内存区域只会存在于单个php-fpm的进程中,如果设置了这个选项,那么它将会在所有的php-fpm进程中共享。
在比较大的应用中,这可以非常有效地节约内存,提高应用的性能。这个选项的值是以兆字节(megabytes)作为单位,如果把它设置为16,则表示16MB,默认是4MB opcache.interned_strings_buffer
=8 ;这个选项用于控制内存中最多可以缓存多少个PHP文件。这个选项必须得设置得足够大,大于你的项目中的所有PHP文件的总和。 设置值取值范围最小值是 200,最大值在 PHP 5.5.6 之前是 100000,PHP 5.5.6 及之后是 1000000。也就是说在200到1000000之间。 opcache.max_accelerated_files=4000 ;设置缓存的过期时间(单位是秒),为0的话每次都要检查 opcache.revalidate_freq=60 ;从字面上理解就是“允许更快速关闭”。它的作用是在单个请求结束时提供一种更快速的机制来调用代码中的析构器,从而加快PHP的响应速度和PHP进程资源的回收速度,这样应用程序可以更快速地响应下一个请求。把它设置为1就可以使用这个机制了。 opcache.fast_shutdown=1 ;如果启用(设置为1),OPcache会在opcache.revalidate_freq设置的秒数去检测文件的时间戳(timestamp)检查脚本是否更新。 如果这个选项被禁用(设置为0),opcache.revalidate_freq会被忽略,PHP文件永远不会被检查。这意味着如果你修改了你的代码,然后你把它更新到服务器上,再在浏览器上请求更新的代码对应的功能,你会看不到更新的效果 强烈建议你在生产环境中设置为0,更新代码后,再平滑重启PHP和web服务器。 opcache.validate_timestamps=0 ;开启Opcache File Cache(实验性), 通过开启这个, 我们可以让Opcache把opcode缓存缓存到外部文件中, 对于一些脚本, 会有很明显的性能提升. 这样PHP就会在/tmp目录下Cache一些Opcode的二进制导出文件, 可以跨PHP生命周期存在. opcache.file_cache=/tmp

 

转载于:https://www.cnblogs.com/cyleon/p/10677959.html

Cannot load Zend OPcache - it was already loaded PHP Warning: PHP Startup: Unable to load dynamic library 'mbstring' (tried: /usr/local/lib/php/extensions/no-debug-non-zts-20230831/mbstring (/usr/local/lib/php/extensions/no-debug-non-zts-20230831/mbstring: cannot open shared object file: No such file or directory), /usr/local/lib/php/extensions/no-debug-non-zts-20230831/mbstring.so (/usr/local/lib/php/extensions/no-debug-non-zts-20230831/mbstring.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 Warning: PHP Startup: Unable to load dynamic library 'mbstring' (tried: /usr/local/lib/php/extensions/no-debug-non-zts-20230831/mbstring (/usr/local/lib/php/extensions/no-debug-non-zts-20230831/mbstring: cannot open shared object file: No such file or directory), /usr/local/lib/php/extensions/no-debug-non-zts-20230831/mbstring.so (/usr/local/lib/php/extensions/no-debug-non-zts-20230831/mbstring.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library 'zip' (tried: /usr/local/lib/php/extensions/no-debug-non-zts-20230831/zip (/usr/local/lib/php/extensions/no-debug-non-zts-20230831/zip: cannot open shared object file: No such file or directory), /usr/local/lib/php/extensions/no-debug-non-zts-20230831/zip.so (/usr/local/lib/php/extensions/no-debug-non-zts-20230831/zip.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 Warning: PHP Startup: Unable to load dynamic library 'zip' (tried: /usr/local/lib/php/extensions/no-debug-non-zts-20230831/zip (/usr/local/lib/php/extensions/no-debug-non-zts-20230831/zip: cannot open shared object file: No such file or directory), /usr/local/lib/php/extensions/no-debug-non-zts-20230831/zip.so (/usr/local/lib/php/extensions/no-debug-non-zts-20230831/zip.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 error: 'intl' does not exist usage: /usr/local/bin/docker-php-ext-enable [options] module-name [module-name ...] ie: /usr/local/bin/docker-php-ext-enable gd mysqli /usr/local/bin/docker-php-ext-enable pdo pdo_mysql /usr/local/bin/docker-php-ext-enable --ini-name 0-apc.ini apcu apc Possible values for module-name: libphp83_dm.so opcache.so pdo_mysql.so php83_pdo_dm.so sodium.so Some of the above modules are already compiled into PHP; please check the output of "php -i" to see which modules are already loaded.
最新发布
06-05
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值