GNU/Linux >> Linux Esercitazione >  >> Cent OS

Installa Nginx + Php FPM + APC su CentOS 6.4

Server LEMP

Un lemp server esegue Nginx server web insieme a Php e Mysql o MariaDB su Linux sistema. Nginx sta diventando sempre più popolare grazie alla sua struttura leggera e alla capacità di gestire grandi quantità di traffico in modo ottimale. Mariadb è il sostituto di mysql perché mysql non è più molto gratuito. In questo tutorial configureremo Nginx con Php FPM su CentOS. Le istruzioni per installare MariaDB saranno trattate in un altro post.

CentOS è un sistema operativo molto popolare per i server Web basati su Linux. CentOS (Community Enterprise Operating System) è basato su RHEL (RedHat Enterprice Linux) ed è compatibile al 100% in formato binario con esso. Per noi significa semplicemente che è simile a rhel nel suo lavoro e nel suo ambiente e che abbiamo il pratico comando yum disponibile per installare facilmente il software dai repository. In questo esempio lavoreremo su CentOS 6.4 che, al momento di questo post è una versione recente.

Installa Nginx

Il primo passo è installare il server web Nginx. Nginx non è disponibile nei repository CentOS predefiniti, ma nginx fornisce repository specifici per centos per un facile utilizzo.

Aggiungi il repository nginx

Creiamo un file di repository nella directory /etc/yum.repos.d

$ nano /etc/yum.repos.d/nginx.repo

Ora apri il file e aggiungi le seguenti righe. Queste istruzioni sono fornite direttamente da Nginx.

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

Salva e chiudi. Ora è possibile installare nginx.

$ yum install nginx

Quanto sopra scaricherà e installerà il server web nginx e lo renderà pronto per l'uso.
Al termine dell'installazione, è il momento di fare un po' di ispezione. Per prima cosa usa il comando service per controllare lo stato di nginx.

[[email protected] ~]# service nginx status
nginx is stopped

Quanto sopra mostra che il servizio nginx è presente ma è interrotto. Quindi controlla la configurazione usando l'opzione t con il comando nginx.

[[email protected] ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Il comando sopra indica che la configurazione è OK e tutto pronto per l'esecuzione. E, soprattutto, indica anche la posizione del file di configurazione di nginx. Per la creazione di host virtuali/domini multipli, è importante creare file di configurazione separati per ciascun host. Le configurazioni degli host virtuali si trovano in /etc/nginx/conf.d/

OK, ora avviamo il server nginx.

[[email protected] conf.d]# service nginx start
Starting nginx:                                            [  OK  ]

Ora nginx è attivo e funzionante. Trova l'indirizzo IP del server nginx usando ifconfig e connettiti a quell'ip da un browser per provarlo.

http://192.168.1.4/

Potrebbe essere necessario aprire la porta 80 sul server centos, se non è già aperta. Dai un'occhiata a questo tutorial su come aprire la porta http su centos. Una volta aperto, l'indirizzo IP del server nginx dovrebbe caricare la pagina con contenuti come questo

Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

Creazione di un host virtuale

Gli host virtuali o "Server Blocks" come li chiama nginx, consentono a nginx di servire più host in base a un nome. Ad esempio, può ospitare insieme abc.com e cde.com. Tutto ciò di cui ha bisogno è un file di configurazione per ogni host contenente le impostazioni specifiche dell'host come la directory principale ecc.

La directory /etc/nginx/conf.d/ contiene un file di configurazione default.conf che ha le impostazioni per un host virtuale che funzionerà tramite http://localhost/

Controlla il file e mostrerà la posizione dei file web che è chiamata root.

location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

Quindi il nostro file web (.html, .php e tutto il resto) dovrebbe essere inserito in /usr/share/nginx/html directory.

Per creare più host virtuali, copia semplicemente il file default.conf e modifica le impostazioni del percorso principale e del nome_server in modo che corrispondano a quelle del tuo dominio/host.

$ cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/mysite.conf

Ora modifica mysite.conf e configura le impostazioni come la directory principale e il nome_server.
Quindi testa la configurazione di nginx e riavvia il server. Questo dovrebbe creare il nuovo host virtuale.

Autorizzazioni file

Quando si imposta la directory principale per i file Web, è necessario assicurarsi che i file e tutte le directory principali siano leggibili da "gruppo" e "altri" sul sistema. Ad esempio un'autorizzazione di 0755. Nginx non sarebbe in grado di leggere i file, se le directory principali non sono leggibili.

Ad esempio, se scegli di posizionare i tuoi file web nella directory seguente

/home/joe/public_html

Quindi assicurati che le directory home e joe siano leggibili dal gruppo e dagli altri. In caso contrario, anche se i file Web sono leggibili da altri, ma non dalla directory padre joe, nginx non sarebbe in grado di leggere i file e il registro degli errori conterrebbe messaggi come questo

open() "/home/joe/public_html/index.html" failed (13: Permission denied)

Installa PHP e FPM

Ora che il server nginx è attivo e funzionante, il prossimo compito è installare l'interprete php in modo che i file .php possano essere elaborati da nginx.

Poiché php-fpm fa già parte del repository CentOS, non è necessario creare un'altra voce repo come quella che abbiamo fatto per il pacchetto nginx. Quindi, per installare php-fpm, possiamo semplicemente usare il comando yum.

$ yum install php-fpm

Potresti voler usare l'opzione "-C" se non vuoi che yum aggiorni i dati del repository prima di installare i pacchetti.

Ora controlla lo stato del servizio php-fpm

# service php-fpm status
php-fpm is stopped

Quindi avvialo

# service php-fpm start
Starting php-fpm:                                          [  OK  ]
[[email protected] ~]#

Ora è il momento di creare uno script php e testarlo. La directory dei file web è /usr/share/nginx/html
Quindi crea un file in quella directory.

# nano /usr/share/nginx/html/phpinfo.php

Dopodiché aggiungiamo questo contenuto.

<?php 
phpinfo();

Ora è il momento di aprire il file tramite il nostro browser.

http://192.168.1.4/phpinfo.php

NO, non funzionerà ancora, dal momento che non abbiamo configurato nginx per eseguire script php.

Configura Nginx per eseguire php

Nginx viene già fornito con una configurazione predefinita per utilizzare php fpm. Apri il file /etc/nginx/conf.d/default.conf e decommenta le seguenti righe.

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
	root           /usr/share/nginx/html;
	fastcgi_pass   127.0.0.1:9000;
	fastcgi_index  index.php;
	fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
	include        fastcgi_params;
}

