2010-01-04 35 views
0

在這裏看到一個例子:http://mattpotts.com/portal/require_once(../../路徑/到/運行script.php)未能打開流權限被拒絕

我把一個includeme.htm在每個目錄所需的路徑上找到點的失敗。它在我的本地機器(windows)上工作正常,具有相同的目錄結構,但在遠程(linux)服務器上失敗。

目錄結構:

+-firefli/     drwx--x--x 
    +-private_html/   drwx------ 
    +-foo/     drwxr-xr-x 
    +-bar/     drwxr-xr-x 
    +-portal/    drwxr-wr-w 
    +-public_html/   drwxr-wr-w 
    +-foo/     drwxr-wr-w 
    +-portal/    drwxr-wr-w

的權限確認它是private_html目錄造成麻煩。希望你能看到目錄結構的目的,我不知道這是否是一種常見的做事方式,但它適用於我。那麼,直到現在。

我已經走了很長的路要問,但我的問題只是這個:是否有任何錯誤設置private_htmldrwxr-xr-x?鑑於我不希望它可以通過網絡訪問。但是,權限不應該這樣做,如果他們?因爲它是通過http訪問public_html目錄的apache。

回答

1

好吧,如果您已將DocumentRoot正確設置爲指向public_html,那麼無論您對其擁有何種權限,都無法通過網絡訪問它。

如果沒有您輸入.htaccess文件來重定向,則無法從Web訪問專用HTMl。如果你不知道這意味着什麼/如何去做,你是安全的。

您應該很好地將這些權限設置爲任何腳本所需。

+0

誰可以訪問?如果我將它從drwx改爲drwxr-xr-x? – Matthew 2010-01-04 23:11:19

+0

它不能通過網絡訪問。但其他FTP用戶可以訪問它。 (當然,假設沒有錯誤的htaccess文件存在)。 – 2010-01-04 23:12:15

+0

你爲什麼要讓它從public_html訪問? – 2010-01-04 23:12:37

3

您不應該在private_html上阻止具有文件夾/文件權限的Web用戶,因爲它位於Web根目錄之外。正如你所說的,網絡用戶只能得到的東西在的public_html

對於未來的調試速度,如果你有一個相對的網絡路徑,你可以使用真實路徑將其轉換爲一個真正的路徑:

$path = realpath('../../private_html'); 
// $path is now /public_html/foo/private.html or whatever 
+1

private_html上的權限只是它們來的權限。我沒有碰過他們。然而... – Matthew 2010-01-04 23:12:54

0

哪些user:groupprivate_html? Web服務器需要是組的成員或文件的所有者。爲了讀取目錄內容,目錄需要具有Web服務器的execute權限才能打開它。基本上它們應該與public_html具有相同的user:group。您只是想禁止write權限。託管他的網絡服務器。如果您已將文檔根目錄設置爲public_htmlprivate_html無法通過網絡訪問,無論權限如何。另外,我總是在路徑參數和文件操作上使用realpath

相關問題