Permissões corretas para / var / www e wordpress

36

Eu configurei um servidor LAMP e tenho acesso via SSH e à página "funciona" de um navegador da Web de dentro da minha rede (via endereço IP) e de fora usando dyndns.

Temos alguns projetos Wordpress que estão em subdiretórios em / var / www / wordpress1 / var / www / wordpress2, etc. Não consigo acessar esses subdiretórios em um navegador para configurar o WP - ou (suponho) para ver o conteúdo em um navegador. Eu recebo um erro 403 Proibido no meu navegador.

Suponho que isso seja um problema de permissão. Você pode por favor me dizer as configurações adequadas para as permissões para:

  1. Permitir que os desenvolvedores e eu leia / escreva.
  2. para permitir o WP configurar e fazer o seu trabalho
  3. Permitir que os visitantes acessem o (s) site (s) pela web.

Também devo mencionar que as subpastas são na verdade simlinks para a pasta em outro disco rígido interno - não acho que isso faça diferença, mas achei que deveria divulgar.

total 12
drwxr-xr-x  2 root root 4096 2012-07-12 10:55 .
drwxr-xr-x 13 root root 4096 2012-07-11 20:02 ..
lrwxrwxrwx  1 root root   43 2012-07-11 20:45 admin_media ->     /root/django_src/django/contrib/admin/media
-rw-r--r--  1 root root  177 2012-07-11 17:50 index.html
lrwxrwxrwx  1 root root   14 2012-07-11 20:42 media -> /hdd/web/media
lrwxrwxrwx  1 root root   18 2012-07-12 10:55 wordpress -> /hdd/web/wordpress

Aqui está o resultado de usar chown -R www-data:www-data /var/www

total 12
drwxr-xr-x  2 www-data www-data 4096 2012-07-12 10:55 .
drwxr-xr-x 13 root     root     4096 2012-07-11 20:02 ..
lrwxrwxrwx  1 www-data www-data   43 2012-07-11 20:45 admin_media -> /root/django_src/django/contrib/admin/media
-rw-r--r--  1 www-data www-data  177 2012-07-11 17:50 index.html
lrwxrwxrwx  1 www-data www-data   14 2012-07-11 20:42 media -> /hdd/web/media
lrwxrwxrwx  1 www-data www-data   18 2012-07-12 10:55 wordpress -> /hdd/web/wordpress

Ainda não consigo acessar via navegador.

    
por dpbklyn 12.07.2012 / 18:47

4 respostas

73

Primeiro, você deve garantir que seu nome de usuário esteja incluído no www-data group. Se não, você pode adicionar seu nome de usuário como www-data group

sudo adduser $USER www-data

Depois disso, você deve alterar a propriedade de / var / www para seu nome de usuário

sudo chown $USER:www-data -R /var/www

Próxima etapa, para prática geral , você deve alterar a permissão para 755 (rwxr-xr-x), não recomendando a alteração da permissão para 777 por motivos de segurança

sudo chmod u=rwX,g=srX,o=rX -R /var/www

Relacionado a permissão específica para wordpress ou laravel ou outra estrutura, você pode ler a documentação respectivamente.

Espero que ajude ...

    
por metamorph 30.10.2012 / 11:37
3

Aparentemente, é assim que é recomendado no Ubuntu Server Guide:

Capítulo 11. Servidores da Web.

1.4. Compartilhando Permissão de Gravação

Para que mais de um usuário possa gravar no mesmo diretório, será necessário conceder a gravação. permissão para um grupo que eles compartilham em comum. O exemplo a seguir concede permissão de gravação compartilhada para / var / www / html para o grupo "webmasters"

Eu uso www-data . Basta substituir "webmasters" com o seu grupo, não se esqueça de adicionar o usuário ao grupo de curso.

sudo chgrp -R webmasters /var/www/html
sudo find /var/www/html -type d -exec chmod g=rwxs "{}" \;
sudo find /var/www/html -type f -exec chmod g=rws "{}" \;

Eu apenas testei com o Dreamweaver do meu mac desktop e carreguei e substitui arquivos adicionados arquivos etc e ele retém as permissões corretas com uma exceção, o usuário local se torna proprietário de novos arquivos juntamente com www-data, mas quaisquer arquivos criados por root no diretório html mantém sua propriedade como root, mas é editável pelo usuário local.

$ls -l
$-rw-rw-r-- 1 localUser www-data 11505 May 28 09:56 index2.html
$-rw-rwSr-- 1 root  www-data 11535 May 28 09:58 index.html

Espero que isso limpe as coisas e ajude os cansados, porque eu sei que sempre estive cansado dessa situação, mas agora está claro para mim.

Oh e eu recomendo usar sftp com chaves para acessar o seu ftp, funciona muito bem para mim e não precisa pureftp ou qualquer outro método inseguro de entregar os arquivos para o site. Há alguns bons tutoriais no site da Digital Ocean sobre como proteger seu servidor com chaves ssh:

Como Configurar a autenticação baseada em chave SSH em um servidor Linux

    
por MagicCamera 28.05.2015 / 16:00
0

Verifique se o Apache tem direitos de execução para /hdd/web/media e /hdd/web/wordpress .

Executar:

chmod o+x /root /root/site /root/site/about

Além disso, o Apache deve ser configurado para permitir o acesso ao diretório no sistema de arquivos. Isso tem que ser feito por um administrador do sistema inserindo uma diretiva nos arquivos de configuração do apache (httpd.conf).

Como o diretório real está dentro da raiz da Web, ele deve estar acessível, mas o FollowSymLinks pode não ter sido habilitado para o diretório - isso também precisa ser adicionado à diretiva.

Veja o link

    
por jasmines 13.07.2012 / 06:49
0

Lendo o guia de instalação do Ubuntu ..

chown -R www-data /usr/share/wordpress

Talvez seja mais fácil instalá-lo dessa maneira, em vez de tentar descompactar os arquivos em /var/www

link ...

qualquer maneira que o wordpress é executado no apache ... certo? se você quiser fazer isso dessa maneira .. você mostra como @metamorph an e então dê permisson em apache2 httpd.conf assim:

<VirtualHost *:80>
        ServerName site
        ServerName site.domain
        DocumentRoot /srv/www/wordpress.site

        DirectoryIndex index.php

</VirtualHost>

e, em seguida, default-server.conf .

<Directory "/srv/www/wordpress.site">
        Options None
        AllowOverride None
        Order allow,deny
        Allow from all
</Directory>

Talvez seja melhor fazer o passo a passo link

    
por maniat1k 30.10.2012 / 12:04

Tags