Não é possível configurar o Nginx com o PHP no Arch linux

2

Eu tentei configurar um servidor LEMP (Nginx, PHP, MySQL) no Arch Linux por um tempo, e tentei alguns tutoriais online diferentes. Mais recentemente, tentei: link … mysql-php /.

Esse tut me pede para criar um arquivo separado do php.conf em / etc / nginx / e adicionar:

location ~ \.(php|html|htm)$ {
  try_files      $uri = 404;
  fastcgi_pass   unix:/run/php-fpm/php-fpm.sock;
  fastcgi_index  index.php;
  include        fastcgi.conf;
}

adicione a /etc/nginx/nginx.conf, iside a classe do servidor: include php.copf;

primeiro eu vou em http://localhost , para testar para ter certeza de que o Nginx está rodando, e então eu testei http://localhost/phpinfo.php e obtive um erro 404, eu limitei o nginx (sem erros), e reiniciei o php-fpm até reiniciei meu sistema). ainda recebendo o 404.

O tutorial dizia para colocar um arquivo phpinfo.php /srv/http/phpinfo.php, mas ao olhar para o nginx.conf eu vejo:

location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
}

Então eu tentei em /usr/share/nginx/html/phpinfo.php e ainda obter um 404

    
por Daniel Toebe 09.12.2013 / 19:04

2 respostas

4

No diretório /srv/http , crie um arquivo phpinfo.php que contenha

<? phpinfo(); ?>

Em seguida, modifique seu arquivo /etc/nginx/nginx.conf

server {
    listen       80;
    server_name  localhost;
    root         /srv/http;

    location / {
        index  index.html index.htm index.php;
    }

    location ~ \.php$ {
        fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        include /etc/nginx/fastcgi.conf;
    }
}

Por fim, reinicie nginx e php-fpm e tente o seguinte URL url http://localhost/phpinfo.php E isso deve funcionar!

    
por 10.12.2013 / 12:26
1

Em relação ao teste da instalação com phpinfo() , recomendo usar <?php para o parêntese de abertura, porque <? nem sempre funciona dependendo de como o seu php vem configurado por padrão.

Certifique-se de que o especificador 'root' esteja diretamente sob 'server', como está sob o primeiro 'location' na configuração padrão.

Eu também tive que modificar o valor /php/php.ini do especificador open_basedir para incluir o caminho para a raiz do site.

Isso está no Arch Linux com o php 5.5.13-1, o php-fpm 5.5.13-1 e o nginx 1.6.0-4.

Minha configuração do nginx:

server {
    listen       80;

    server_name  sitename.domain;

    error_log    /var/log/nginx/error.log info;

    root   /srv/www/sitename;

    location / {
        index  index.html index.htm index.php;
    }

    location ~ \.php$ {
        fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index  index.php;
        include        fastcgi.conf;
    }
}

Meu /etc/php/php.ini :

...
open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/srv/www/
...

E ao testar com um navegador da Web, certifique-se de não recarregar a partir do cache do navegador cada vez que você tentar recarregar a URL para o arquivo php, ou o navegador continuará pensando que seu arquivo php é um recurso armazenado simples tentando salvá-lo como um download de arquivo regular. Isso pode acontecer por padrão no Chrome / Chromium 34, a menos que você tenha o DevTools aberto e com a configuração "Desativar cache (enquanto o DevTools estiver aberto)" ativada. Na minha experiência, o Firefox 24.5 funcionou melhor para testar a obtenção do php ativado.

    
por 12.06.2014 / 02:34