昨晚將一個disucz論壇進行轉移後,發現打開的頁面上回多一個PHP has encountered a Stack overflow 這個提示錯誤,進過翻譯為“PHP遇到堆棧溢出”。我就感覺奇怪了,新站沒人訪問的,怎麼可能會溢出。 好吧去discuz官方論壇找找解決方法。
找到的第一解決方法,更新後台緩存,結果不行。接下來檢查數據庫配置文件,也沒有錯誤。檢查php權限也沒有錯誤。
discuz官網有人說是php版本太低了,個人對於這種人是比較反感的,這種說法比較扯淡。不用去驗證了。
把新舊的服務器對比較,發現了一個問題,兩個的路徑都不同,馬上去查看上級目錄文件夾權限,果然是權限出現了問題。文件路徑是D:/www/discuz. 查看到舊的服務器上面www和discuz文件夾權限有“匿名來賓權限”。 在去新服務器上面看到www文件夾沒有“匿名來賓權限” 而discuz文件夾權限則是有的。 說明上一級目錄權限不足導致的。 重新給一下權限。 ok完美解決PHP has encountered a Stack overflow的問題。
上面說了這麼多,其實就是一句話:
在windows服務器下面都是因為權限問題,具體來說是上一級目錄權限問題。
例如:
原來的網站目錄是 d:\www\jb51
快速安全的解決方法就是在jb51目錄下,新建一個目錄 webroot,而且這個目錄的權限跟jb51權限是一樣的。
現在的網站目錄就是:d:\www\jb51\webroot即可。
現在很多php系統都是因為這個問題導致出錯例如 discuz、phpmyadmin等。
ecshop最終輸出的頁面並不是庫文件或者模板文件,而是處理以後的php文件,可能是在解析的過程出了問題,你這樣籠統的問,除非是遇到過同的問題的,要不然很難幫到你。
錯誤編號:1142
解決辦法:
1、請檢查您的 MySQL 帳號是否有相應的權限。
2、檢查一下應用下的 config 配置文件中的連接數據庫的帳號是否正確。
3、檢查一下數據庫是否滿了,如果數據庫滿了沒有空間後也會出現這種情況。
PHP has encountered a Stack overflow
空間不足或者服務器的php版本問題