2016-08-11 54 views
0

我想在本地Apache服務器上用php創建目錄。
我試圖
<?php mkdir("folder"); ?>

<?php exec("sudo mkdir folder"); ?>
當我嘗試在瀏覽器中沒有任何反應執行它們。
但我可以通過使用sudo從終端執行它們。 (我還修改sudoers文件,這樣就不會提示輸入在第二個代碼密碼)
當我不使用sudo我得到這個錯誤
PHP Warning: mkdir(): Permission denied in /var/www/html/mscr/add.php on line 2PHP mkdir()不能在瀏覽器中工作

我也試過 this this

所以我可以執行幾乎所有的東西,但在瀏覽器中的目錄操作。 我希望能夠在瀏覽器中創建,刪除和編輯目錄。

謝謝!

+1

這是Apache的,需要使用瀏覽器時,創建目錄,而不是PHP的子文件夾,確實它有權這樣做? – CD001

+0

你不應該使用'sudo',因爲這意味着給予Web服務器用戶(apache/www/etc)sudo權限。相反,你應該使父目錄對Web服務器用戶可寫。 – jeroen

回答

0

聽起來像Apache沒有創建文件夾的權限。要麼給該文件夾的所有權阿帕奇(您想創建一個新的)

sudo chown www-data /var/www/html/mscr 

或設置文件夾的權限爲777

sudo chmod 777 /var/www/html/mscr 

警告這會令MSCR文件夾可執行文件中的一切。爲了解決這個問題最CMS將創建它被設置爲777所以像在/ var/www/html等/ MSCR /上傳

+2

你應該*永遠*不需要777任何東西在網絡服務器上...... **永遠**:http://serverfault.com/questions/357108/what-permissions-should-my-website-files-folders-have -on-a-linux-webserver – CD001

+0

這是關於大多數CMS如何使用上傳文件夾的標準 –

+0

@MarkTwigg非常感謝你解決了我的問題。由於它將作爲本地服務器保留,我認爲所有權限都不會成爲問題。 –

0
<?php mkdir("folder", 777, true); ?> 
+0

我試過這個,但沒有爲我工作。馬克Twigg的答案工作。非常感謝。 –

+4

不要使用'777'作爲權限! – hek2mgl

+0

儘管此代碼片段可能會解決問題,但[包括解釋](// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)確實有助於提高帖子的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。也請儘量不要使用解釋性註釋來擠佔代碼,因爲這會降低代碼和解釋的可讀性! – FrankerZ

相關問題