estou tendo alguns problemas para direcionar meu link /var/www/
para um novo Webroot
diretório dentro da minha pasta pessoal. Eu acho que estes resultam da minha falta de compreensão das permissões do Linux.
Tanto quanto sei, os links simbólicos devem assumir a forma do diretório que você deseja vincular e do diretório ao qual você deseja vincular; portanto, no meu caso, executei:
sudo ln -s ~/Webroot/* /var/www/
isso tem espécie de trabalhado, se eu correr ls
em /var/www/
i pode ver todos os arquivos no meu Webroot
diretório.
Sempre que tento executar um arquivo que está na minha Webroot
pasta, recebo um erro de permissão 403, isso ocorre porque os arquivos no meu diretório Webroot são criados por mim e a instância do apache está sendo executada como www-data?
se for esse o caso, isso significa que eu preciso alterar as permissões em todos os arquivos criados para executá-lo?
Anteriormente, eu executei uma instância local do apache, apontando a raiz do diretório do meu vhost padrão para a Webroot
pasta; nesse caso, não precisei alterar nenhuma permissão. Qualquer ajuda seria apreciada.
fonte
Respostas:
Esta não é uma boa prática, concordo com o Weboide. Mas existe uma maneira simples de atingir esse objetivo.
1) ative o módulo apache userdir.
isso ativará o módulo apache userdir. Agora você pode colocar o conteúdo do site
~/Webroot/
dentro do diretório inicial.Nota: A pasta padrão é
~/public_html
2) Faça as alterações necessárias em
/etc/apache2/mods-enabled/userdir.conf
.3) Reinicie o apache
Agora você pode acessar o site navegando no seu navegador para http: // endereço IP / ~ nome de usuário . Você também pode definir um host virtual para este site.
Se você deseja executar arquivos php, precisa executar mais uma etapa
edite
/etc/apache2/mods-enabled/php5.conf
e comente as seguintes linhas:Em seguida, reinicie o apache.
É isso aí. Você terminou.
Ref: https: //wiki.ubuntu.com/UserDirectoryPHP
Espero que isto ajude. Se você tiver alguma dificuldade, sinta-se à vontade para publicá-lo aqui.
fonte
Esta não é uma boa prática para alcançar o que você deseja.
Se você estiver usando PHP, poderá dar uma olhada no suexec , suphp ou php-fpm e fastcgi .
Você está certo sobre o seu problema. Esse é um problema de permissão, pois seus
Webroot
arquivos pertencem a um usuário diferentewww-data
.Aqui está uma solução não tão ruim para solucionar seu problema. Observe que você provavelmente precisará usar o sudo ou fazer login como root. Certifique-se de entender completamente todos os comandos que você estará executando!
Altere sua
Webroot
pasta, subpastas e arquivos para ter a propriedade do grupo definidawww-data
e definir as permissões apropriadas:Editar: Observe que você certamente precisará executar esses comandos novamente se adicionar arquivos / pastas usando sua conta de usuário comum.
fonte
Fiz quase o mesmo com o Debian Lenny, mas mudei para o modo não-hax, configurei o apache corretamente. Mas com o link simbólico:
Eu acho que você deve verificar a permissão do ~ e do ~ / Webroot , acho que seu dir (~) está protegido contra leitura, quero dizer, você deve executar o seguinte:
Para definir as permissões corretas, use:
Acho que deveria ajudar, mas me dê mais informações sobre isso. Eu sugiro que você tire o Webroot do seu diretório, ex. a / home como eu , porque pode ser problema de segurança.
"#" significa permissão de raiz , ex. escreva sudo antes dos comandos; "$" significa permissão de usuário único
fonte
Você deve verificar as permissões não apenas sobre o seu destino, mas também sobre os pais.
fonte
Fui confrontado com este problema. Mas não gostei da ideia de alterar o grupo do meu diretório pessoal para www-data. Esse problema pode ser resolvido simplesmente modificando o arquivo de configuração do virtualHost. Basta configurar a tag Directory para incluir esses
O
Require all granted
é um novo recurso, eu acho; tendo um valor padrão dedenied
.Consulte esta página para referência: http://httpd.apache.org/docs/current/mod/core.html#directory
fonte