PHP實際操作中許可權問題小結_PHP
來源:互聯網
上載者:User
關鍵字
問題
許可權
系統
FTP
使用者
操作
檔案
PHP
如果
很多朋友在操作PHP的過程中經常碰到許可權問題。我在這裡就許可權問題根據我以往的操作經驗
和大家談論一下。
許可權錯誤一般是出現在對資料的讀取和儲存的時候發生的。這麼一說
首先我們談論一下最常見的系統許可權的限制
PHP應用最廣泛的系統LINUX/WIN32
我們先說LINUX下的常見錯誤。
當使用者開通了網站後訪問自己的網站 http://mysite/時卻發現無法訪問,提示資訊卻是禁止訪問。
Q:為什麼我的網站配置完成後卻無法訪問?
A:首先登陸到你的機器(或讓你的管理員登陸到機器)檢查你的WEB目錄是否對待group/other 組使用者有讀的許可權。
再次,檢查你的WEB伺服器的目錄設定是否為允許瀏覽。修改相應的資料後這個問題多半會解決。
如果上面的操作步驟仍然無法解決你的問題,那請繼續向下看。
如果你的網站中的HTML檔案已經可以正常訪問,而有些PHP檔案卻在訪問的時候存在許可權問題的話,首先很高興的
告訴你,你的WEB伺服器是正常的,他的許可權是正常的。而你僅僅是在你的PHP檔案中出現了問題。比如說你的PHP檔案中
使用了類似如下的代碼
include("pathtofile/file.inc.php");//建議你在調試的時候不要加上@來抑制錯誤的顯示
?>
$fp=fopen("file.xxx","w");//可以是r,w,r+,a,a+...
if($fp){
fputs($fp,"hi,PHP世界是美好的");
fclose($fp)
}
?>
mkdir("dirname");
?>
rename("source","object");
?>
unlink("file");
?>.....
當然了,上面的代碼你很容易看的明白,其實我想說的例子就是你可能對檔案(目錄是個特殊的檔案--linux下對目錄的解釋)有操作
比如說,建立,刪除,修改,這時候出現許可權問題多半處於檔案自身許可權問題。在這裡我們應該來瞭解一下另外個知識,
系統許可權/FTP許可權
什麼是系統許可權?
什麼是FTP許可權?
當然了,這裡僅僅是按我個人的理解去進行含義說明,並不是書本上的文字定義,你可以通過網上尋的更多的相關定義,不過你只需要
理解他們的意義就行了。
系統許可權(註:這裡所說的系統是作業系統):是對系統使用者的許可權約束系統。
FTP全縣:是對FTP使用者的許可權約束系統。
OK,到這裡,我大致說了上面這些廢話了,如果你的FTP使用者就是你系統中的使用者,你只需要對這些目錄通過系統內許可權分配就已經可
以解決問題了。如果你的FTP系統使用的是自身的使用者系統,那請繼續向下看
我們知道,系統將一個地區分配給了FTP服務,FTP服務對這個地區有一定的許可權操作,FTP服務又增加了自己的使用者管理,因此在系統
許可權的約束下,FTP服務進行了第二次許可權分配。同樣採用了LINUX下的許可權標記法。到這裡你應該有這樣的問題了
Q:為什麼我的系統許可權是正常的但我仍然被告之許可權問題呢?
A:在系統許可權的約束下您的FTP可能有自己的使用者管理體系,因此你現在應該使用FTP用戶端登陸到你的FTP主機,對檔案進行許可權操作。
具體的操作步驟很多ISP的協助頁內都有說明,這裡就不多說了。
看了上面的內容後你的檔案許可權問題應該有90%都可以解決了吧。如果你屬於那10%的歡迎和我討論~
另:對於WIN32系統下的使用者,如果你的分區是NTFS格式的話可以參照上面的,如果你是非NTFS的可以參照FTP許可權
資料的儲存不光是直接對檔案的操作,還包括了資料庫,資料流
資料庫:
這裡我們就以PHP結合最多的MYSQL進行舉例吧,MYSQL擁有自己的許可權系統,因此一個好的DBA總是會合理的分配許可權給資料庫使用者,
資料庫許可權問題多半集中在以下幾點:
1、串連主機被拒
2、串連賬戶匹配錯誤
3、串連賬戶許可權不足
4、串連賬戶操作了不具備許可權的資料庫(此問題同3其實就是賬戶全縣不足)
資料流:
PHP的資料流多半就是對網路操作的一些函數了,如果這些函數出現錯誤多半是對方伺服器的設定導致無法擷取資料導致。這個時候
您應考慮的是從你的程式出發修改代碼(除非你可以操作你的目標主機)
作者:sports98
(就算對我打這些字的鼓勵吧,保留這些)
好長時間沒寫東西了,自己是不是在落後...哎,看到人家那些編寫PHP擴充庫的老是覺得自己落後了,寫些東西留大家備查。