Hosts virtuais e links simbólicos, por que não consigo definir o DocumentRoot como um link simbólico?

Hosts virtuais e links simbólicos, por que não consigo definir o DocumentRoot como um link simbólico?

Recentemente configurei o Capistrano no meu servidor e 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 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 currentdiretório definitivamente existe. Quando configuro 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 implanto aplicativos usando capistrano).

Estou usando uma instância do Amazon EC2, Apache 2.2 (LAMP).

então, basicamente, como 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

Nos meus 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 -lfor /var/www/html/my_app.com/releases/20120828223949.

drwxrwxr-x 6 ec2-user ec2-user 4096 Aug 28 22:39 20120828223949

Quando executo o comandols -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 link simbólico morto... Como faço para corrigir isso?

Responder1

De acordo com meu comentário e seu acompanhamento, parece que seu currentlink simbólico não aponta para um alvo válido; remova-o e adicione-o novamente:

$ rm -f /var/www/html/my_app.com/current
$ ln -s /var/www/html/my_app.com/{releases/20120828223949,current}

informação relacionada