2015-04-14 12 views
8

Non riesco a trovare un modo per configurare php-fpm su nginx sull'istanza Amazon AMI EC2 da zero. So che questo non dovrebbe essere così difficile, ma trovare risposte diverse basate sulle versioni * nix è fonte di confusione.Come impostare in modo coerente PHP-FPM 5.6 con nginx sull'istanza AMI Amazon EC2

Ecco i passaggi concisi che ho pensato che avrebbero funzionato, ma non lo sono. Qualcuno ha una serie di passaggi per configurare in modo affidabile php-fpm con nginx nell'istanza Amazon AMI EC2?

Ho intenzionalmente omesso nginx.conf, ecc. Da questo post poiché sono le installazioni "stock" dai repository yum predefiniti.

versione nginx: 1.6.2

Qualcuno ha passi affidabili per configurare php-fpm in nginx per le istanze di EC2 di Amazon AMI? Preferirei impostare me stesso invece di utilizzare l'AMI nel mercato Amazon che addebita questa configurazione.

Grazie

# install packages 
yum install -y nginx 
yum install -y php56-fpm.x86_64 

# enable php in nginx.conf 
vi /etc/nginx/nginx.conf 
# add index.php at the beginning of index 
    index index.php index.html index.htm; 

# uncomment the php block in nginx.conf 
    location ~ \.php$ { 
     root   html; 
     fastcgi_pass 127.0.0.1:9000; 
     fastcgi_index index.php; 
     fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; 
     include  fastcgi_params; 
    } 

# tell php-fpm to run as same account as nginx 
vi /etc/php-fpm-5.6.d/www.conf 
- change user and group apache to nginx 

# allow nginx user to read website files since they are typically owned by root 
cd /usr/share/nginx 
chown -R nginx:nginx html 

# check to see if php works - doesn't with these steps 
echo "<?php phpinfo(); ?>" > /usr/share/nginx/info.php 

# restart services since we changed things 
service nginx restart 
service php-fpm-5.6 restart 

# verify root path exists and is owned by nginx as we said above 
# ls -l /usr/share/nginx/html 
-rw-r--r-- 1 nginx nginx 3696 Mar 6 03:53 404.html 
-rw-r--r-- 1 nginx nginx 3738 Mar 6 03:53 50x.html 
-rw-r--r-- 1 nginx nginx 3770 Mar 6 03:53 index.html 
-rw-r--r-- 1 nginx nginx 20 Apr 14 14:01 index.php 

# I also verified php-fpm is listening on port 9000 and nginx is setup that way in the nginx.conf 
# port 9000 usage is the default and I left it as-is for this question, but I would prefer to use sock once I get this working. 

Modifica

Questo è quello che vedo nel log degli errori nginx

2015/04/14 17:08:25 [error] 916#0: *9 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, 
client: 12.34.56.78, server: localhost, request: "GET /index.php HTTP/1.1", 
upstream: "fastcgi://127.0.0.1:9000", host: "12.34.56.90" 
+0

fatto questo mai si risolvono? –

risposta

1

Cosa vedi nel nginx log degli errori (/ var/log/nginx/errors.log)?

Aggiunto dopo informazioni aggiuntive (tronchi) di cui:

A me sembra di root non deve essere la sezione server di localizzazione.

server { 
... 
    root /usr/share/nginx/html; 
    ... 
    location ~ \.php$ { 
     fastcgi_pass 127.0.0.1:9000; 
     fastcgi_index index.php; 
     fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; 
     include  fastcgi_params; 
    } 
} 
+0

Domanda aggiornata con queste informazioni. –

0

Dove si trova il file index.php? Se è qui:

/usr/share/nginx/html/index.php 

quindi modificare questa linea

fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; 

a:

fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;