É possível compartilhar um diretório entre vários hosts virtuais em um servidor Apache usando o Alias
diretiva em mod_alias . Você precisaria colocar algo como esta sub-rotina em cada entrada <VirtualHost>
da seguinte forma:
<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>
Isso mapearia os arquivos em /path/to/weather/reports
para http://example.com/reports/
, para que você possa colocar as permissões de arquivos mais limpos em /path/to/weather/reports
. O diretório deve requerer permissões adequadas para o Apache atravessá-lo, para que você possa seguir a recomendação do tsurko e configurar um grupo (por exemplo, fcgiusers
), adicionar os usuários ao grupo (executando um comando como usermod -a -G fcgiusers USERNAME
) e as permissões do grupo para as pastas e arquivos no local compartilhado. Esses comandos executados com privilégios de root devem funcionar:
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 {} \;