Como permitir acesso a um link simbólico no meu ~ / Sites / for Apache no Mac OS X Lion 10.7.2

11

Eu preciso permitir acesso a um diretório ligado ao sym dentro de ~ / Sites do meu Apache. Eu criei Symlink em diretórios como este

ln -s ~/path/to/the/source/directory/ ~/Sites/source-link-here

Agora, sempre que eu faço um pedido GET, recebo uma resposta 403

curl http://localhost/~username/source-link-here/
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /~username/source-link-here
on this server.</p>
...

Como posso dizer ao Apache para permitir o acesso ao diretório com link simbólico e como eu digo ao Apache para permitir isso apenas para solicitações disparadas do host local.

Qualquer ajuda é muito apreciada.

Atenciosamente

robertj

    
por robertj 01.11.2011 / 11:49

5 respostas

9

Aqui está uma postagem de um blog que escrevi quando estava tentando descobrir como fazer exatamente o que você está tentando fazer.

  1. Ative o Compartilhamento da Web no MAC indo até Preferência do sistema - > Compartilhamento - > Marque Ativar Compartilhamento na Web
  2. Edite seu arquivo username.conf localizado em / private / etc / apache2 / users e adicione a diretiva “FollowSymLinks”:

    <Directory "/Users/yourUserName/Sites/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
    
  3. Edite o arquivo /private/etc/apache2/httpd.conf e certifique-se de que a linha em “# hosts virtuais” não seja comentada, assim:

    Include /private/etc/apache2/extra/httpd-vhosts.conf
    
  4. Edite o arquivo /private/etc/apache2/extra/httpd-vhosts.conf e adicione:

    <VirtualHost *:80>  
        <Directory /Users/yourUserName/Sites/MyWebSite.com>
            Options +FollowSymlinks +SymLinksIfOwnerMatch
            AllowOverride All
        </Directory>
      DocumentRoot /Users/yourUserName/Sites/MyWebSite
      ServerName MyWebSite.local
    </VirtualHost>
    
  5. Edite o arquivo / etc / hosts e adicione isso no topo:

    127.0.0.1 MyWebSite.local
    
  6. Crie um link simbólico para vincular seu diretório de código a um no diretório Sites.

    ln -s ~/Code/MyWebSite ~/Sites/MyWebSite
    
  7. Reinicie o apache

por 30.11.2011 / 13:00
1

Na verdade, apenas os dois primeiros passos da resposta do Emjay, além de um reinício do apache, são necessários, eis o que funcionou para mim:

  1. Ativar Compartilhamento da Web no MAC indo até Preferência do sistema - > Compartilhamento - > Verifique o Compartilhamento da Web ativado

  2. Edite o arquivo username.conf localizado em /private/etc/apache2/users e adicione a diretiva FollowSymLinks :

    <Directory "/Users/yourUserName/Sites/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
    
  3. verifique sua configuração do apache

    sudo apachectl -t

  4. reinicie o apache

    sudo apachectl restart

Agora o Apache exibirá os links simbólicos no diretório Sites .

    
por 25.05.2013 / 15:21
1

Eu estava recebendo 403 forbidden error. O que resolveu meu problema é em httpd-vhosts.conf , eu troquei a configuração abaixo

<Location "/modulename">
  Order allow,deny
  Allow from all
</Location>

com

<Location "/modulename">
  Require all granted
</Location>

Fez o mesmo para todas as tags de localização. Resolveu o problema da permissão.

    
por 17.03.2015 / 00:27
0

Options FollowSymLinks no httpd.conf para o contêiner apropriado

  1. Encontre a string DocumentRoot no conf, lembre-se de que é um valor. Verifique o conteúdo da seção <Directory "docroot here">...</Directory> para a sequência Opções. Se Opções estiverem faltando - adicione string Options FollowSymLinks , se existir, mas não tiver FollowSymLinks - adicione este parâmetro para ter smth como Options Indexes FollowSymLinks . Reinicie o Apache depois de modificar a configuração. Resultado do teste, escreva aqui

  2. Leia documentos do Apache

por 01.11.2011 / 12:49
0

Às vezes acontece se:

  • Sua pasta de origem está em um sistema de arquivos NTFS
  • Se você estiver usando uma pasta já criada, com permissões diferentes, provavelmente de um proprietário ou instalação anterior.

Eu resolvi esse problema criando uma nova pasta em um sistema de arquivos ext4 e criando um link simbólico para /var/www .

    
por 05.07.2012 / 01:14