GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Configurazione di base di PHP 7 e Nginx su Ubuntu 16.04 Linux

Nginx sta rapidamente superando Apache come server web preferito. Per le app Web costruite in linguaggi come Rails e Python è praticamente onnipresente, ma è un po' più lento a prendere piede nel mondo PHP. Parte del motivo è la facilità con cui PHP e Apache vanno insieme. Tuttavia, PHP e Nginx possono cooperare quasi altrettanto facilmente e, con il rilascio di PHP 7, combinare i due può essere un'opzione abbastanza veloce.

I pacchetti

Cominciando dall'inizio. Aggiorna Ubuntu e ottieni i pacchetti Nginx e PHP.

# sudo apt-get update && sudo apt-get -y upgrade
# sudo apt-get -y install nginx php7.0 php7.0-fpm

Al termine dell'installazione, i pacchetti dovrebbero essere tutti a posto e effettivamente in esecuzione. Per assicurarti che sia così, puoi controllare che sia Nginx che i servizi PHP-FPM siano in esecuzione in Systemd.

# sudo systemctl status nginx
# sudo systemctl status php7.0-fpm

Se Systemd conferma che entrambi i servizi sono in esecuzione, il server dovrebbe essere effettivamente attivo e dovresti essere in grado di vedere la pagina di benvenuto predefinita di Nginx navigando su localhost nel browser.

Configurazione

Ovviamente, non è neanche lontanamente pronto per ospitare effettivamente qualcosa. È necessaria una configurazione per puntare Nginx su alcuni contenuti effettivi e migliorare la sicurezza. La directory principale per i file di configurazione di Nginx si trova in /etc/nginx . Per fortuna, ci sono già impostazioni predefinite da Ubuntu che rendono il processo di configurazione molto più semplice.

Nginx.conf

Il file di configurazione principale per Nginx è nginx.conf . Aprilo nell'editor di testo di tua scelta. Richiederà i permessi di root, quindi un editor basato su testo come Vim sarà probabilmente il migliore. La configurazione predefinita è per lo più a posto. Ci sono ovviamente cose che possono essere fatte per migliorare la velocità e la sicurezza del sistema, ma la maggior parte di ciò va oltre lo scopo di questo tutorial di base. Se vuoi migliorare le prestazioni, le opzioni Gzip commentate aiuteranno con la compressione e possono velocizzare le cose. Per quanto riguarda la sicurezza, l'aggiunta delle tre righe seguenti aiuterà a prevenire attività dannose.

add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";

Configurazione del sito

Una volta aggiunte le righe, salva ed esci. Ci sono due cartelle nella radice di Nginx, sites-available e sites-enabled . sites-available memorizza le configurazioni del sito. sites-enabled contiene collegamenti simbolici ai file di configurazione in sites-available . In questo modo, abilitare e disabilitare i siti è semplice come creare e rimuovere collegamenti simbolici.

Usando il tuo editor di testo, crea un file in /etc/nginx/sites-available/yoursite . Questo file conterrà qualsiasi configurazione specifica del sito per il tuo nuovo sito Web PHP 7. L'esempio seguente contiene un'analisi nei commenti di ciò che fa ogni riga. È una configurazione abbastanza semplice, ma farà il suo lavoro.


server { 
	
	#Nginx should listen on port 80 for requests to yoursite.com
	listen 80; 
	server_name yoursite.com; 

	#Create access and error logs in /var/log/nginx
	access_log /var/log/nginx/yoursite.access_log main; 
	error_log /var/log/nginx/yoursite.error_log info; 

	#Nginx should look in /var/www/yoursite for your website
	root /var/www/yoursite/;
	#The homepage of your website is a file called index.php 
	index index.php; 

	#Specifies that Nginx is looking for .php files
	location ~ \.php$ { 
		#If a file isn’t found, 404
		try_files $uri =404; 
		#Include Nginx’s fastcgi configuration
		include /etc/nginx/fastcgi.conf;
		#Look for the FastCGI Process Manager at this location 
		fastcgi_pass unix:/run/php/php7.0-fpm.sock; 
	} 
}

Una volta creato il file, salvalo e spostati in sites-enabled directory. Da lì, crea il collegamento simbolico al file che hai appena creato.

# cd /etc/nginx/sites-enabled
# sudo ln -s /etc/nginx/sites-available/yoursite

Sicurezza PHP.ini

La sicurezza è un obiettivo in movimento ed è impossibile stare al passo con ogni possibile minaccia, ma è sempre una buona idea bloccare il più possibile qualsiasi nuova installazione di server. Ci sono alcune semplici modifiche che possono essere apportate a php.ini file di configurazione che aiuterà a proteggere PHP. Con il tuo editor di testo, apri /etc/php/7.0/fpm/php.ini . Questo è un file enorme. Ancora una volta, Vim o qualcosa con una funzione di ricerca è probabilmente il migliore.

Per prima cosa trova disable_functions e aggiungi phpinfo,system,mail,exec alla fine della stringa di funzioni che sono già presenti. Quindi trova file_uploads e impostalo su Off . Quindi, trova sql.safe_mode e attivalo On . Infine, trova allow_url_fopen e impostalo su Off . Prima di chiudere il file, aggiungi un'altra riga alla fine.

register_globals = Off

Al termine, salva e chiudi. Riavvia il server e dovrebbe essere pronto per l'uso.

# sudo systemctl restart php7.0-fpm
# sudo systemctl restart nginx

Dove andare dopo

Così com'è, il server Ubuntu dovrebbe essere in grado di eseguire la maggior parte dei siti Web PHP. Tutti i file PHP inseriti in /var/www/yoursite sarà eseguito dal server. Cercherà il index.php prima il file e il sito Web può diramarsi da lì. Naturalmente, c'è molto di più che può essere fatto per configurare PHP e Nginx per velocità, sicurezza e qualsiasi situazione di caso speciale, ma ora hai un punto di partenza forte.


Ubuntu
  1. Come installare PHP 7.4 e 8.0 su Ubuntu 18.04 o 20.04

  2. Installa e configura PHP OPcache su Ubuntu 20.04

  3. Come installare OpenLiteSpeed ​​e PHP su Ubuntu

  4. Installazione e configurazione di Php e Nginx su Ubuntu 20.04

  5. Come installare e configurare PHP e Nginx (LEMP) su Ubuntu 20.04

Come installare Linux, Lighttpd, MySQL e PHP (LLMP Stack) in Ubuntu 18.04

Come installare Linux, Nginx, MySQL, PHP (LEMP Stack) in Ubuntu 18.04

Dual Boot Ubuntu e Arch Linux

Come installare e configurare Yii PHP Framework su Ubuntu Linux

Come installare Laravel PHP Framework con Nginx su Ubuntu Linux

Bootloader e configurazione Linux di Ubuntu GRUB