我们已将我们的网站移至我使用 ISPConfig 3 设置的新服务器(Ubuntu 12.04 LTS)。
问题:
一切运行正常,但是当我尝试将新的日志文件写入现有日志文件时,PHP 给出了“无法打开流:权限被拒绝”的警告。
我对玩弄这些东西还很不放心,因为我还不太熟悉 Linux。目前,我网站的所有文件和文件夹的所有者都是“web1”,属于“client1”组。日志目录的权限与以前相同(在旧主机上)。
我知道 Apache(和 PHP?)以其自己的用户“www-data”运行,因此基本上,我必须告诉我的日志文件和文件夹,可以由该用户读取/写入,对吗?
我(会)尝试的:
在研究过程中,我遇到了这个帖子讨论为文件所有者(web1)和 apache 用户(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 {} \;
是的。这是否是解决我的问题的正确方法?
答案1
并非试图贬低,只是想说明一切。
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 和其他程序的公共组。希望这能有所帮助