2012-09-04 143 views
2

我試圖使用此Dagon Design PHP表單來幫助當地的非營利出版物讓他們的讀者提交照片。我有「郵件程序」部分工作 - 通知工作正常 - 但「將文件保存到文件夾」部分不起作用。告訴PHP將文件保存到該文件夾​​時的文件夾權限?

在表單頁面,作者說「目錄必須有寫權限,」但我不知道「誰」被寫入該文件夾 - 這是PHP腳本認爲是「所有者」時,它可以節省一些我的網站?或者是否需要爲所有者,組和其他人保存權限?

我不知道爲什麼腳本不保存照片,但這似乎是一個良好的開端。我已經triedlookingaround堆棧的答案,但大多數問題似乎與文件夾創建/權限有關。

我笨拙地試圖建立的頁面是here,有沒有什麼幫助。

回答

1

由於喬恩已經說過,你不」不想讓所有人都可以寫入。

也有可能(取決於主機)類似的suEXEC被採用 - 這將導致你的PHP腳本爲用戶運行其他比webserver的(由Dunhamzzz報道)。

可能是你最好的辦法,在我看來,是一個腳本調用WHOAMI:

passthru('whoami'); 

或者你也可以嘗試:

var_dump(posix_getpwuid(posix_geteuid())); 

請記住,這確實給系統信息客場世界 - 所以一旦你使用它就刪除腳本!

然後,正如你已經在你的問題中正確地聲稱,它可能是文件的權限。

如果你有訪問CLI,您可以更新權限,安全地使(第一個命令獲取組)

id -n -g <username> 
chmod 770 <directory> 
chown <username>:<group> <directory> 

(您可能需要預先掛起「命令」到「CHOWN」命令上面,或找到其他方式來運行它作爲「根」...,如果你卡住回覆回覆。)

如果你沒有權限運行命令行,你可能會這樣做通過一個(S)FTP客戶端或類似的。恐怕這個選項有點寬泛,你必須弄清楚(或回覆你正在使用的客戶端!)

一如既往,YMMV。

最後,請記住,如果這是您自己的代碼,人們會嘗試上傳PHP腳本(或更糟糕)。如果該目錄可以通過公共URL訪問......您將開啓最大的安全漏洞! (.htaccess或非文檔根目錄位置是你的朋友。)

0

如果您不確定您的服務器配置如何(這會影響誰是最終文件所有者),請向任何人(chmod a+w folder)添加寫入權限,上傳一個文件並ls -l以查看所有者。然後,你可以調整權限,使某些用戶只

0

,節省了文件的PHP腳本與服務器上的一些用戶帳戶的權限運行的寫訪問;具體帳戶取決於您的操作系統和Web服務器配置。在Linux上,當PHP作爲Apache模塊運行時,此用戶與Apache運行時的用戶相同。

解決你的問題簡化爲確定哪些用戶帳戶,我們都在談論,然後確保該用戶有寫權限的保存目錄(作爲所有者或作爲該組的成員;給寫訪問給大家的是不最好的主意)。

0

你需要的目錄的權限設置爲網絡服務器(Apache的可能,nginx的或similiar),因爲這就是正在執行PHP的。

您可以快速找出apache用戶與ps aux | grep apache,那麼你要上傳目錄的permssions設置爲用戶,這樣的事情:

chown -R www-data:www-data images/uploads