La configuración básica de Nginx en CentOS 7 es sencilla. Modifique el archivo de configuración para definir rutas de error personalizadas. Por ejemplo, establezca páginas específicas para errores 404 y 403 en un archivo 40x.html, y para errores 500 en 50x.html, permitiendo una presentación personalizada de errores.
Al instalar Nginx mediante compilación, el inicio con el sistema puede requerir un script de servicio. A continuación, se muestra un script de init.d modificado para este propósito:
#!/bin/sh
# Script de servicio para Nginx compilado
# chkconfig: - 85 15
# description: Servidor web Nginx
# processname: nginx_custom
# config: /opt/nginx/conf/nginx.conf
# pidfile: /var/run/nginx_custom.pid
. /etc/rc.d/init.d/functions
. /etc/sysconfig/network
[ "$NETWORKING" = "no" ] && exit 0
nginxBin="/opt/nginx/sbin/nginx"
servicio=$(basename $nginxBin)
configFile="/opt/nginx/conf/nginx.conf"
lockfile=/var/lock/subsys/nginx_custom
iniciar() {
[ -x $nginxBin ] || exit 5
[ -f $configFile ] || exit 6
echo -n $"Iniciando $servicio: "
daemon $nginxBin -c $configFile
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
detener() {
echo -n $"Deteniendo $servicio: "
killproc $servicio -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
}
reiniciar() {
probar_config || return $?
detener
sleep 1
iniciar
}
recargar() {
probar_config || return $?
echo -n $"Recargando $servicio: "
killproc $nginxBin -HUP
retval=$?
echo
}
forzar_recarga() {
reiniciar
}
probar_config() {
$nginxBin -t -c $configFile
}
estado() {
status $servicio
}
estado_quieto() {
estado >/dev/null 2>&1
}
case "$1" in
start)
estado_quieto && exit 0
iniciar
;;
stop)
estado_quieto || exit 0
detener
;;
restart|configtest)
$1
;;
reload)
estado_quieto || exit 7
recargar
;;
force-reload)
forzar_recarga
;;
status)
estado
;;
*)
echo $"Uso: $0 {start|stop|status|restart|reload|force-reload|configtest}"
exit 2
esac
Guarde este script como /etc/init.d/nginx_custom, asigne permisos ejecutables y regístrelo con chkconfig:
sudo chmod 755 /etc/init.d/nginx_custom
sudo chkconfig --add nginx_custom
Posteriormente, gestione el servicio con comandos como sudo service nginx_custom start o sudo service nginx_custom stop. En algunos casos, puede ser necesario detener procesos directaemnte con sudo kill -QUIT $(cat /var/run/nginx_custom.pid).
Para el soporte de PHP, instale PHP-FPM mediante el gestor de paquetes:
sudo yum install php-fpm
Ajuste la configuración de PHP en /etc/php.ini; por ejemplo, active la directiva cgi.fix_pathinfo eliminando el punto y coma inicial si está presente. Es recomendable crear una copia de seguridad antes de modificar:
sudo cp /etc/php.ini /etc/php.ini.original
sudo sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=1/' /etc/php.ini
Edite el archivo de configuración del pool de PHP-FPM, comúnmente /etc/php-fpm.d/www.conf, para establecer el usuario y grupo adecuados. Modifique las líneas user = y group = según los permisos requeridos:
sudo cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf.original
sudo sed -i 's/^user = apache/user = mi_usuario/' /etc/php-fpm.d/www.conf
sudo sed -i 's/^group = apache/group = mi_grupo/' /etc/php-fpm.d/www.conf
Inicie el servicio PHP-FPM y configure su arranque automático:
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
Finalmente, reinicie Nginx para aplicar los cambios. Si utiliza el script de servicio personalizado, ejecute sudo service nginx_custom restart; de lo contrario, use sudo systemctl restart nginx si Nginx está integrado con systemd.
Verifique el funcionamianto creando un archivo de prueba PHP en el directorio raíz web y accediendo mediante el navegador.