Ubuntu 12.04 php PEAR pacote problema

2

Estou usando o servidor LAMP no meu sistema Ubuntu 12.04. Antes deste tempo eu instalei o prestashop sem nenhum problema. Mas depois de muito tempo quando tentei instalar o prestashop hoje, ele realmente me mostrou um erro estranho. O erro é assim:

Warning: require(/var/www/Prestashop/config/config.inc.php): failed to open stream: Permission denied in /var/www/Prestashop/index.php on line 27 Fatal error: require(): Failed opening required '/var/www/Prestashop/config/config.inc.php' (include_path='.:/usr/share/php:/usr/share/pear/PEAR') in /var/www/Prestashop/index.php on line 27

Para isso, decidi depurar o erro, então passei por muitos blogs e fóruns e verifiquei meu arquivo php.ini. O arquivo é como este .

Depois de passar por muitos blogs, alguém disse que o erro é para o pacote php pear. O link é aqui .

Depois disso, eu acabei de editar meu php.ini pear url assim:

;UNIX: "/path1:/path2"
include_path = ".:/usr/share/php:/usr/share/php/PEAR"

Depois disso, reiniciei meu servidor apache, mas não funcionou para mim. O mesmo erro está chegando. Então, alguém pode gentilmente me dizer qual é o problema aqui? e como resolver isso?

    
por newuser 16.08.2013 / 09:27

2 respostas

2

O erro é produzido pela função require() . Esta função irá parar o script php quando:

  • o arquivo fornecido (no seu caso /var/www/Prestashop/config/config.inc.php file) não existe ou
  • quando o usuário que chama a função não tem permissão para ler esse arquivo.

De acordo com:

Warning: require(/var/www/Prestashop/config/config.inc.php): failed to open stream: Permission denied in /var/www/Prestashop/index.php on line 27

seu problema cai no segundo caso. Para evitar isso, você precisa alterar as permissões do arquivo /var/www/Prestashop/config/config.inc.php para permitir que outros usuários leiam o arquivo. Você pode fazer isso executando o seguinte comando no terminal:

chmod +r /var/www/Prestashop/config/config.inc.php

Se o erro aparecer depois para outros arquivos também, siga o mesmo método para alterar as permissões.

Verifique também as permissões do diretório config . Estes devem ser algo como: drwxr-xr-x . Se não, use este comando no terminal:

chmod +rx /var/www/Prestashop/config
    
por Radu Rădeanu 22.08.2013 / 10:13
0

As permissões no diretório /var/www/Prestashop/config estão erradas . Eles são drwx------ , o que significa que SOMENTE o usuário newuser pode acessá-los. O servidor web é executado como www-data e obviamente não pode acessar seu diretório de configuração.

Não há absolutamente nenhum dano em adicionar permissões de leitura ao grupo e a todos.

chmod +rx /var/www/Prestashop/config

Pode ser considerado um problema de segurança adicionar permissão de gravação ao diretório, mas isso também é discutível, pois /tmp/ está sempre acessível e softwares mal-intencionados tendem a usá-lo como um diretório de suporte.

Claro, não dê acesso de gravação aos próprios arquivos, pois esse seria um problema de segurança.

Se você realmente não quiser torná-lo legível para o mundo, você pode alterar o proprietário para www-data

sudo chown www-data /var/www/Prestashop/config

isso deve ser suficiente, pois os arquivos dentro do diretório são legíveis por todo o mundo (exceto pela pasta xml que novamente precisa da propriedade ou das permissões corretas).

    
por Cubiq 27.08.2013 / 11:24