2009-06-16 105 views
1
<?PHP 

print "hello"; 

?> 

我寫這段代碼並保存爲「1.php」;爲什麼服務器上的PHP腳本工作不同?

然後我將這個PHP腳本上傳到我的 服務器。

我有8個不同的免費託管服務器的帳戶。

我注意到有 服務器設置的2種類型。

(1)
「A類」
爲exapmle,sqweebs。

我們需要將其設置爲640
這意味着sqweebs服務器需要我們
給組權限的PHP腳本運行PHP文件的權限。

如果設置了604,則服務器生成這種 errors.like,

 
Warning: Unknown: 
failed to open stream: 
Permission denied in Unknown on line 0 

Fatal error: Unknown: 
Failed opening required 
'/www/sqweebs.com/1.php' 
(include_path='.:/blahblah') 
in Unknown on line 0 

(2)
在另一方面,也有這個世界上其他類型
服務器 。

「B型」,
例如,izfree。

在此服務器上,我發現
我可以讓PHP腳本工作,如果我給它
604的權限。


所以我想知道爲什麼有很多服務器設置,
和的原因是什麼,以及其他一些相關
意見。

像我應該使用哪個服務器,或者其他等等。

+0

我認爲這個問題應該更好地回答在ServerFault.com – 2009-06-16 02:10:57

+0

http://serverfault.com/嘿,這和stackoverflow是一樣的嗎?外觀和感覺是一樣的! – aaa 2009-06-16 02:16:03

+0

認爲它是「姊妹網站」 – 2009-06-16 02:21:25

回答

0

它可能取決於權限和apache運行在哪個組/用戶下。如果它運行的是你的權限,你可以使用600,如果Apache不在你所在的同一組中,你可能需要類似於604的東西。我要說的是,它取決於服務器配置和文件權限。這是一個瘋狂的猜測,但如果你真的需要像604這樣的東西,這可能是一個跡象表明有可能是錯誤的,其他用戶可能能夠看到你的主目錄...

1

該問題可能與使用免費的主機。它們增加了服務器限制,並且很可能禁用/啓用某些他們認爲適合管理您的網站行爲的限制。

0

網絡服務器預計該文件必須具有運行該網絡服務器的用戶的權限才能打開並運行該文件。

因此,如果網絡服務器(如Apache)運行爲www,那麼www應該具有讀取文件的權限。 (一些運行Apache爲www,一些運行它爲apache,或者沒有人)。

當您上傳文件時,根據umask的設置方式,文件權限設置如此。 (所以,在一臺主機上,當沒有明確設置權限時,該文件可以具有權限655或其他可以是600)。

如果您對通常部署應用程序的操作系統有所瞭解,它總會有所幫助。大多數情況下,PHP部署在* nix系統上,許可方案在所有* nix系統中幾乎(幾乎總是)相同。

試着抓住「Unix系統管理手冊」(Evi Nemeth & Co)。它很有趣,閱讀和易於理解(這是一箇舊版本..但unix權限並沒有改變)

相關問題