今天升級 wp2.7 遭遇第一次伺服器 500 interal server error 然後就是等待。。 連接資料庫,PhpMyAdmin 正常使用。。資料庫沒有問題 測試上傳靜態頁面 test.html,正常顯示,Apach 沒問題 測試上傳 test.php,使用 phpinfo ();? 500 interal server error 沒有消失,? 繼續顯示。。。 問題出來了,主要在 PHP 上網搜尋,懷疑是 phpcms 問題 檢查目錄權限,修改 wp 根目錄下所有檔案權限為 700 刷新 phpCMS。。。等 測試 test.php?。。通過 重新打開。。。一切 OK
相信用過 WP 的老鳥們都經歷過相似的問題吧,網上相關的求助也不少,往往菜鳥們都是直接 1、備份資料 2 、重新安裝 3、還原資料 這三步居多,或者就是到各大論壇求助,然後就是等。本人今天也算是直接領略到了 WP 的第一次罷工,只是不過幸運點,以前用 boblog + 免費虛擬主機就遇到 N 回,請大家注意這裡的免費虛擬主機,下面會講到,好了廢話不說
首先了解一下 PHPCMS(PHP Content Manage System)這個東西可以參閱http://baike.baidu.com/view/110598.htm簡單點就是 Php 內容管理系統可以提供對各種 php 應用(blog, 論壇,網店,sns)進行底層支援和管理的系統管理的軟體,也就是說一個伺服器如果放置多個 blog 系統比如 20 個 wordpress 那麼統一的管理肯定是需要的,現在的虛擬主機很多就是這種情況,伺服器允許把伺服器資源分配成多個獨立部分讓多個使用者獨立管理,但是一旦獨立管理以後,部分使用者肯定對自己的獨立部分進行特定的設定,但是是不符合 CMS 的管理需要的,比如目錄權限的管理,那麼問題出來了,CMS 禁用了使用者的權限,而使用者的獨立系統又向 CMS 申請這寫權限,申請成功當然沒有問題,一旦失敗,CMS 就可能會對使用者的非法越權進行相關的操作,比如功能禁用,像今天錯誤 500 interal server error 就是一種情況,在 WP 中極有可能就是 CMS 取消了使用者目錄的 PHP 的支援,那麼使用者就得郁悶吧,沒了 PHP 那還有什麼 WP 呢,接著就是 WP 系統的報錯 500 interal server error 這樣的頁面就出現了
國內的大部分虛擬主機都是採用了 CMS 進行管理的,大部分收費的主機對使用者的權限管理還是很輕鬆的,一般不會有太大限制,所以就有 N 多的 WP,BoBlog 出現了,但是不分國內的虛擬主機對使用者權限還限制比較嚴格的,而且限制使用者的操作,所以用這些主機的朋友很多是根本無法安裝 WP,或者安裝成功,突然有一天出現比如 interal server error 之類的錯誤,然後就求助管理員幫助,解決問題還好,沒有的話,只有哭吧,重新安裝,俺就是一個倒霉的例子
問題分析完,就 500 interal server error 怎麼解決說點什麼,原因不要說,就是你沒有伺服器授權權限(通常是 rewrite)但是你的 WP 需要這樣的權限,比如目錄的刪除,更名,或者檔案的移動等等,我今天的問題也是如此上傳之前忘了改權限 700,700 是 UNIX/LINUX 檔案權限,可以參閱,linux/UNIX 檔案權限管理,就是除了所有者擁有全部權限其他任何使用者都沒有權限更改、刪除,目的就是要讓所有者有最大的權限,現在我們的問題具體地說就是是如果你的目錄沒有這麼設定或者修改權限的話,而你用 WP 去刪除它結果肯定是權限不足,但是 CMS 出於保護其他使用者檔案的目的會認為你是越權操作,會破壞其他使用者的檔案,當然會對你採取一定的措施,禁用你的腳本解析權限(php 當然是其中之一)是一種重要方式,WP 無法被解析,然後就是可怕的 500 interal server error !
解決方法,首先必須保證自己的宿主主機給予你足夠大的權限,最低也要 rewite 吧,國內的收費主機目前也都能給予,免費主機就不一定,毕竟是免費的,限制限制還是應該的,就像限制你的 web 流量一樣,我用的是美橙 VPS(電信機房 chinaNet)+ 息壤虛擬主機(雙線)備用,VPS 權限肯定沒有問題,息壤的主機也是支援 rewrite+overwrite 的,權限沒有問題。
那問題肯定出在檔案和目錄的的使用者自身設定權限上,如果你用 LINUX 主機,你的系統是 windows,ftp 上傳,那問題不大,只要你在你的電腦上的檔案沒有設定只讀,那麼上傳的伺服器伺服器會在建立檔案時預設設定你 ftp 帳戶為檔案所有者,擁有最高權限:7,同時伺服器 apach 管理組使用者(通常是這樣)對檔案的權限也設定為 7,這樣只要不是你的伺服器沒限制問題,修改本地檔案的屬性(取消只讀)然後重新上傳,問題就可以解決,然後記得聯繫下管理員,重新設定下你的權限,一定要聯繫管理員,他才擁有最高權限,他會幫你修改你被禁用的腳本解析,那麼問題就可以解決,一般國內的主機提供商服務質量還是可以的,半小時可以解決,不然可以考慮換主機了,免費主機相對還是慢點的,毕竟是免費啊
再說 linux 系統上傳 UNIX/linux 主機,相信用過的使用者肯定有這樣的經驗,如果你用 FTP 上傳一個檔案到某個伺服器,伺服器又沒有進行特定的設定,那們檔案的權限記錄還是保留的,這個在作業系統中叫權限 array,這樣可以方便兩個終端(你的主機和伺服器)進行檔案管理,比如說我的主機上有檔案設成 700 那麼到主機上就是 700,好了 700 問題還不大,要是權限設定得很低呢?問題就來了,檔案到了伺服器會保留權限設定,然後我們用 WP 進行一些 rewrite 操作,比如修改目錄結構,結果不用我說了吧 500 interal server error CMS+WP 最常見的錯誤,哭吧,免費主機的朋友們,給管理員發郵件,然後直接是等。如果是國外主機的那還是接著哭吧,不知道要什麼時候哦,本人就曾用過 yahoo.com 提供的免費主機,郵件發完(時間也不好,早上 9 點)等到第二天中午管理員回覆修改好了整整 20 小時,你的網站如果每天 1000IP 的話,損失不用說了吧
所以 linux 使用者,上傳檔案前,請一定要記得 sudo 一下,修改所有檔案權限為 777, 最低要 700 吧,然後在上傳,不然的話,突然有一天 interal server error 會來找你的,還有虛擬主機使用者一定要儘快聯繫管理員解除 PHP 禁用,不要犯傻去備份、重裝、還原,得不償失,本人在用免費空間就曾遇到 N 次
如果你用 VPS 或者更高的話,那你可以直接到你的 CMS 後台,修改你 blog 的被禁用的部分,reset CMS ,問題就可以解決,1 分鐘之內
最後,通過本次實戰過程的說明,本人提醒各位博友們,切記:LINUX 主機什麼最重要,權限!,上傳之前一定要修改檔案權限
如各位博友有任何疑問或者本文有任何問題,歡迎留言,必復
歡迎在《共同創作協議》下轉載、修改,發布本文,轉載請註明作者出處,謝謝,CG