您好,登錄后才能下訂單哦!
如何解析PHP的Invalid binding type問題,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
首先說明下環境問題,新舊服務器的遷移。代碼在老服務器運行沒有任何問題。環境都是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 }
額,這就有點詭異了。注釋掉相關的方法后,報錯信息又順延到下一個花括號的結尾處了。這就神奇了。于是去百度谷歌了半天,并沒有什么有用的資料,唯一一個提到的內容是說重新編譯一下PHP。
https://stackoverflow.com/questions/3960323/why-dont-php-attributes-allow-functions
好吧,咱們就重新編譯,可是編譯完了一旦導流過來,馬上就又掛掉。PHP-FPM正常運行,但不是所有的都會出問題,于是測試訪問的時候是有的可以有的報錯的。再深入對比發現,新服務器為了將來的擴展我們安裝了swoole擴展。可能問題就出在這里,馬上刪掉swoole擴展,問題解決。
在swoole官網也并沒有找到相關的信息。預估可能是代碼中或者在PHP-FPM的配置中有和swoole不兼容的地方。所以在運行的過程中沒有流量的時候正常測試不會有影響,但流量較大的情況下就會產生這種錯誤。有的時候很多代碼看似運行沒毛病,但真正的問題往往還是要在大流量高并發的場景下才能體現出來。
看完上述內容,你們掌握如何解析PHP的Invalid binding type問題的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。