Que permissões devo dar / var e / media?

Respostas:

18

Não vejo muitas menções ao uso de 700 e 600, mas geralmente é um bom conselho. Infelizmente, todas as configurações de servidor são diferentes e precisam ser comparadas à conveniência (acesso do usuário para atualizar / editar arquivos).

A abordagem subjacente deve ser doar apenas o mínimo possível e bloqueá-lo o máximo possível (700/600 é bom para isso). Nesse sentido, o conselho "oficial" do wiki deseja aplicar-se ao maior número possível de circunstâncias e sugere permissões de leitura para todos (o que significa que qualquer outro serviço comprometido no servidor poderá, por exemplo, ler app / etc / local. xml com sua configuração de db).

No seu caso, atualmente parece que os arquivos pertencem a um usuário diferente daquele em que o processo do servidor da web / php é executado. Alterar a propriedade dos arquivos para o servidor da web deve resolver o problema original.

Observe que usar o 700/600 e atribuir os arquivos ao servidor da Web significa que o usuário normal não poderá editar os arquivos.

O abaixo eu sinto é um bom compromisso por conveniência vs bloquear. Todos os arquivos pertencem ao usuário: webservergroup

var e mídia 770/660
O servidor e seu usuário podem ler e gravar nas pastas var e mídia (sessão / cache / imagens).

o restante 750/640
Seu usuário pode editar / atualizar o código.
O servidor da web é capaz de ler os arquivos para execução / exibição.

Kristof na Fooman
fonte
2
Quase dois anos depois, e agora eu concordo com isso mais do que minha própria resposta.
philwinkle
Percebi que nunca havia respondido a isso, e o problema que eu estava enfrentando era que os arquivos não eram de propriedade do servidor da web. Eu também estava pedindo para esclarecer as permissões para obter uma prática padrão, pois estava lendo coisas diferentes.
Egregory
18

Em geral, todos os arquivos devem estar 644e todas as pastas deve ser 755e deve ser propriedade do usuário seu servidor web é executado sob . O mageexecutável deve receber 550permissões para permitir a execução.

Esse script de shell deve corrigir as coisas se for executado a partir da raiz do Mage:

#!/bin/sh
find . -type f -exec chmod 644 {} \;
find . -type d -exec chmod 755 {} \;
chmod 550 mage

Fonte: http://www.magentocommerce.com/wiki/groups/227/resetting_file_permissions

philwinkle
fonte
5

Enquanto a solução de Phil é boa, uso uma abordagem um pouco diferente. Além de tornar o usuário "php / webserver user" proprietário dos arquivos, eu crio um grupo adicional. Geralmente é chamado dev . E adiciono "usuário php" e eu e outros desenvolvedores a esse grupo dev . Então eu faço o chgrp para que todos os arquivos na subárvore do projeto Magento tenham o grupo dev . Eu adiciono + s bit às pastas que garantem que as subpastas recém-criadas tenham as mesmas permissões.

Eu criei uma essência pública com meu script fix_permissions.sh. Sinta-se à vontade para usá-lo :) Ajuda a manter toda a sua subárvore do projeto Magento com boas permissões.

https://gist.github.com/svenvarkel/8062778#file-fix_permissions-sh

A pergunta original - var e mídia deve ter essas permissões que "o usuário php" possa ler e gravar nessas pastas. Ele deve ser capaz de gravar cache, arquivos de sessão etc. em var e deve ser capaz de gravar cache de imagens do produto e imagens na mídia. Faça o que Phil aconselha: chown ou chgrp para "php user" e dê permissões de rw para "php user".

Eu acho que é mais correto se referir ao "usuário php" no contexto do FPM (CGI). O usuário do servidor da Web pode ser diferente daquele que está executando o PHP.

Sven
fonte
3
Você está absolutamente correto no que diz respeito à terminologia entre usuário do servidor web e usuário php. Ótimo ponto. No entanto, é preciso se perguntar se uma pessoa que pergunta como alterar permissões saberia se estava executando o PHP FPM ou não ...
philwinkle
1

/ var - magento usa para escrever dados de cache, sessão etc.

/ media - uso do magento para atualizar imagem de produto, imagem de categoria (qualquer tipo de imagem).

Portanto, você deve usar essas duas pastas para usar a permissão de leitura + gravação. Outro arquivo que você deve usar permissão de leitura + execução.

Sohel Rana
fonte
1

A permissão do arquivo é 644. Execute o código abaixo no diretório raiz usando o ssh. encontrar .

-type f -exec chmod 644 {} \;

A permissão da pasta é 755. Execute o código abaixo no diretório raiz usando o ssh. encontrar .

-type d -exec chmod 755 {} \;

A permissão da pasta Var é 777. Execute o código abaixo no diretório raiz usando o ssh.

chmod -R 777 var

A permissão de pasta estática é 777. Execute o código abaixo no diretório raiz usando o ssh.

chmod -R 777 pub/static

A permissão da pasta de mídia é 777. Execute o código abaixo no diretório raiz usando o ssh.

chmod -R 777 pub/media
Abhinav Singh
fonte
2
Acima não é o OP pediu, isto é para Magento não 2.x para Magento 1.7
Frank Groot
0

A partir daqui: http://devdocs.magento.com/guides/m1x/install/installer-privileges_after.html

find . -type f -exec chmod 400 {} \;
find . -type d -exec chmod 500 {} \; 
find var/ -type f -exec chmod 600 {} \; 
find media/ -type f -exec chmod 600 {} \;
find var/ -type d -exec chmod 700 {} \; 
find media/ -type d -exec chmod 700 {} \;
chmod 700 includes
chmod 600 includes/config.php
Ledian Hymetllari
fonte