Come installare un server web con Nginx + MySQL + PHP5 + APC + Spawn_FastCGI [4a parte: Nginx + PHP con SpawnFastCGI]

Qualche tempo fa Ti ho parlato di questa serie di tutorial, su come installare e configurare un server per l'hosting ad alta richiesta. Questo articolo riguarderà l'installazione e la configurazione Nginx + PHP con SpawnFastCGI:

Spawn_FastCGI:

Questo si può dire che è ciò che unisce Nginx con PHP, cioè, anche se hanno il pacchetto PHP5 installato se non hanno Spawn_FastCGI installato ed eseguito quando aprono un sito in PHP il browser scaricherà il file, non mostrerà loro nulla che il .php è stato programmato perché il server non sa come processare i file .php, ecco perché è fondamentale installare e configurare Spawn_FastCGI.

Se usassimo Apache sarebbe qualcosa di semplice come installare il pacchetto libapache2-mod-php5 ma dato che usiamo Nginx dovremo invece installare il pacchetto spawn-fcgi. Inoltre, nel tutorial spiegherò come creare uno script iniziale per esso in /etc/init.d/ in modo da poterlo controllare più comodamente.

1. Installazione:

Inizieremo con la prima cosa, installeremo Spawn-FastCGI e PHP dai nostri repository.

Tutti i comandi che verranno eseguiti vengono eseguiti con i permessi di root, o mettendo sudo all'inizio di ogni riga o effettuando il login come root

Se sul tuo server usi una distribuzione come Debian, Ubuntu o qualche derivato nel terminale devi mettere quanto segue e premere entrare :

aptitude install spawn-fcgi php5-cgi php5-curl

aptitude non è installato di default in Ubuntu, tuttavia ti consiglio di installarlo e usarlo al posto di apt-get, perché aptitude gestisce meglio le dipendenze in determinate occasioni

Personalmente, non consiglio alcun derivato di Debian, nemmeno Ubuntu per i server, negli anni le mie esperienze non sono state del tutto soddisfacenti. La mia prima scelta per i sistemi operativi dei server è Debian, poi penserei a CentOS, finalmente un po 'di BSD

2. Configurazione:

Nel passaggio precedente (quando abbiamo installato Nginx) abbiamo scaricato un file chiamato nginx-spawn-fastcgi.tar.gz che quando decompresso ha creato la cartella nginx-spawn-fastcgi nella nostra home, copieremo il file da esso spawn-fastcgi in /etc/init.d/:

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

Inoltre, abbiamo bisogno dell'eseguibile php-fastcgi in / usr / bin /

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

Perfetto, abbiamo pronto il file che ci permetterà di controllare spawn-fastcgi e anche l'eseguibile php-fastcgi, ora avvieremo spawn-fastcgi:

/etc/init.d/spawn-fastcgi start

Ci mostrerà qualcosa come: spawn-fcgi: figlio generato correttamente: PID: 3739

Ora sostituiremo il nostro file /etc/nginx/sites-available/mywebsite.net con ~ / nginx-spawn-fastcgi / mywebsite_plus_php.net

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

Perché? Semplice, perché il nostro precedente file mywebsite.net non supporta PHP, cioè è solo Nginx, mentre il file mywebsite_plus_php.net ha il supporto per PHP, cioè Nginx + PHP usando SpawnFastCGI.

Le differenze tra questi file sono diverse, ad esempio:

  • Nella riga 3 viene aggiunto il file che supporta PHP index.php
  • Una nuova riga sotto il numero 3 che contiene: fastcgi_index index.php;
  • Diverse altre nuove righe che dicono a Nginx come elaborare PHP.
  • … .. comunque, ecco una foto che ti aiuterà a conoscere le differenze tra i due file:

nginx_mysql_spawn-fastcgi_comparing_mywebsite_confs

Il file mywebsite_plus_php.net è un vhost che funge da esempio, cioè, e in altre parole, dobbiamo modificarlo e stabilire le nostre configurazioni.

Dobbiamo modificare quanto segue:

  • access_log (riga 3): questo sarà il percorso del file di registro degli accessi a questo sito
  • error_log (riga 4): questo sarà il percorso del file di registro degli errori a questo sito
  • server_name (riga 5): l'URL, il dominio che è ospitato in quella cartella, ad esempio, se fosse il forum DesdeLinux sarebbe: forum nome_server.desdelinux.net
  • root (riga 6): il percorso della cartella in cui si trovano i file html, lasciamo questo in / var / www / poiché sarà solo un test
Ovviamente devono avere puntato nei loro record DNS del loro provider di hosting (utilizzando CPanel o un altro strumento) che il dominio o sottodominio dichiarato in nome_server si trova sull'IP di questo server che stanno configurando. Cioè, nel DNS dove creano sottodomini per il loro dominio, devono dichiarare che il dominio o il sottodominio che hanno messo nella riga 5 si trova su questo server (questo server = l'indirizzo IP del server in questione)

Pronto, ora riavvieremo Nginx:

/etc/init.d/nginx restart

Per verificare che il nostro Nginx elabori correttamente PHP, copiamo il file phptest.php nella cartella ospitata, ovvero quella indicata nella riga N.6 del file mywebsite_plus_php.net (ad esempio root / var / www /), supponendo che il sito sia ospitato direttamente in / var / www / sarebbe:

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

Supponendo che nella riga 5 del nostro mywebsite_plus_php.net (cioè, la riga server_name) abbiamo detto che il nostro sito è www.mysite.net, allora dobbiamo accedere a www.mysite.net/phptest.php. In altre parole, l'idea è di accedere al file phptest.php dal nostro browser e se appare quanto segue allora il nostro Nginx si collega perfettamente con PHP:

nginx_mysql_spawn-fastcgi_tersting_nginx_php

Nel caso in cui non appaia, cioè che il browser tenta di scaricare il file .php ... questo significa che hanno fatto qualcosa di sbagliato, che non hanno sostituito /etc/nginx/sites-available/mywebsite.net con ~ / nginx-spawn-fastcgi / mywebsite_plus_php.net ... che si sono dimenticati di riavviare Nginx con /etc/init.d/nginx restart o che si sono dimenticati di avviare Spawn-FastCGI con /etc/init.d/spawn-fastcgi start

Finora il tutorial per collegare Nginx con PHP usando SpawnFastCGI, abbiamo solo bisogno di MySQL e APC 🙂

Spero che tu lo trovi interessante.


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   f3niX suddetto

    Se è un quarto, perché l'immagine dice 3? iniziato a 0 immagino? ottimo post.

    saluti

    1.    KZKG ^ Gaara suddetto

      1 °: presentazione
      2 °: Nginx
      3 °: Nginx + PHP (Spawn_FastCGI)

      🙂

      Grazie per aver letto ^ _ ^

      1.    Rodrigo suddetto

        cosa è successo alla parte 4 ???
        e con il successivo ?????

  2.   ryanm suddetto

    Ciao:

    Sarebbe una scelta migliore se invece di mysql si usasse MariaDB, come dovresti sapere quest'ultimo è un fork del primo, e già si parla che sarà il Mysql del futuro (http://www.genbetadev.com/bases-de-datos/mariadb-sera-el-mysql-del-futuro) poiché Mysql è gratuito, fino a un certo punto.

    SkySQL, una società che fornisce servizi da database gratuiti, ha sostenuto finanziariamente il progetto MariaDB (http://www.genbetadev.com/bases-de-datos/mariadb-y-skysql-unen-fuerzas-para-llevar-a-mariadb-a-lo-mas-alto) e Google che vuole smettere di dipendere da Mysql, come ha fatto anche Wikipedia, e farà il passaggio da MySQL 5.1 a MariaDB 10.0 con l'aiuto, appunto, di SkySQL, già esperti in questo campo.

    ciao2.

    1.    KZKG ^ Gaara suddetto

      Ciao,

      Si certo, conosco MariaDB e infatti ne abbiamo già parlato: https://blog.desdelinux.net/tag/mariadb/

      Tuttavia, in questo momento sto utilizzando MySQL perché sto seguendo questi tutorial in base alla particolare esperienza che ho avuto durante la migrazione. DesdeLinux (con tutti i suoi servizi) ad altri server, in quel periodo cambiammo completamente la tecnologia e i compiti o cambiamenti che dovevo affrontare non furono pochi.
      Leggi questo mio commento da quel momento: https://blog.desdelinux.net/el-blog-desdelinux-abandona-hostgator-y-pasa-a-gnutransfer/comment-page-1/#comment-81291

      L'idea finale è sì, in effetti, migrare a MariaDB, ma non ho avuto il tempo di fare i test pertinenti 🙂

      Grazie per aver letto

  3.   eliotime3000 suddetto

    Questo tutorial mi aiuterà a installare zPanel X con NGINX in modo da non saturare il mio sito durante la migrazione a GNUPanel VPS.

  4.   dragnell suddetto

    Il regalo di Natale? Non vedevo l'ora di congratularmi con tutti.

    1.    KZKG ^ Gaara suddetto

      Grazie partner 😀

  5.   st0rmt4il suddetto

    Aggiunto ai preferiti!

    A proposito, ho questo dubbio e domanda, Nginx ha davvero più prestazioni di Apache?

    Saluti!

    1.    KZKG ^ Gaara suddetto

      Ebbene, Apache può essere ottimizzato molto ma… fino ad ora Google it e quasi tutti siamo d'accordo sul fatto che Nginx consuma molta meno RAM, ha prestazioni non trascurabili, anche se non è del tutto così semplice durante la configurazione.

  6.   Luis Morales suddetto

    Buon KZKG ^ Gaara ottima informazione per quelli di noi che sono interessati a questo mondo, una domanda, per quando il 4 ° post 😀