我試圖將文件上傳到PHP通過我自己的服務器。如果文件夾不存在,首先我嘗試創建文件夾;
mkdir($folder, 0700);
我的腳本正在創建文件夾,但apache是文件夾(和文件)的所有者,所以我無法訪問我上傳的文件。
我在我的服務器中關閉了safe_mode。我仍然無法找到解決這個問題的方法。
如果有人能幫我解決這個問題,我會很高興。
注意: 我試過0755,0777不會改變任何東西。 Apache是創建的文件夾的所有者。
我試圖將文件上傳到PHP通過我自己的服務器。如果文件夾不存在,首先我嘗試創建文件夾;
mkdir($folder, 0700);
我的腳本正在創建文件夾,但apache是文件夾(和文件)的所有者,所以我無法訪問我上傳的文件。
我在我的服務器中關閉了safe_mode。我仍然無法找到解決這個問題的方法。
如果有人能幫我解決這個問題,我會很高興。
注意: 我試過0755,0777不會改變任何東西。 Apache是創建的文件夾的所有者。
當然。上傳目錄必須是可寫的other
/訪問,即:XX7:
// fill APPPATH with a suitable directoy name
if (! file_exists(APPPATH . 'uploads'))
{
mkdir(APPPATH . 'uploads', 0757, TRUE);
}
7: owner permissions, ie: rwx
5: group permissions, ie: rx
7: other permissions, ie: rwx
它創建文件夾,我沒有問題。問題是apache是文件夾的所有者。 – Revenant 2012-01-05 18:48:36
是的,apache也是上傳文件的所有者。只需使目錄/文件夾可寫並可由其他用戶訪問。 – 2012-01-05 18:53:14
如果這不起作用,我認爲問題必須在腳本的另一部分。你如何訪問上傳的文件? – 2012-01-05 18:57:52
你爲什麼要擺在首位設置權限,700? 755將允許「任何人」閱讀您的文件和文件夾,並且在大多數情況下,它實際上是可以接受的。
更新我的問題。我嘗試了755,777沒有成功。 Apache是每個創建的文件夾的所有者。 – Revenant 2012-01-05 18:50:21
下面的代碼段創建的權限777(或任何指定的權限),目錄:
$oldumask = umask(0);
mkdir($path, 0777);
umask($oldumask);
權限700是非常嚴格的。在* only *中,所有者可以對目錄執行任何操作。所以你所描述的是預期的。 – 2012-01-05 18:34:23
你有沒有檢出http://stackoverflow.com/questions/2560762/php-mkdir-and-apache-ownership? – j08691 2012-01-05 18:35:42
@ j08691;是的,我檢查了所有。正如我所提到的,safe_mode已關閉。 @Jason McCreary,即使我改變權限,沒有任何變化,仍然'apache'是文件夾的所有者。 – Revenant 2012-01-05 18:37:39