Frambuesa Pi : instalar Nginx con soporte PHP, CGI y Tim

Ahora es el momento de instalar a un servidor Web para diversos servicios como monitoreo, Descargar, OwnCloud o un servidor de música. Esto es lo que veremos con la implementación de NGinx.

Raspberry Pi Home Server – Etape 11 : installer Nginx avec support PHP, CGI et SCGI

Para nuestro servidor Web, el objetivo es tener un apoyo de diferentes tecnologías para no estar limitada. Además de Nginx, ¡ Instalar php - fpm, fcgiwrap y SCGI apoyo (para la interfaz web para rtorrent). Desde la versión 0.8.42, el módulo SCGI incluido no es necesario volver a compilar todo (Ufff !)

Para aquellos que quieren una comparación de servidores web diferentes, Usted puede ver artículo aquí.

  1. Instalar paquetes adicionales
    apt - get install php5-fpm xpm-libgd2 libpcrecpp0 libxpm4
  2. Instalar Nginx
    apt - get install nginx
  3. Cree el directorio /var/www
    mkdir/var/www chown -R www-data:www - data/var/www
  4. Crear un archivo index.php en /var/www con el siguiente contenido :
    <?php phpinfo();
    ?>
  5. Editar el/etc/nginx/sitios-disponible/archivo predeterminado mediante la sustitución de los viejos valores por su configuración. Aquí por ejemplo :

    root/var/www;

    Índice index.php index.html index.htm;

    Ubicación ~ .php$ {

    fastcgi_pass unix:/var/run/PHP5-fpm.sock;

    fastcgi_index index.php;

    incluyen fastcgi_params;

    }

  6. Reinicie el servidor
    Reinicio del servicio nginx
  7. Un paseo desde tu navegador a la dirección IP de su servidor y usted obtendrá el resultado siguiente

    Viendo el archivo PHP con Nginx

    Ver un archivo PHP con Nginx

  8. Instale el wrapper CGI si necesita ejecutar scripts CGI en el servidor
    apt - get install fcgiwrap
  9. Reducir el número de procesos PHP y CGI para liberar memoria
    1. Editar el archivo /etc/php5/fpm/php-fpm.conf
      process.Max = 2
    2. Modificar el número máximo de procesos. En mi caso no tengo decenas de conexiones por lo tanto del archivo /etc/nginx/nginx.conf :
      worker_processes 1
  10. Relanzar el servicio diferente
    servicio nginx restart reiniciar el servicio php5-fpm

    Si ha instalado el wrapper CGI :

    Reinicio del servicio fcgiwrap

Esto es para el servidor web en configuración básica.

