[2017-11-29 19:09:02] xxxx,line:242 message:[code => 405 | msg => 要求方法缺点(GET or POST)。
追查提示便是要求办法缺点,但是看代码统统正常,直接op重启php-fpm,然后正常了,线上开启了opcache,但是在发布代码后会自动触发fpm重启,不过并没有生效,追查问题。
查看路由文件(stat):

Access: 2017-11-29 18:28:17.553780923 +0800
Modify: 2017-11-29 18:35:15.539780895 +0800
Change: 2017-11-29 18:35:16.539780895 +0800
fpm重启正常,创造末了访问韶光明显比modify韶光晚,解释更新后并没有访问文件,还是走的缓存。大致问题在于机器更新代码并未完成时,fpm就重启了,这两个操作存在秒级差的问题,偶现,该当和一次上线n个机器从一台代码做事器上拉取代码存在延迟导致的。
办理方法1. 在根目录建立一个php文件,里面包含<?php opcache_reset();?> ,通过http要求(浏览器)来运行(最好限定下本地IP运行),由于opcache_reset在某些模式下不支持cli模式,所以为了统一,最好都通过http要求运行
2. 工具 Cachetool
3. 手动重启fpm,逼迫opcache更新
opcache配置项开启办法:在php.ini中设置,
[opcache]zend_extension = \公众G:/PHP/php-5.5.6-Win32-VC11-x64/ext/php_opcache.dll\"大众
; Zend Optimizer + 的开关, 关闭时期码不再优化
opcache.enable=1
; Determines if Zend OPCache is enabled for the CLI version of PHP
opcache.enable_cli=1
; Zend Optimizer + 共享内存的大小, 统共能够存储多少预编译的 PHP 代码(单位:MB); 推举 128
opcache.memory_consumption=64
; Zend Optimizer + 暂存池中字符串的占内存总量.(单位:MB); 推举 8
opcache.interned_strings_buffer=4
; 最大缓存的文件数目 200 到 100000 之间; 这个选项用于掌握内存中最多可以缓存多少个PHP文件。这个选项必须得设置得足够大,大于你的项目中的所有PHP文件的总和
opcache.max_accelerated_files=2000
; 内存“摧残浪费蹂躏”达到此值对应的百分比,就会发起一个重启调度.
opcache.max_wasted_percentage=5
; 开启这条指令, Zend Optimizer + 会自动将当前事情目录的名字追加到脚本键上,; 以此肃清同名文件间的键值命名冲突.关闭这条指令会提升性能,; 但是会对已存在的运用造成毁坏.
opcache.use_cwd=0
; 开启文件韶光戳验证,当这个选项被启用(设置为1),PHP会在opcache.revalidate_freq设置的韶光到达后检测文件的韶光戳(timestamp)。如果这个选项被禁用(设置为0),opcache.revalidate_freq会被忽略,PHP文件永久不会被检讨
opcache.validate_timestamps=1
; 2s检讨一次文件更新 把稳:0是一贯检讨不是关闭; 推举 60,这个选项用于设置缓存的过期韶光(单位是秒),当这个韶光达到后,opcache会检讨你的代码是否改变,如果改变了PHP会重新编译它,天生新的opcode,并且更新缓存。值为“0”表示每次要求都会检讨你的PHP代码是否更新
opcache.revalidate_freq=2
; 许可或禁止在 include_path 中进行文件搜索的优化
opcache.revalidate_path=0
; 是否保存文件/函数的注释 如果apigen、Doctrine、 ZF2、 PHPUnit须要文件注释; 推举 0
opcache.save_comments=1
; 是否加载文件/函数的注释
opcache.load_comments=1
; 打开快速关闭, 打开这个在PHP Request Shutdown的时候会收内存的速率会提高,推举 1
opcache.fast_shutdown=1
这里只列出部分配置,全部配置项请参考官方文档,关于opcache干系问题,欢迎留言谈论。
参考文档:
http://php.net/manual/zh/opcache.configuration.php#ini.opcache.revalidate-freq