有人告诉我应该创建一个 images 文件夹和一个 assets 文件夹,并且我需要确保“它们是 apache 可写的”。我还被告知要使 app/runtime 目录可由 web 写入。这是否与 apache 可写相同?如果是:
我怎样才能立即做到这一点,或者知道这一点?
执行时ls -l
我得到了类似的东西:
drwxr-xr-x 13 user user 4096 2011-08-26 10:23 app
drwxr-xr-x 4 user user 4096 2011-08-26 10:23 runtime
drwxr-xr-x 2 user user 4096 2011-08-26 11:11 images
drwxr-xr-x 2 user user 4096 2011-08-26 11:12 assets
答案1
Apache 是一个在后台运行的程序。Apache 最初由用户root
(也称为root-process
)启动。这root-process
会启动几个处理客户端请求的子进程。出于安全原因,子进程不是由用户运行的root
,而是由具有最低权限的用户运行的。通常这个用户名为apache
或www-data
。
要找出 apache v1 中的哪个用户:
ps -ef | grep httpd | grep -v grep
或者对于 Apache v2:
ps -ef | grep apache | grep -v grep
Apache 2 的结果将是这样的:
root 5001 1 0 07:21 ? 00:00:00 /usr/sbin/apache2 -k start www-data 5021 5001 0 07:21 ?00:00:00 /usr/sbin/apache2 -k 启动 www-data 5022 5001 0 07:21?00:00:00 /usr/sbin/apache2 -k 启动 www-data 5023 5001 0 07:21?00:00:00 /usr/sbin/apache2 -k 启动
在这种情况下,用户/组是www-data
因此,为了使目录可由 Web 服务器写入,我们必须将目录的所有者或组设置为 Apache 的所有者或组,并为其启用写入权限。通常,我们将目录设置为属于 Apache 组(apache
或“www-data”或用于启动子进程的任何用户),并为该组启用写入权限。
chgrp www-data /path/to/mydir
chmod g+w /path/to/mydir
(www-data
是您使用上面的命令找到的名称ps
)。
关于:
2) 我还被告知要将 app/runtime 目录设置为 web 可写。这和 apache 可写一样吗?
是的,您需要将此目录设置为 Apache 期望的组可写。它可能位于某个位置,/var/www/
或者它被设置为虚拟主机/etc/apache2/sites-enabled/
和/或/etc/apache2/sites-available