共計 713 個字符,預計需要花費 2 分鐘才能閱讀完成。
php 報錯 PHP:Deprecated: ?Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To?avoid this warning set ‘always_populate_raw_post_data’ to ‘-1’ in php.ini and use the php://input stream instead. in Unknown on line 0
理論上錯誤原因:$HTTP_RAW_POST_DATA 函數即將被廢棄,不可以使用這個函數。
報錯信息給了兩種解決方案:
1. 在 php.ini 里將 always_populate_raw_post_data=- 1 來隱藏 warning;
2. 將 $HTTP_RAW_POST_DATA 更換為 php://input
不過好多人并不是因為用了 $HTTP_RAW_POST_DATA 這個函數才報錯的。而是根本就沒有用到這個函數,甚至不知道這個函數,php 還是會給 waring。
那么問題究竟出在哪呢?
問題在于當你把 always_populate_raw_post_data= 0 時,并沒有真正意思的 disable(php 設計缺陷)。這個時候,還會自動加載到這個函數,所以會報錯。
而且 always_populate_raw_post_data=- 1 時,不僅僅時隱藏 warning,而是真正意義上的 disable?always_populate_raw_post_data
修改完 php.ini 后,需要重啟 php 服務,修改方可生效。
重啟方法:命令行輸入?/etc/init.d/php-fpm restart