Apache-2.2

移動到新伺服器後“權限被拒絕”

  • March 8, 2015

我們已將我們的網站移至我使用 ISPConfig 3 設置的新伺服器(Ubuntu 12.04 LTS)。

問題:

一切正常,但是當嘗試將新的日誌文件寫入現有日誌文件時,PHP 給了我一個“無法打開流:權限被拒絕”的警告。

由於我對 Linux 還不太熟悉,所以我對玩弄東西很不安全。現在,我網站的所有文件和文件夾都有來自組“client1”的所有者“web1”。日誌目錄的權限與以前相同(在舊主機上)。

我知道 Apache(和 PHP?)作為自己的使用者“www-data”執行,所以基本上,我必須告訴我的日誌文件和文件夾,這個使用者可以讀/寫,對吧?

我(會)嘗試過的:

在研究的過程中,我偶然發現了這篇關於為文件所有者 (web1) 和 apache-user (www-data) 創建一個公共組的文章。

我還找到了以下說明:

//Create new group
$ sudo addgroup webdev

//Change the group of your web directory:
$ sudo chgrp -R webdev /var/www/
$ sudo chmod -R g+rw /var/www/

//Set the guid bit on all folders in your web directory:
$ sudo find /var/www -type d -exec chmod +s {} \;

//Add Apache to the webdev group:
$ sudo usermod -a -G webdev www-data

//Add your user to the webdev group:
$ sudo usermod -a -G webdev <user_name>

但我還沒有嘗試過,因為我不確定是什麼

$ sudo find /var/www -type d -exec chmod +s {} \;

做。這甚至是解決我的問題的正確方法嗎?

不想說話,只是把它全部分解。

sudo - run this command as a super user
find - look for something... 
/var/www - ...in the /var/www directory...
-type d  - ...that is a directory...
-exec chmod +s - ...and executes a chmod (change mode) +s (set the user bit) ...
{} - ...for every directory you find...
\; - and end the command.

現在,如果這是您想要做的,上面列出的命令看起來很好。與 apache 和其他人創建一個公共組。希望有幫助

引用自:https://serverfault.com/questions/429849