Posiblemente le gustan también....

  • Tom23 (@Tom23mj)

    Buen trabajo todos estos tutoriales !

    Me permití hacer una noticia en mi blog para dar a conocer, se merecen.

    • Muchas gracias por la noticia !!! C’est vraiment sympa 😉

  • Sudo

    Sí, gracias por todos estos excelentes tutoriales ! 🙂

    He oído ( y prueba ) un servidor al parecer aún más luz que Nginx o lighttpd en Rpi, Ten que te interese, Es Pancake :

    http://pancakehttp.net/

    J’ai également mis un lien vers ton blog à partir du mien 😉

    @

    • Genial por panqueque iré ver. Solo s poder conectar con Tim para el acceso a rtorrent. Sinon je vais devoir trouver un autre logiciel 🙂
      Et je dois faire une blogroll 🙂

  • Arno

    Shell :

    Debe leer “reinicio del servicio php5-fpm” en el paso 10 !

    Una oportunidad de tener un tutorial para integrar mysql nginx ? (Sí, Lo sé, MySQL es lento !)

    • Es fijo, Gracias.
      Para MySql, en realidad, dado el peso no está previsto por el momento. Ahora una vez completado los pasos para la frambuesa Pi Home Server, je pourrais toujours faire des essais basés sur vos suggestions 😉

  • Hola, Puedo comentar sobre este artículo a preguntar si sería posible tener un tutorial para la instalación de un gato con nginx, Miré a la tasa de phpfreechat que no mal pero tengo un problema con su configuración!

    Gracias!

  • Jordania

    Hola,

    Voy a crear el servidor, y y acceso desde la GUI de pi, pero imposible desde otra PC en LAN… Una idea de cómo este problema ?

    Merci 😉

    • Hola,
      La frambuesa es bien accesible desde otra PC ? Ping tipo o ssh ? Sin bloqueo del puerto a través del router ?

  • TEF

    Hola,

    Después de las pruebas en varios cms y las búsquedas sin éxito en la red, Tengo una pregunta :

    Cómo habilitar el smtp? (o establecer si ya está)

    Porque mi casa no puede funcionar el formulario de contacto, correos de notificaciones, Boletín de noticias, etc.…

    Gracias

    • Hola,
      En WordPress (que yo sepa mejor) se debe en el correo electrónico configuración de poner un servidor SMTP con el login y contraseña para poder usarlo. Después de que funciona “solo” 🙂

  • TEF

    Gracias por su respuesta,

    priori mi problema vendría por el lado de nginx/php en la frambuesa como cms, He probado en mi hosting y no he tenido un problema con el envío de correos electrónicos (en realidad funciona “solo”), Pero no desde la frambuesa.

    Ya he abierto el puerto 25 en el cuadro, Creo que es el que usan para el smtp.

    • Si usted se encuentra en libre, de forma predeterminada se bloquea el uso de SMTP desde la red local. Necesidad de cambiar en la interfaz gratis. También puede ser válido en otros operadores.

  • Hola !

    Gracias por todo este trabajo !

    Voy a seguir tu tutorial y me preguntaba if desde la fecha de su redacción, Era todavía tópico ? (paquetes para agregar ? etc.)

    • (Detalle en el caso donde : Estoy en Raspbian y no en el arco)

    • Hola,
      Configuración de Nginx bajo Raspbian todavía funciona (A menudo uso en el punto de partida de los tutoriales)

  • Damien

    Hola, el punto 5 No está muy claro exactamente qué hacer con el archivo. Acabé editar raíz e índice de líneas y descomentar las líneas php para hacer que esto funcione.

    Al principio no sabía qué hacer con el archivo, Si ' era necesario reemplazar por completo su contenido (Lo que se recomienda en el mismo archivo), Agregar las siguientes líneas al final o algo más.

  • dams1710

    Hola y Felicidades por tus tutoriales que me gusta para seguir desde mi rpi….
    Hoy tengo un pequeño problema, Una vez finalizado el tutorial cuando escribo la dirección ip de mi rpi tropiezo con un hermoso 403 prohibido!
    Creo que es una preocupación del derecho en el archivo o el www pero no podemos encontré la solución, un poco de ayuda sería Bienvenido así entiendo lo que mal o bien no hice!
    Gracias

    • dams1710

      Pequeña precisión si escribo “ip_rpi index.php” Esto funciona tengo la página de información de php que aparece!

      • Hola,
        Es que el índice de la configuración de la línea de servidores también contiene el valor de index.php ?

        • dams1710

          ya gracias por su respuesta rápida, Así que de hecho que editar el archivo por defecto para agregar indexphp, Por lo tanto simplemente olvidé la “.” entre el índice y php como lo que es útil revisar!
          En cualquier caso muchas gracias!

  • yukora

    Hola chris

    Tengo un pequeño problema de depósito que creo

    Voilá se j ai quand je lance la commande : apt-get install php5-fpm

    Listas de lectura paquete... Hecho
    Árbol de dependencias del edificio
    Lectura de información de estado... Hecho
    Se instalarán los siguientes paquetes Extras:
    libonig2 libqdbm14 php5-common
    Paquetes sugeridos:
    php-pear
    Se instalarán los siguientes paquetes nuevos:
    libonig2 libqdbm14 php5-common php5-fpm
    0 actualizado, 4 recién instalado, 0 para quitar y 0 no actualizado.
    Necesito 3,045 kB/3.294 kB de archivos.
    Después de esta operación, 8,820 se utilizarán kB de espacio en disco adicional.
    ¿Quieres continuar [S/n]? y
    Err http://mirrordirector.raspbian.org/raspbian/ sibilancias Meno php5-common armhf 5.4.4-14 deb7u3
    404 No se encontró
    Err http://mirrordirector.raspbian.org/raspbian/ sibilancias Meno php5-fpm armhf 5.4.4-14 deb7u3
    404 No se encontró
    Error al buscar http://mirrordirector.raspbian.org/raspbian/pool/main/p/php5/php5-common_5.4.4-14+deb7u3_armhf.deb 404 No se encontró
    Error al buscar http://mirrordirector.raspbian.org/raspbian/pool/main/p/php5/php5-fpm_5.4.4-14+deb7u3_armhf.deb 404 No se encontró
    E: Incapaz de buscar algunos archivos, Tal vez ejecuta apt-get update o prueba con –fix-falta?

    • Hola,
      Has probado a ejecutar el comando apt - get update antes de actualizar la lista de los depósitos?

      • yukora

        Desgraciadamente sí ;(

        • Unable to fetch some archives, maybe run apt-get update or try with –fix-missing?
          Entonces puede ser pruebe con la opción -Fix-falta ….

          • yukora

            Se ha conseguido trabajo n pero j con el siguiente comando :
            apt - actualización && apt - get install -Fix-falta php5-fpm

            puede que sea mi apt - get actualizar fallando solo

            Gracias por tu ayuda

            j ha viajado tu blog es muy lindo

  • Camille fwix

    Hola,

    Me parece que el php de la sección de archivo conf nginx debería verse así:
    Alquiler ~ [^/].PHP(/|$) {
    fastcgi_split_path_info ^(.+?.PHP)(/.*)$;
    If (!-f $document_root$ fastcgi_script_name) {
    retorno 404;
    }
    fastcgi_pass unix:/var/run/php5-FMR envasarla;
    fastcgi_index index.php;
    incluyen fastcgi_params;
    }

    la prueba “If (!-f $document_root$ fastcgi_script_name)” es importante desde el punto de vista de seguridad ver http://wiki.nginx.org/Pitfalls y http://wiki.nginx.org/PHPFcgiExample

    • Gracias por la info. Estoy en un artículo optimización y seguridad de Nginx. Ca va aider 😉

  • Pierre

    Hola,

    Desde el principio, Muchas gracias por todo tu trabajo que es envidia y permite a los principiantes (como yo) para embarcarse en la aventura!

    Todavía tengo un pequeño problema tengo entendimiento de problemas :
    Cuando subo nginx (paso 6), Me devuelve “[EMERG] Directiva unknow “root/var/www” en/etc/nginx/sitios-habilitado/default:24″.
    Sin embargo llego para consultar este directorio “/var/www” para ver el archivo y “index.php” He creado con el comando ls.

    Bueno cordialmente,
    Pierre

    • Hola,
      Un espacio entre la raíz y/var/www falta así que creo que tu mensaje

      • Pierre

        Muchas gracias! De hecho fue eso! Todavía tengo la mirada bien formateada para linux…

  • Nicolas

    Buenas noches,

    Una vez que estos pasos han sido completados, el NO - IP domain creado en el paso 7 se supone que muestre la página PHP ?

    He seguido todos los pasos y mi dirección no - ip.org continúa Mostrar la interfaz de mi Livebox (el ping al dominio aún devuelve la dirección del router).

    Puede ser es mi reenvío de puertos no funciona. Aquí están los parámetros :

    Aplicación / Servicio : inadyn
    Puerto externo : 8090
    Puerto interno : 8090
    Protocolo : TCP
    Equipo : raspberrypi

    Gracias por tus tutoriales y ayuda,
    Atentamente,

    Nicolas

    • No conozco el cuadro vivo, pero tal vez mejor en la zona de destino se pone un nombre único ip

      • Nicolas

        El Livebox no nos deja la opción y ofrece un menú desplegable menú de dispositivos que ya están conectados a la red.

        Podrás verlo más en detalle.
        Gracias !

        • Pregunta estúpida : accedes a través de http://:8090/ ?
          Y http interno://
          :8090 Muestra bien lo que debes ?

          • Nicolas

            No, precisamente eso o no. Bueno, visualizar la página PHP con http://addresseIP_Pi:8090 Pero no directamente con http://:8090.

            Tenga en cuenta que en el archivo/etc/nginx/sitios-disponible/default, He cambiado la siguiente línea :
            Escucha 8090;

            En realidad, Me pregunto si este no es el Livebox, que no destacan el NAT desde la LAN…

  • Tony

    Hola,
    Me pongo en este tutorial, y estoy teniendo un problema con el número del punto 7. Cuando escribo la IP privada de frambuesa, Tengo la siguiente salida : 404 No se encontró
    Si de entrada el index.php IP , Recibo : Archivo no encontrado.
    Especifica el archivo /var/log/nginx/error.log : [error] 19746#0: *5 “/var / w www/index.php” No se encuentra (2: Nº tal archivo o directorio).
    Bueno he buscado pero no puedo salir de este paso. Creo que mi archivo etc/nginx/sitios-disponible/default debe contener uno o más errores.
    ¿Es posible tener un poco de ayuda ?
    Gracias de antemano

    Atentamente,

    Tony

    Debajo de mi archivo predeterminado :
    root@raspberrypi:/por defecto de gato # etc./nginx/sites-available
    # Aquí puedes añadir tu
    # Servidor {
    # …
    # }
    # declaraciones de cada uno de sus anfitriones virtuales para este archivo

    ##
    # Debes mirar la siguiente URL para captar una comprensión sólida
    # Nginx archivos de configuración con el fin de liberar completamente el poder de Nginx.
    # http://wiki.nginx.org/Pitfalls
    # http://wiki.nginx.org/QuickStart
    # http://wiki.nginx.org/Configuration
    #
    # Generalmente, desea mover este archivo en alguna parte, y empezar con un limpio
    # archivo pero esto guarde para referencia. O simplemente desactivar en sitios habilitados.
    #
    # Por favor consulte /usr/share/doc/nginx-doc/examples/para obtener más detallada ejemplos.
    ##

    Servidor {
    #Escucha 80; ## Escucha para ipv4; esta línea es por defecto e implícita
    #Escucha [::]:80 default_server ipv6only = on; ## Escucha para ipv6

    #root/usr/share/nginx/www;
    root/var/wwww;

    Índice index.php index.html index.htm;

    # Hacer sitio accesible desde http://localhost/
    nombre_servidor localhost;

    Alquiler / {
    # El primer intento para servir como archivo de solicitud, Entonces
    # como directorio, luego vuelve a mostrar un 404.
    #try_files $uri $uri / index.html;
    # Descomentar para habilitar naxsi en esta ubicación
    # incluyen /etc/nginx/naxsi.rules
    }

    Ubicación /doc/ {
    alias/usr/share/doc /;
    Autoindex en;
    permiten 127.0.0.1;
    permiten ::1;
    negar todo;
    }

    # Sólo para nginx-naxsi usado con nginx-naxsi-ui : proceso denegado solicitudes
    #Ubicación /RequestDenied {
    # proxy_pass http://127.0.0.1:8080;
    #}

    #error 404 /404.HTML;

    # redireccionar páginas de error del servidor a la página estática /50x.html
    #
    #error 500 502 503 504 /50x.html;
    #Ubicación = 50x.html {
    # root/usr/share/nginx/www;
    #}

    # transferir los scripts PHP FastCGI servidor escuchando en 127.0.0.1:9000
    #
    alquiler ~ .php$ {
    # fastcgi_split_path_info ^(.+\.PHP)(/.+)$;
    # # NOTA: Deberías tener “cgi.fix_pathinfo = 0;” en php.ini
    #
    # # Con solo php5-cgi:
    # fastcgi_pass 127.0.0.1:9000;
    # # Con php5-fpm:
    fastcgi_pass unix:/var/run/PHP5-fpm.sock;
    fastcgi_index index.php;
    incluyen fastcgi_params;
    }

    # denegar el acceso a los archivos .htaccess, Si raíz de Apache
    # coincide con uno de nginx
    #
    #Ubicación ~ /.ht {
    # negar todo;
    #}
    }

    # otro host virtual mediante combinación de IP-, Nombre:, y configuración basada en Puerto
    #
    #Servidor {
    # Escucha 8000;
    # Escucha algunnombre:8080;
    # nombre_servidor algunnombre alias another.alias;
    # raíz html;
    # Índice index.html index.htm;
    #
    # Alquiler / {
    # try_files $uri $uri = 404;
    # }
    #}

    # Servidor HTTPS
    #
    #Servidor {
    # Escucha 443;
    # nombre_servidor localhost;
    #
    # raíz html;
    # Índice index.html index.htm;
    #
    # SSL en;
    # ssl_certificate cert.pem;
    # ssl_certificate_key cert.key;
    #
    # ssl_session_timeout 5m;
    #
    # ssl_protocols SSLv3 TLSv1;
    # ssl_ciphers todos:!ADH:!EXPORT56:RSA RC4:+ALTA:+MEDIO:+BAJA:+SSLv3:+EXP;
    # ssl_prefer_server_ciphers en;
    #
    # Alquiler / {
    # try_files $uri $uri = 404;
    # }
    #}

    • Hola
      Y un 4 fois raíz w dans le répertoire (/var/wwww) c ' est normal ?

      • Tony

        Merci pour ton aide et ton oeil regrettera, con 3 fois www c ' est mieux.

  • Theo

    Hola,

    Tengo un pequeño problema que estoy atascado en el paso 7, No caí en esta página. Escribí bien http://xxx.xxx.x.xx/index.php, Pero Firefox es mi intención para salvar un archivo php. Todavía releo los mensajes sobre este tema, No puedo encontrar la causa del problema

    Aquí está el archivo/etc/nginx/sitios-disponible/default

    root@raspberrypi:~ # nano/etc/nginx/sitios-disponible/default
    GNU nano 2.2.6 Archivo: /etc./nginx/sitios-disponible/default

    # Aquí puedes añadir tu
    # Servidor {
    # …
    # }
    # declaraciones de cada uno de sus anfitriones virtuales para este archivo

    ##
    # Debes mirar la siguiente URL para captar una comprensión sólida
    # Nginx archivos de configuración con el fin de liberar completamente el poder de Nginx.
    # http://wiki.nginx.org/Pitfalls
    # http://wiki.nginx.org/QuickStart
    # http://wiki.nginx.org/Configuration
    #
    # Generalmente, desea mover este archivo en alguna parte, y empezar con un limpio
    # archivo pero esto guarde para referencia. O simplemente desactivar en sitios habilitados.
    #
    # Por favor consulte /usr/share/doc/nginx-doc/examples/para obtener más detallada ejemplos.
    ##

    Servidor {
    #Escucha 80; ## Escucha para ipv4; esta línea es por defecto e implícita
    #Escucha [::]:80 default_server ipv6only = on; ## Escucha para ipv6

    #root/usr/share/nginx/www;
    root/var/www;
    Índice index.php index.html index.htm;

    # Hacer sitio accesible desde http://localhost/
    nombre_servidor localhost;

    Alquiler / {
    # El primer intento para servir como archivo de solicitud, Entonces
    # como directorio, luego vuelve a mostrar un 404.
    try_files $uri $uri / index.html;
    # Descomentar para habilitar naxsi en esta ubicación
    # incluyen /etc/nginx/naxsi.rules
    }

    Ubicación /doc/ {
    alias/usr/share/doc /;
    Autoindex en;
    permiten 127.0.0.1;
    permiten ::1;
    negar todo;
    }

    # Sólo para nginx-naxsi usado con nginx-naxsi-ui : proceso denegado solicitudes
    #Ubicación /RequestDenied {
    # proxy_pass http://127.0.0.1:8080;
    #}

    #error 404 /404.HTML;

    # redireccionar páginas de error del servidor a la página estática /50x.html
    #
    #error 500 502 503 504 /50x.html;
    #Ubicación = 50x.html {
    # root/usr/share/nginx/www;
    #}

    # transferir los scripts PHP FastCGI servidor escuchando en 127.0.0.1:9000
    #
    #alquiler ~ .php$ {
    # fastcgi_split_path_info ^(.+\.PHP)(/.+)$;
    # # NOTA: Deberías tener “cgi.fix_pathinfo = 0;” en php.ini
    #
    # # Con solo php5-cgi:
    # fastcgi_pass 127.0.0.1:9000;
    # # Con php5-fpm:
    # fastcgi_pass unix:/var/run/PHP5-fpm.sock;
    # fastcgi_index index.php;
    # incluyen fastcgi_params;
    #}

    # denegar el acceso a los archivos .htaccess, Si raíz de Apache
    # coincide con uno de nginx
    #
    #Ubicación ~ /.ht {
    # negar todo;
    #}
    }

    # otro host virtual mediante combinación de IP-, Nombre:, y configuración basada en Puerto
    #
    #Servidor {
    # Escucha algunnombre:8080;
    # nombre_servidor algunnombre alias another.alias;
    # raíz html;
    # Índice index.html index.htm;
    #
    # Alquiler / {
    # try_files $uri $uri = 404;
    # }
    #}

    # Servidor HTTPS
    #
    #Servidor {
    # Escucha 443;
    # nombre_servidor localhost;
    #
    # raíz html;
    # Índice index.html index.htm;
    #
    # SSL en;
    # ssl_certificate cert.pem;
    # ssl_certificate_key cert.key;
    #
    # ssl_session_timeout 5m;
    #
    # ssl_protocols SSLv3 TLSv1;
    # ssl_ciphers todos:!ADH:!EXPORT56:RSA RC4:+ALTA:+MEDIO:+BAJA:+SSLv3:+EXP;
    # ssl_prefer_server_ciphers en;
    #
    # Alquiler / {
    # try_files $uri $uri = 404;
    # }
    #}

    Cuando me ressaye en IE, Entiendo el contenido del archivo/var / www/index.php

  • Sébastien Mougel

    celui ci aussi n’apparait pas nomplu

Popular destinations