我有几个网站使用相同的caching天气预报,所以我希望他们都在同一个文件夹。 这似乎是最合乎逻辑的方法来做到这一点,但这个文件夹在webroot之外。 这似乎也是访问这个新文件夹最简单的方法是从webroot中的旧文件夹设置sym链接。
我担心的是我必须将新目录设置为777,因为我正在为我的PHP使用FasCGI,因此每个网站都有不同的用户。
所以,第一个问题是什么安全性的影响 – 是这样的webroot有一个777文件夹?
其次。 如果这是一个问题,最好的解决scheme是什么。
顺便说一句,这是运行Plesk 10.4的Centos 6.2服务器,如果这有什么区别。
TIA克里斯
关于安全隐患,我不能说,但我认为如果攻击者设法利用天气数据是你最小的问题。
关于权限 – 使所有Web用户成为普通组(如果他们还没有),并更改文件的所有权。 这样你可以授予只有组的访问权限。 此外,为什么networking用户需要写入文件的访问权限?
可以使用mod_alias中的Alias指令在 Apache Web服务器上的多个虚拟主机之间共享一个目录。 您需要在每个<VirtualHost>条目中放置像这样的节:
<VirtualHost *:80> ServerName example.com ServerAlias www.example.com example.org www.example.org ScriptAlias /cgi-bin/ "/path/to/webroot/.cgi-bin/" <Directory "/path/to/webroot"> Options Indexes Includes FollowSymLinks ExecCGI AllowOverride All AddHandler php5-fastcgi .php .php5 .php4 Action php5-fastcgi /cgi-bin/php5.fcgi Order allow,deny Allow from All </Directory> Alias /reports "/path/to/weather/reports" <Directory "/path/to/weather/reports"> Order allow,deny Allow from all </Directory> </VirtualHost>
这会将/path/to/weather/reports的文件映射到http://example.com/reports/这样您就可以在/path/to/weather/reports上放置更清晰的文件权限。 这个目录应该要求Apache有适当的权限才能遍历它,所以你可以按照tsurko的build议设置一个组(例如fcgiusers ),把用户添加到组中(通过运行一个像usermod -a -G fcgiusers USERNAME这样的命令)并将该组权限授予共享位置中的文件夹和文件。 这些以root用户身份运行的命令应该可以做到这一点
chown -Rv apache:fcgiusers /path/to/weather/reports; find /path/to/weather/reports -type d -exec chmod 0775 {} \; find /path/to/weather/reports -type f -exec chmod 0664 {} \;