2010-06-08 113 views
1

我最近搬到我的網站到一個新的主機,現在我遇到了一些斷碼..PHP和權限

我有一個上傳腳本,現在返回此:

move_uploaded_file()以失敗開放 流:權限*否認..

我設置的上傳目錄777這工作得很好,但需要我的腳本有頂級權限..

(由於腳本本身設置權限的目錄,做大量的複製等)

是否有Apache的一種方法,我可以將PHP腳本到我的服務器上的所有文件夾的所有者?

感謝

此外 當尋找在phpinfo()函數

apache2handler

User/Group nobody(99)/99 

這是相關的?

+0

上傳的文件$ file ['tmp_name']和targetdir是否存在?是is_writable($ targetdir)? – 2010-06-08 20:07:27

回答

0

我不會去那條路線,只是給它定義upload_tmp_dir的權限,或者將upload_tmp_dir定義爲你有權訪問的目錄。如果是那個目錄,你有問題。如果目標是問題,而你已經777了,那麼可怕的事情正在發生。

+0

我已777'ed它,它上傳罰款..但我的腳本然後使用Chmod和重命名,也獲得權限被拒絕..我需要該腳本擁有所有者權限。 – Moe 2010-06-08 00:46:27

0

你有ssh訪問你的新主機嗎?我問的原因是它可能不是最好的使用用戶名/組作爲nobody,因爲大多數其他服務也會使用它。我將它更改爲類似apache

然後,您可以更新httpd.conf中,添加在這兩行(後重新加載配置):

User apache 
Group apache 

然後,運行chown apache:apache -R dir_name來讓Apache擁有它。

0

好吧, 當您嘗試設置像「0777」這樣的權限時,您必須以相同的權限運行。

我的意思是。 例如,您的腳本告訴將文件夾/文件權限更改爲0777,但該文件夾或文件已具有許可權,並且該權限爲'0755',因此您無權進行該更改。因爲用戶只有5權限。

要麼你需要登錄到FTP並將文件夾權限更改爲0777,然後完全控制它,否則你必須堅持使用0755或類似的。