Recentemente, configurei o Capistrano no meu servidor e ele funciona muito bem.
Mudei meus hosts virtuais para apontar para o link simbólico criado por Capistrano.
Meu arquivo de hosts virtuais:
<VirtualHost *:80>
DocumentRoot /var/www/html/my_app.com/current
ServerName my_app.com
<Directory />
Options FollowSymLinks
AllowOverride Indexes
</Directory>
</VirtualHost>
Quando eu reinicio meu servidor apache usando sudo service httpd restart
, recebo o erro:
Warning: DocumentRoot [/var/www/html/my_app.com/current] does not exist
O diretório current
definitivamente existe. Quando defino o vhost para apontar para .../my_app.com/
, ele funciona e mostra a página padrão do apache, o problema é esse link simbólico para current
(que é atualizado conforme eu implemento aplicativos usando capistrano).
Estou usando uma instância do Amazon ec2, apache 2.2 (LAMP).
Então, basicamente, como eu aponto um host virtual para um link simbólico?
Atualizar
A saída de
ls-l
:
lrwxrwxrwx 1 ec2-user ec2-user 57 Aug 28 22:40 current -> /var/www/html/my_app.com/releases/20120828223437
drwxrwxr-x 3 ec2-user ec2-user 4096 Aug 28 22:40 releases
drwxrwxr-x 6 ec2-user ec2-user 4096 Aug 28 16:01 shared
No meu httpd.conf
(comentários retirados):
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride all
Order allow,deny
Allow from all
</Directory>
Meus registros de erros:
[Wed Aug 29 00:04:39 2012] [error] [client 87.194.51.136] Symbolic link not allowed or link target not accessible: /var/www/html/my_app.com/current
[Wed Aug 29 00:04:40 2012] [error] [client 128.30.52.73] Symbolic link not allowed or link target not accessible: /var/www/html/my_app.com/current
[Wed Aug 29 00:04:40 2012] [error] [client 87.194.51.136] Symbolic link not allowed or link target not accessible: /var/www/html/my_app.com/current, referer: http://mydomain.com/
A saída de ls -l
para /var/www/html/my_app.com/releases/20120828223949
.
drwxrwxr-x 6 ec2-user ec2-user 4096 Aug 28 22:39 20120828223949
Quando eu executo o comando ls -l /var/www/html/my_app.com/current/
ls: cannot access /var/www/html/my_app.com/current/: No such file or directory
Parece um symlink morto ... Como eu corrijo isso?