我們在我們公司使用的是Linux專用服務器。使用php創建的文件夾,由apache擁有
每當我們創建一個PHP腳本的文件夾,Apache是擁有我必須通過根連接到服務器,以改變所有者用戶和權限
的文件夾,每一次,但我不爲了解決這個問題,我知道應該更改哪個設置。
我試圖打開/關閉安全模式,但它沒有奏效。
我會很高興,如果有人可以幫助我
在此先感謝
我們在我們公司使用的是Linux專用服務器。使用php創建的文件夾,由apache擁有
每當我們創建一個PHP腳本的文件夾,Apache是擁有我必須通過根連接到服務器,以改變所有者用戶和權限
的文件夾,每一次,但我不爲了解決這個問題,我知道應該更改哪個設置。
我試圖打開/關閉安全模式,但它沒有奏效。
我會很高興,如果有人可以幫助我
在此先感謝
這是一個可移植性問題,取決於您的服務器配置(即mod_php或帶有SuExec的FCGI)。
您可以嘗試在創建文件後立即使用chown
函數,但只有當您知道實際所有者應該是誰時(這並非總是如此),它纔會起作用。爲了克服這個問題,I wrote a simple method,試圖找到始終保證閱讀和寫作(以及執行的目錄)最佳的文件模式沒有給出過多的權限:
function xChmod($path, $chmod = null) // adapted from phunction
{
if (file_exists($path) === true)
{
if (is_null($chmod) === true)
{
$chmod = (is_dir($path) === true) ? 777 : 666;
if (extension_loaded('posix') === true)
{
$user = posix_getpwuid(posix_getuid());
if (array_key_exists('name', $user) === true)
{
$chmod -= (in_array($user['name'], explode('|', 'apache|httpd|nobody|system|webdaemon|www|www-data')) === true) ? 0 : 22;
}
}
}
return chmod($path, octdec(intval($chmod)));
}
return false;
}
基本上,如果你忽略第二$chmod
參數它將默認使用0777
文件夾,0666
文件默認使用0666
文件,但是,如果PHP在非標準用戶下運行,它將使模式遞減22,文件夾產生0755
,文件產生0644
。請記住,這隻適用於已存在的文件,因此如果您要創建目錄you'll need to have additional precautions。
它不會將所有者更改爲我想要的用戶,但它使文件夾可寫,非常感謝。 –
有的方式來做到這一點:
chown()
在那裏你可以通過執行該功能更改文件的權限。
或者如果您可以使用FTP移動文件,則可以將文件拖到文檔根目錄(public_html/
)之外,然後右鍵單擊 - >更改文件的文件權限。
CHMODs是你想要看的。 777
將爲任何人提供對您的文件的訪問權限,您可以將其用作測試以確保您擁有文件權限。儘管如此,我並不建議保留777
的權限。
你使用的是什麼FTP /文件程序? – jared
您可以在創建文件夾後使用chmod()。 – ActuallyMAB