可能重复:
如何让 Apache 以当前用户身份运行
我正在再次设置本地测试服务器,我似乎忘记了如何成功设置 LAMP 服务器。
我已经通过命令安装了 LAMP 服务器tasksel
,并且已经/var/www
根据以下内容配置了目录我找到的指南:
安装 lamp 服务器后,您需要对 /var/www 目录具有写入权限。请按照以下步骤配置权限。
将您的用户添加到 www-data 组
sudo usermod -a -G www-data <your user name>
现在将 /var/www 文件夹添加到 www-data 组
sudo chgrp -R www-data /var/www
现在授予 www-data 组写入权限
sudo chmod -R g+w /var/www
因此logan
用户现在是www-data
组的一部分并且文件/文件夹权限如下输出:
logan@computer:/var/www$ ls -lart
total 172
-rw-r--r-- 1 www-data www-data 1997 Oct 23 2010 wp-links-opml.php
-rw-r--r-- 1 www-data www-data 3177 Nov 1 2010 wp-config-sample.php
-rw-r--r-- 1 www-data www-data 3700 Jan 8 2012 wp-trackback.php
-rw-r--r-- 1 www-data www-data 271 Jan 8 2012 wp-blog-header.php
-rw-r--r-- 1 www-data www-data 395 Jan 8 2012 index.php
-rw-r--r-- 1 www-data www-data 3522 Apr 10 2012 wp-comments-post.php
-rw-r--r-- 1 www-data www-data 19929 May 6 2012 license.txt
-rw-r--r-- 1 www-data www-data 18219 Sep 11 08:27 wp-signup.php
-rw-r--r-- 1 www-data www-data 2719 Sep 11 16:11 xmlrpc.php
-rw-r--r-- 1 www-data www-data 2718 Sep 23 12:57 wp-cron.php
-rw-r--r-- 1 www-data www-data 7723 Sep 25 01:26 wp-mail.php
-rw-r--r-- 1 www-data www-data 2408 Oct 26 15:40 wp-load.php
-rw-r--r-- 1 www-data www-data 4663 Nov 17 10:11 wp-activate.php
-rw-r--r-- 1 www-data www-data 9899 Nov 22 04:52 wp-settings.php
-rw-r--r-- 1 www-data www-data 9175 Nov 29 19:57 readme.html
-rw-r--r-- 1 www-data www-data 29310 Nov 30 08:40 wp-login.php
drwxr-xr-x 14 root root 4096 Dec 24 17:41 ..
drwx------ 9 www-data www-data 4096 Dec 26 16:11 wp-admin
drwx------ 9 www-data www-data 4096 Dec 26 16:11 wp-includes
-rw-rw-rw- 1 www-data www-data 3448 Dec 26 16:14 wp-config.php
drwxrwxr-x 5 www-data www-data 4096 Dec 26 16:14 .
drwx------ 6 www-data www-data 4096 Dec 26 16:19 wp-content
在 上一切正常http://localhost
,我可以正常浏览网站。问题是我将开发一个 wordpress 插件,我不想处理 www 目录下的不同所有者以创建或修改文件/文件夹。当我以/var/www
递归方式将 的所有权授予用户时,logan:www-data
我可以创建/修改文件,但无法查看http://localhost
。我收到禁止错误。我假设这是由于 Apache 的配置造成的?
考虑到这只是一个本地测试网站,配置 apache 让用户logan
查看网站,chmod /var/www logan:logan
这样我就可以创建文件等,而无需任何 sudo 命令,哪一个更健康或更容易;或者配置用户组让www-data
用户像我的用户一样行事更容易logan
?(我不知道这是怎么可能的,也许把www-data
用户放在logan
组下?)
请解释一下这个问题。我只想能够在我的用户下创建/修改文件,并且能够成功查看,http://localhost
非常感谢您的帮助!
答案1
以 root 身份编辑以下文件:/etc/apache2/envvars
使用以下命令:
sudo vim /etc/apache2/envvars
如果只有一个用户,则将用户和组更改为您自己,这样您就永远不会再遇到权限问题。
即,如果您仅以用户“logan”身份登录并运行服务器:
export APACHE_RUN_USER=logan
export APACHE_RUN_GROUP=logan
哎呀,我确信你可以以某种方式将该用户更改为当前用户。然后,安装 user_dir,这样你就拥有了只有你才能完全控制的网站(除非你修改它)。
重启服务器
sudo /etc/init.d/apache2 restart
如果你看到:
- 正在重新启动 Web 服务器 apache2 ... 正在等待 /var/lock/apache2 已存在但不是用户拥有的目录。请手动修复。正在中止。
您可以在重新启动 apache 之前更改 apache 锁的权限:
chown -R myuser:myuser /var/lock/apache2/
sudo service apache2 restart