SCRIPT_FILENAME è molto importante e deve puntare alla posizione corretta, altrimenti continueresti a ricevere "File non trovato". errore.

Salva il file e chiudilo. Ora prova la tua nuova configurazione di nginx.

# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[[email protected] ~]#

La configurazione è OK. Ora riavvia nginx per rendere effettiva la nuova configurazione.

# service nginx restart
Stopping nginx:                                            [  OK  ]
Starting nginx:                                            [  OK  ]
[[email protected] ~]#

Fatto. Ora apri lo script php nel tuo browser e dovrebbe funzionare subito.

http://192.168.1.4/phpinfo.php

Installa APC

APC è la cache php alternativa che consente a php di memorizzare nella cache sia i dati dell'utente che l'opcode. Questo rende l'esecuzione di php più veloce del solito. Il pacchetto per APC è disponibile nel repository di base stesso, quindi non è necessario configurare alcun repository aggiuntivo.

Installalo subito usando yum.

# yum install php-pecl-apc

Ora riavvia php-fpm per abilitare apc

# service php-fpm restart
Stopping php-fpm:                                          [  OK  ]
Starting php-fpm:                                          [  OK  ]
[[email protected] php.d]#

Il file di configurazione per apc si trova nel percorso seguente.

/etc/php.d/apc.ini

Lo stesso percorso è menzionato anche nell'output della funzione phpinfo() se si desidera verificare.
La sezione Configurazione della pagina phpinfo.php dovrebbe avere una sezione per apc che mostra i valori delle varie direttive apc. Tutte queste direttive possono essere configurate nel file apc.ini.

Note

1. Durante la configurazione degli host virtuali, il test di configurazione di nginx potrebbe non riuscire con un errore come questo

# nginx -t
nginx: [emerg] could not build the server_names_hash, you should increase server_names_hash_bucket_size: 32
nginx: configuration file /etc/nginx/nginx.conf test failed

Per correggere questo errore, apri il file di configurazione nginx principale che si trova in /etc/nginx/nginx.conf e aggiungi la seguente riga nel blocco http.

server_names_hash_bucket_size 64;

Ciò aumenterà le dimensioni del bucket di hash e risolverà l'errore.


Cent OS
  1. Come installare o aggiornare a PHP 7 su CentOS 7 Linux Server

  2. Installa MySQL Server 5.6 in CentOS

  3. Installa PHP 7.4 su CentOS 8

  4. Come installare PHP 5.5 su CentOS

  5. Come installare PHP 5.6 su CentOS 7

Installa Nginx su CentOS 7 / RHEL 7

Come installare Nginx su CentOS

Come installare LEMP su CentOS 7

Come installare Nginx su CentOS 6

Come installare il server LEMP su CentOS 8

Come installare Nginx su CentOS 7