簡體   English   中英

訪問被拒絕 - PHP move_uploaded_file - Ubuntu LAMP / var / www

[英]access denied - PHP move_uploaded_file - Ubuntu LAMP /var/www

我意識到我的tmp文件夾或我在/ var / www文件夾中創建的images文件夾的權限存在某種問題。 我知道/ var / www最初具有root訪問權限。 我一直在關注一些在線教程,試圖解決這個問題並將我的權限更改為誰知道過去一小時左右的內容。

嘗試使用PHP / MySQL從HTML表單上傳文件時收到此錯誤:

Warning: move_uploaded_file(images/verified-gw.gif): failed to open stream: Permission  
denied in /var/www/addscore.php on line 40 Warning: move_uploaded_file(): Unable to move 
'/tmp/phpla4QCP' to 'images/verified-gw.gif' in /var/www/addscore.php on line 40 cannot 
move uploaded file or something beavis

所以我認為/ var / www / images文件夾上的權限不正確,或者tmp文件夾的權限是root,ubuntu的內核不允許php腳本從這個root擁有的文件移動到具有權限的images文件夾根據我的知識,我的用戶帳戶是在沒有人的組。

我很迷茫,任何幫助都絕對值得贊賞。

Ubuntu Linux gnome文件夾權限的截圖

上面你可以看到我試圖將文件從tmp目錄移動到的images文件夾的權限圖片。

哦,這是失敗的PHP腳本:

if (!empty($screenshot)) { 
move_uploaded_file($_FILES['screenshot']['tmp_name'], $target) 
or die (' cannot move uploaded file or something beavis'); 

尊敬,

用戶

使用USER DIR mod

如果這是開發者機器,我認為它是,不要嘗試使用/ var / www(將始終存在權限問題)嘗試使用用戶目錄

您將把所有文件和項目保存在家中,不存在任何權限問題。

使用Apache root dir

好的,所以如果你不能使用用戶目錄,你必須像這樣設置文件系統:

1.找出apache所有者用戶名。 如果您使用Ubuntu,它應該是www-data。 轉到終端並輸入:

$ ps aux | grep apache

你應該在下面得到這樣的東西。 第一列是用戶名。

www-data 2070 0.0 0.0 463244 7788 ? S sty25 0:00 /usr/sbin/apache2 -k start

2.找出apache用戶組。 再次終端,輸入:

$ sudo groups www-data

你應該在下面得到這樣的東西。 第二列是組名。

www-data : www-data

3.為apache root dir設置RIGHT所有者用戶和所有者組:

$ sudo chown -R www-data:www-data /var/www/

4.為apache root dir設置RIGHT權限:

$ sudo chmod -R 775 /var/www/

現在您已清理系統,我們嘗試修復您的用戶以訪問/ var / www目錄。

5.將apache組添加到您的用戶:

$ sudo usermod -a -G www-data {YOUR_USER_NAME}

警告! 別忘了 - 換! 這樣,您可以將新組附加到現有列表,而不是用新組替換舊組列表。

現在您具有對位於apache根目錄中的文件的讀/寫訪問權限。 我們需要告訴apache新文件對組成員應該是可讀/可寫的

6.將umask命令添加到apache環境配置:

$ sudo echo umask 002 >> /etc/apache2/envvars

或者使用圖形編輯器:

$ gksudo gedit /etc/apache2/envvars

並將umask 002作為此文件的最后一行

7.

$ sudo apache2ctl restart

祝好運!

這解決了我的問題: http//ubuntuforums.org/showthread.php?t = 1842090&s = 8b97ec72fe7cd753910f488329a90f0f&p = 11239688#post11239688

tl:dr - 我輸入了這個: sudo chown -R www-data:www-data /var/www

我不認為這是嘗試chmod chmp tmp目錄和這個的組合。 我認為只是更改/ var / www文件夾中保留所有LAMP文件的權限。

現在PHP腳本工作並將圖像文件扔到我制作的目錄中。 如果Ubuntu在用戶目錄中安裝了像這個LAMP堆棧這樣的測試服務器而不必學習文件權限,就像我保護我的文件免受納粹潛艇的攻擊,那會更容易。

試試這個: sudo chown -R 777 /var/www/images

你需要給文件一個公共權限777或755所以文件可以上傳到指定的目錄,它只有一個權限

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM