Com instal·lar un servidor web amb Nginx + MySQL + PHP5 + APC + Spawn_FastCGI [4ta Part: Nginx + PHP amb SpawnFastCGI]

Fa un temps els vaig parlar sobre aquesta sèrie de tutorials, Sobre com instal·lar i configurar un servidor per hosting d'alta demanda. Aquest article tractarà sobre instal·lar i configurar Nginx + PHP amb SpawnFastCGI:

Spawn_FastCGI:

Això es pot dir que és el que uneix Nginx amb PHP, és a dir, tot i que tinguin el paquet PHP5 instal·lat si no tenen instal·lat i executat Spawn_FastCGI quan obrin algun lloc en PHP el navegador els descarregarà l'arxiu, no els mostrarà res a l' .php tingui programat ja que el servidor no sap com processar arxius .php, és per això que es fa imprescindible instal·lar i configurar Spawn_FastCGI.

Si féssim servir Apache seria una cosa tan simple com instal·lar el paquet libapache2-mod-php5 però com fem servir Nginx haurem d'instal·lar el paquet spawn-fcgi al seu lloc. A més, en el tutorial els explicaré com crear un script d'inici de la mateixa a /etc/init.d/ perquè puguin controlar-lo amb més comoditat.

1. Instal·lació:

Començarem pel primer, instal·lar Spawn-FastCGI i PHP des dels nostres respositorios.

Totes les comandes que s'executaran són executats amb permisos de root, bé posant suo a l'inici de cada línia o bé estant loggeados com a root

Si en el teu servidor fas servir una distribució com Debian, Ubuntu o algun derivat a la terminal has de posar el següent i pressionar Enter :

aptitude install spawn-fcgi php5-cgi php5-curl

aptitude no ve instal·lat per defecte en Ubuntu, però recomano que l'instal·lin i facin servir en comptes d'apt-get, ja aptitude fa una millor gestió de les dependències en determinades ocasions

En el personal no recomano cap derivat de Debian, ni tan sols Ubuntu per a servidors, al llarg dels anys les meves experiències no han de el tot satisfactòries. La meva primera opció per a sistema operatiu de servidors és Debian, després pensaria en CentOS, finalment en algun BSD

2. Configuració:

En el pas anterior (quan vam instal·lar Nginx) descarreguem un arxiu anomenat nginx-spawn-fastcgi.tar.gz que a l'descomprimir ens va crear la carpeta nginx-spawn-FastCGI al nostre home, copiarem d'ella l'arxiu spawn-FastCGI cap a /etc/init.d/:

cp ~/nginx-spawn-fastcgi/spawn-fastcgi /etc/init.d/

A més, necessitem l'executable del PHP-FastCGI a / usr / bin /

cp ~/nginx-spawn-fastcgi/php-fastcgi /usr/bin/

Perfecte, ja tenim a punt l'arxiu que ens permetrà controlar a spawn-FastCGI ia més l'executable del PHP-FastCGI, ara anem a iniciar spawn-FastCGI:

/etc/init.d/spawn-fastcgi start

Ens mostrarà alguna cosa com: spawn-fcgi: fill generat correctament: PID: 3739

Ara anem a reemplaçar nostre arxiu /etc/nginx/sites-available/mywebsite.net per ~ / nginx-spawn-FastCGI / mywebsite_plus_php.net

cp ~/nginx-spawn-fastcgi/mywebsite_plus_php.net /etc/nginx/sites-available/mywebsite.net

Per què? Simple, perquè el nostre anterior arxiu mywebsite.net no té suport per a PHP, o sigui, és Nginx només, mentre que l'arxiu mywebsite_plus_php.net sí que té suport per a PHP, és a dir, Nginx + PHP usant SpawnFastCGI.

Les diferències entre aquests arxius són diverses, per exemple:

  • En la línia 3 a l'arxiu que suporta PHP se li afegeix index.php
  • Una nova línia sota la No.3 que conté: fastcgi_index index.php;
  • Diverses altres línies noves que li indiquen a Nginx com processar PHP.
  • ... .. en fi, els deixo aquí una foto que els ajudarà a conèixer les diferències entre tots dos arxius:

nginx_mysql_spawn-fastcgi_comparing_mywebsite_confs

L'arxiu mywebsite_plus_php.net és un vhost que ens serveix d'exemple, és a dir i dit d'una altra manera, hem de modificar-lo i establir les nostres configuracions.

Hem de canviar el següent:

  • access_log (línia 3): Aquesta serà la ruta de l'arxiu de log d'accés a aquest lloc
  • error_log (línia 4): Aquesta serà la ruta de l'arxiu de log d'errors a aquest lloc
  • server_name (línia 5): La URL, domini que està hostejat en aquesta carpeta, per exemple, si es tractés del fòrum de DesdeLinux seria: server_name fòrum.desdelinux.net
  • root (línia 6): La ruta a la carpeta on hi ha els arxius html, això deixem-ho en / var / www / ja que només serà una prova
Òbviament han de tenir apuntant en els seus registres DNS del vostre proveïdor de serveis (usant CPanel o una altra eina) que el domini o subdomini declarat en SERVER_NAME està ubicat a la IP d'aquest servidor que estan configurant. O sigui, en el DNS on creen subdominis per al seu domini han de declarar que el domini o subdomini que hagin posat a la línia 5 es troba en aquest servidor (aquest servidor = l'adreça IP de l'server en qüestió)

A punt, ara reiniciarem Nginx:

/etc/init.d/nginx restart

Per comprovar que el nostre Nginx processa adequadament PHP copiem l'arxiu phptest.php cap a la carpeta hosteada, és a dir, la que indiquem en la línia No.6 de l'arxiu mywebsite_plus_php.net (per exemple, root / var / www /), suposant que tinguin el lloc hosteado directament a / var / www / seria:

cp ~/nginx-spawn-fastcgi/phptest.php /var/www/

Suposant que en la línia 5 del nostre mywebsite_plus_php.net (o sigui, la línia de SERVER_NAME) hàgim dit que el nostre lloc és www.misitio.net llavors hem d'accedir a www.misitio.net/phptest.php. O sigui, la idea és accedir a l'arxiu phptest.php des del nostre navegador i si ens apareix el següent llavors el nostre Nginx es va enllaçar perfectament amb PHP:

nginx_mysql_spawn-fastcgi_tersting_nginx_php

En cas que no els aparegui això, o sigui, que el navegador els intenti descarregar l'arxiu .php ... això vol dir que alguna cosa van fer malament, que no van reemplaçar bé el /etc/nginx/sites-available/mywebsite.net amb ~ / nginx-spawn-FastCGI / mywebsite_plus_php.net ... que se'ls va oblidar reiniciar Nginx amb /etc/init.d/nginx restart o bé que se'ls va oblidar iniciar Spawn-FastCGI amb /etc/init.d/spawn-fastcgi start

Fins aquí el tutorial per enllaçar Nginx amb PHP usant SpawnFastCGI, ja només ens falta MySQL i APC 🙂

Espero els estigui resultant interessant això.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   F3niX va dir

    Si és quarta part perquè la imatge diu 3? començar en 0 suposo? excel·lent post.

    Salutacions

    1.    KZKG ^ Gaara va dir

      1ra: Presentació
      2a: Nginx
      3ra: Nginx + PHP (Spawn_FastCGI)

      🙂

      Gràcies per llegir-nos ^ _ ^

      1.    Rodrigo va dir

        que pas amb la 4 part ???
        i amb els subsegüents ?????

  2.   rpayanm va dir

    Hola:

    Seria una millor elecció si en comptes de mysql, utilitzessis MariaDB, com has de saber aquest últim és un fork de el primer, i ja es parla que serà el Mysql d'el futur (http://www.genbetadev.com/bases-de-datos/mariadb-sera-el-mysql-del-futuro) Doncs Mysql és lliure, fins a cert punt.

    SkySQL, una empresa que presta serveis a partir de bases de dades lliures, va donar suport econòmic a el projecte MariaDB (http://www.genbetadev.com/bases-de-datos/mariadb-y-skysql-unen-fuerzas-para-llevar-a-mariadb-a-lo-mas-alto) I Google que vol deixar de dependre d'Mysql, com també va fer Wikipedia, i farà la transició des MySQL 5.1 a MariaDB 10.0 amb l'ajuda, precisament, de SkySQL, que són ja experts en aquesta matèria.

    Salu2.

    1.    KZKG ^ Gaara va dir

      Hola,

      Sí clar, conec MariaDB i de fet, hem parlat ja a l'respecte: https://blog.desdelinux.net/tag/mariadb/

      No obstant això, ara mateix estic usant MySQL doncs aquests tutorials els faig des de l'experiència particular que vaig tenir en migrar DesdeLinux (amb tots els seus serveis) cap a altres servidors, en aquell moment vam canviar la tecnologia completament i les tasques o canvis que vaig haver de fer front no van ser pocs.
      Llegeix aquest comentari meu d'aquest moment: https://blog.desdelinux.net/el-blog-desdelinux-abandona-hostgator-y-pasa-a-gnutransfer/comment-page-1/#comment-81291

      La idea final és si en efecte, migrar a MariaDB, però no he tingut temps per fer les proves pertinents 🙂

      Gràcies per llegir-nos

  3.   eliotime3000 va dir

    Aquest tutorial em va servir per instal·lar zPanel X amb Nginx per no saturar la meva web a l'hora de migrar a l'VPS de GNUPanel.

  4.   Dragnell va dir

    El regal de Nadal? L'esperava amb ànsies felicitats a tots.

    1.    KZKG ^ Gaara va dir

      Gràcies soci 😀

  5.   St0rmt4il va dir

    Afegit a favorits!

    Per cert, tinc aquest dubte i interrogant, en veritat Nginx té mes performance que Apache?

    Salutacions!

    1.    KZKG ^ Gaara va dir

      Bé, Apache es pot optimitzar molt però ... fins ara, busca a Google i gairebé tots coincidim que Nginx consumeix molt menys RAM, té un rendiment gens menyspreable, tot i que no és de el tot tan simple a l'hora de configurar.

  6.   Luis Morales va dir

    Bones KZKG ^ Gaara excel·lent informació per als que ens interessa aquest món, una pregunta, per quan el 4rt post 😀