明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

PHP實(shí)際設(shè)置中權(quán)限問題小結(jié)

[摘要]很多朋友在操作PHP的過程中經(jīng)常碰到權(quán)限問題。我在這里就權(quán)限問題根據(jù)我以往的操作經(jīng)驗(yàn)和大家談?wù)撘幌隆? 權(quán)限錯(cuò)誤一般是出現(xiàn)在對(duì)數(shù)據(jù)的讀取和存儲(chǔ)的時(shí)候發(fā)生的。這么一說 首先我們談?wù)撘幌伦畛R姷南到y(tǒng)權(quán)...
很多朋友在操作PHP的過程中經(jīng)常碰到權(quán)限問題。我在這里就權(quán)限問題根據(jù)我以往的操作經(jīng)驗(yàn)
和大家談?wù)撘幌隆?br>

權(quán)限錯(cuò)誤一般是出現(xiàn)在對(duì)數(shù)據(jù)的讀取和存儲(chǔ)的時(shí)候發(fā)生的。這么一說


首先我們談?wù)撘幌伦畛R姷南到y(tǒng)權(quán)限的限制

PHP應(yīng)用最廣泛的系統(tǒng)LINUX/WIN32
我們先說LINUX下的常見錯(cuò)誤。

當(dāng)用戶開通了網(wǎng)站后訪問自己的站點(diǎn) http://mysite/時(shí)卻發(fā)現(xiàn)無法訪問,提示信息卻是禁止訪問。

Q:為什么我的網(wǎng)站配置完成后卻無法訪問?

A:首先登陸到你的機(jī)器(或讓你的管理員登陸到機(jī)器)檢查你的WEB目錄是否對(duì)待group/other 組用戶有讀的權(quán)限。
再次,檢查你的WEB服務(wù)器的目錄設(shè)置是否為允許瀏覽。修改相應(yīng)的數(shù)據(jù)后這個(gè)問題多半會(huì)解決。


如果上面的操作步驟仍然無法解決你的問題,那請(qǐng)繼續(xù)向下看。


如果你的網(wǎng)站中的HTML文件已經(jīng)可以正常訪問,而有些PHP文件卻在訪問的時(shí)候存在權(quán)限問題的話,首先很高興的
告訴你,你的WEB服務(wù)器是正常的,他的權(quán)限是正常的。而你僅僅是在你的PHP文件中出現(xiàn)了問題。比如說你的PHP文件中
使用了類似如下的代碼
<?php
include("pathtofile/file.inc.php");//建議你在調(diào)試的時(shí)候不要加上@來抑制錯(cuò)誤的顯示
?>

<?php
$fp=fopen("file.xxx","w");//可以是r,w,r+,a,a+...
if($fp){
fputs($fp,"hi,PHP世界是美好的");
fclose($fp)
}
?>

<?php
mkdir("dirname");
?>

<?php
rename("source","object");
?>
<?php
unlink("file");
?>.....
當(dāng)然了,上面的代碼你很容易看的明白,其實(shí)我想說的例子就是你可能對(duì)文件(目錄是個(gè)特殊的文件--linux下對(duì)目錄的解釋)有操作
比如說,建立,刪除,修改,這時(shí)候出現(xiàn)權(quán)限問題多半處于文件自身權(quán)限問題。在這里我們應(yīng)該來了解一下另外個(gè)知識(shí),
系統(tǒng)權(quán)限/FTP權(quán)限
什么是系統(tǒng)權(quán)限?
什么是FTP權(quán)限?

當(dāng)然了,這里僅僅是按我個(gè)人的理解去進(jìn)行含義說明,并不是書本上的文字定義,你可以通過網(wǎng)上尋的更多的相關(guān)定義,不過你只需要
理解他們的意義就行了。

系統(tǒng)權(quán)限(注:這里所說的系統(tǒng)是操作系統(tǒng)):是對(duì)系統(tǒng)用戶的權(quán)限約束系統(tǒng)。
FTP全縣:是對(duì)FTP用戶的權(quán)限約束系統(tǒng)。

OK,到這里,我大致說了上面這些廢話了,如果你的FTP用戶就是你系統(tǒng)中的用戶,你只需要對(duì)這些目錄通過系統(tǒng)內(nèi)權(quán)限分配就已經(jīng)可
以解決問題了。如果你的FTP系統(tǒng)使用的是自身的用戶系統(tǒng),那請(qǐng)繼續(xù)向下看

我們知道,系統(tǒng)將一個(gè)區(qū)域分配給了FTP服務(wù),F(xiàn)TP服務(wù)對(duì)這個(gè)區(qū)域有一定的權(quán)限操作,F(xiàn)TP服務(wù)又增加了自己的用戶管理,因此在系統(tǒng)
權(quán)限的約束下,F(xiàn)TP服務(wù)進(jìn)行了第二次權(quán)限分配。同樣采用了LINUX下的權(quán)限表示法。到這里你應(yīng)該有這樣的問題了

Q:為什么我的系統(tǒng)權(quán)限是正常的但我仍然被告之權(quán)限問題呢?

A:在系統(tǒng)權(quán)限的約束下您的FTP可能有自己的用戶管理體系,因此你現(xiàn)在應(yīng)該使用FTP客戶端登陸到你的FTP主機(jī),對(duì)文件進(jìn)行權(quán)限操作。
具體的操作步驟很多ISP的幫助頁內(nèi)都有說明,這里就不多說了。


看了上面的內(nèi)容后你的文件權(quán)限問題應(yīng)該有90%都可以解決了吧。如果你屬于那10%的歡迎和我討論~

另:對(duì)于WIN32系統(tǒng)下的用戶,如果你的分區(qū)是NTFS格式的話可以參照上面的,如果你是非NTFS的可以參照FTP權(quán)限


數(shù)據(jù)的存儲(chǔ)不光是直接對(duì)文件的操作,還包括了數(shù)據(jù)庫,數(shù)據(jù)流

數(shù)據(jù)庫:

這里我們就以PHP結(jié)合最多的MYSQL進(jìn)行舉例吧,MYSQL擁有自己的權(quán)限系統(tǒng),因此一個(gè)好的DBA總是會(huì)合理的分配權(quán)限給數(shù)據(jù)庫用戶,
數(shù)據(jù)庫權(quán)限問題多半集中在以下幾點(diǎn):

1、連接主機(jī)被拒
2、連接賬戶匹配錯(cuò)誤
3、連接賬戶權(quán)限不足
4、連接賬戶操作了不具備權(quán)限的數(shù)據(jù)庫(此問題同3其實(shí)就是賬戶全縣不足)


數(shù)據(jù)流:

PHP的數(shù)據(jù)流多半就是對(duì)網(wǎng)絡(luò)操作的一些函數(shù)了,如果這些函數(shù)出現(xiàn)錯(cuò)誤多半是對(duì)方服務(wù)器的設(shè)置導(dǎo)致無法獲取數(shù)據(jù)導(dǎo)致。這個(gè)時(shí)候
您應(yīng)考慮的是從你的程序出發(fā)修改代碼(除非你可以操作你的目標(biāo)主機(jī))

作者:sports98 <MSN:flyruns@hotmail.com>
(就算對(duì)我打這些字的鼓勵(lì)吧,保留這些)


好長時(shí)間沒寫東西了,自己是不是在落后...哎,看到人家那些編寫PHP擴(kuò)展庫的老是覺得自己落后了,寫些東西留大家備查。