Red de conocimiento informático - Material del sitio web - Cómo configurar Nginx PHP correctamente

Cómo configurar Nginx PHP correctamente

Para muchas personas configurar PHP en Nginx no es más que buscar un tutorial para luego copiarlo y pegarlo. Parece que no tiene nada de malo, pero de hecho, mucha información en Internet está en mal estado y llena de lagunas. Si simplemente copia y pega sin buscar una comprensión más profunda, tarde o temprano pagará el precio.

Supongamos que usamos PHP para implementar un controlador front-end, o para decirlo sin rodeos, es una entrada unificada: enviamos todas las solicitudes PHP al mismo archivo y luego implementamos el enrutamiento analizando "REQUEST_URI" en este archivo.

En este momento, muchos tutoriales le enseñarán a configurar Nginx PHP de esta manera:

servidor {

escuche 80;

server_name foo.com;

raíz /ruta;

ubicación / {

índice index.html index.htm index.php;

if (!- e $request_filename) {

reescribir ./index.php último;

}

}

ubicación ~ . php$ {

incluye fastcgi_params;

fastcgi_param SCRIPT_FILENAME /path$fastcgi_script_name;

fastcgi_pass 127.0.0.1:9000;

índice fastcgi_index .php;

}

Aquí hay muchos errores, o al menos malos gustos. Echa un vistazo y encontrarás algunos.

Primero debemos comprender la relación de herencia de las instrucciones en el archivo de configuración de Nginx: el archivo de configuración de Nginx se divide en muchos bloques, los más comunes de afuera hacia adentro son ";

p>

raíz /ruta;

index index.html index.htm index.php;

ubicación / {

try_files $uri $uri/ /index.php;

}

ubicación ~ .php$ {

try_files $uri =404;

incluye fastcgi.conf ;

fastcgi_pass 127.0.0.1: 9000;

}

}

De hecho, todavía hay Algunas fallas, principalmente "try_files" No es compatible con "fastcgi_split_path_info". Aunque se puede solucionar, la solución es fea, por lo que no entraré en detalles.

Suplemento: debido a que la "ubicación" ha sido limitada, "fastcgi_index" en realidad no es necesario.