Apache: chmod 755 não é suficiente para configurar o symlink ou alias no Apache httpd no Mac OS 10.5?

15

Na minha máquina Mac OS 10.5, gostaria de configurar uma subpasta de ~/Documents como ~/Documents/foo/html como link .

A primeira coisa que pensei em fazer é usar o Alias da seguinte forma:

Alias /foo /Users/someone/Documents/foo/html

<Directory "/Users/someone/Documents/foo/html">
    Options Indexes FollowSymLinks MultiViews

    Order allow,deny
    Allow from all
</Directory>

Isso me deu 403 Proibido. No error_log eu recebi:

[error] [client ::1] (13)Permission denied: access to /foo denied

A subpasta em questão tem acesso chmod 755. Eu tentei especificar curtidas como o link , mas isso também não funcionou. Em seguida, tentei a rota do link simbólico.

Entrou em /Library/WebServer/Documents e fez um link simbólico para ~/Documents/foo/html . A raiz do documento tem

Options Indexes FollowSymLinks MultiViews

Isso ainda me deixou 403 Proibido:

Symbolic link not allowed or link target not accessible: /Library/WebServer/Documents/foo

O que mais eu preciso para configurar isso?

Solução :

$ chmod 755 ~/Documents

Em geral, a pasta a ser compartilhada e toda a sua pasta ancestral precisam ser visualizadas pelo usuário www service.

    
por Eugene Yokota 29.06.2009 / 03:24

5 respostas

24

Aposto que algum diretório acima do que você deseja acessar não tem permissões para permitir que o Apache o percorra. Torne-se o usuário que o Apache está executando como ( sudo -i -u apache ou qualquer outro) e tente mudar para o diretório de interesse e ls it. Se você não puder (como esperado), tente entrar nos diretórios acima dele, um por um, até que um permita entrar. O subdiretório disso é aquele que precisa ter o+x set. Ensaboar, enxaguar, repetir conforme necessário.

    
por 29.06.2009 / 03:31
2

Use +FollowSymlinks

Alias /foo /Users/someone/Documents/foo/html

<Directory "/Users/someone/Documents/foo/html">
    Options +Indexes +FollowSymLinks +MultiViews

    Order allow,deny
    Allow from all
</Directory>
    
por 29.06.2009 / 04:24
1

Verifique se o cofre de arquivos não está ativado. Eu tive o mesmo problema. Eu tentei tudo o mais que pude encontrar. Nada funcionou. Mas depois de uma hora tentando descobrir isso, lembrei que tinha o cofre de arquivos ativado.

Desativar resolveu o problema.

    
por 13.02.2012 / 23:59
1

Verifique a propriedade do link simbólico. Como você está no Mac OS X, os proprietários de links simbólicos podem ser alterados. Em /Library/WebServer/Documents do ls -l

Se o seu link simbólico para ~/Documents/foo/html for chamado foo e tiver permissões como

lrwxr-xr--  1 root  wheel 27  2 Nov 17:00 foo -> /Users/username/Documents/foo/html

Então, por padrão, no OS X, o Apache é executado como o usuário _www e o grupo _www, portanto, no caso mencionado acima, ele não poderá passar o symlink para ~/Documents/foo/html

Execute man 8 chown no seu terminal do sistema, ou veja-o online homem chown

Você verá que usar a opção -h alterará a propriedade do próprio link simbólico, em vez do arquivo para o qual ele aponta (sua origem). Então você pode fazer algo parecido com

sudo chown -h :_www foo 

Isso mudará o simlink para

lrwxr-xr--  1 root  _www 27  2 Nov 17:02 foo -> /Users/username/Documents/foo/html

e o grupo _www do Apache será capaz de percorrer o link.

    
por 02.11.2013 / 07:10
0

Verifique o seu diretório / Users (ls -l / Users) para ver os direitos do seu usuário (alguém). O diretório 'Sites' também está disponível corretamente em localhost / ~ someone?

    
por 29.06.2009 / 03:29