記一次PHP的Invalid binding type問題首先說明下環(huán)境問題,新舊服務器的遷移。代碼在老服務器運行沒有任何問題。環(huán)境都是PHP7.3,結果新的服務器上流量導過來以后,就報出了如下問題: FastCGI sent in stderr: "PHP message: PHP Fatal error: Invalid binding type in /base.inc.php on line 221這個base.inc.php的第221行是什么東東呢? 221 }額,這就有點詭異了。注釋掉相關的方法后,報錯信息又順延到下一個花括號的結尾處了。這就神奇了。于是去百度谷歌了半天,并沒有什么有用的資料,唯一一個提到的內(nèi)容是說重新編譯一下PHP。 https:///questions/3960323/why-dont-php-attributes-allow-functions 好吧,咱們就重新編譯,可是編譯完了一旦導流過來,馬上就又掛掉。PHP-FPM正常運行,但不是所有的都會出問題,于是測試訪問的時候是有的可以有的報錯的。再深入對比發(fā)現(xiàn),新服務器為了將來的擴展我們安裝了swoole擴展。可能問題就出在這里,馬上刪掉swoole擴展,問題解決。 在swoole官網(wǎng)也并沒有找到相關的信息。預估可能是代碼中或者在PHP-FPM的配置中有和swoole不兼容的地方。所以在運行的過程中沒有流量的時候正常測試不會有影響,但流量較大的情況下就會產(chǎn)生這種錯誤。有的時候很多代碼看似運行沒毛病,但真正的問題往往還是要在大流量高并發(fā)的場景下才能體現(xiàn)出來。 |
|
|
來自: 硬核項目經(jīng)理 > 《待分類》