configurando o nginx com o django e o php no aws

1

Estou tentando configurar o nginx para o aplicativo django e php no AWS / Linux AMI. O Nginx já foi configurado para trabalhar simultaneamente com vários aplicativos do django e tudo funciona bem.

Agora preciso incluir a solução de terceiros com base no php. Isso deve funcionar em url / traço separado / .

Eu passei por muitos tutoriais e respostas de "pilha", mas nenhum funcionou para mim.

Eu já instalei o php e o php-fpm. Eu modifiquei o arquivo de configuração em /etc/php-fpm-5.5.d/www.conf e tentei usar o socket e o TCP / IP:

listen = 127.0.0.1:9000

e também

listen = /var/run/php-fpm.sock

Depois de reiniciar o serviço php-fpm, verifiquei se o socket realmente foi criado. Então eu modifiquei o nginx de acordo:

location ~ /dash/$ {
    try_files $uri =404;
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    #fastcgi_pass   127.0.0.1:9000;
    fastcgi_pass unix:/var/run/php-fpm.sock;
    fastcgi_index  index.php;
    include        fastcgi_params;
}

Eu criei o arquivo test.php para testar o php e também coloquei a solução de terceiros no / usr / share / nginx / html /. Quando tento visitar o link , recebi um erro 404 (ou recebi uma página em branco, se eu removesse a configuração try_files ). No entanto, quando tento visitar o link ou link , o navegador me oferece um arquivo para download - o arquivo index.php real que eu esperava para produzir o html para mim. Eu recebo o mesmo resultado usando o wget.

service php-fpm status claims php-fpm-5.5 (pid 12345) is running... , então eu supus que os arquivos php deveriam ser processados.

Eu já tentei alterar a configuração do php-fpm alterando os atributos listen.owner e list.group , bem como user e group para nobody , ec2-user ou nginx , mas ainda recebo os mesmos 404.

Eu já tentei o parâmetro %código% mas como não tinha certeza do que exatamente deveria estar aqui, removi-o. Suponho que agora usamos o padrão do arquivo fastcgi_param SCRIPT_FILENAME ... : fastcgi_param

Se você vir algum erro óbvio ou algo que eu ignoro, por favor me avise. Peço desculpas pela terminologia errada, se houver alguma.

    
por Juraj Bezručka 06.08.2017 / 23:14

1 resposta

1

Seu location precisa processar os URIs que terminam com .php . Se sua configuração está baixando seus arquivos PHP, você provavelmente já tem o root configurado corretamente.

Muitas instalações têm um valor adequado para SCRIPT_NAME dentro do arquivo fastcgi_params incluído, mas o exemplo abaixo mostra explicitamente (apenas no caso).

Por exemplo:

root ...;

location ~ \.php$ {
    try_files $uri =404;
    #fastcgi_pass  127.0.0.1:9000;
    fastcgi_pass   unix:/var/run/php-fpm.sock;
    include        fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME $request_filename;
}    

As diretivas fastcgi_split_path_info e fastcgi_index não são obrigatórias neste caso. Sempre coloque fastcgi_param declarações após a declaração include , caso contrário suas diretivas poderão ser silenciosamente substituídas.

    
por 07.08.2017 / 10:55