Per eseguire un sito web WordPress, è necessario ospitarlo su un server web. Questo è ciò che consente ai browser web di richiedere i dati del tuo sito. Esistono diverse opzioni di server web, tuttavia, che possono rendere la scelta un compito difficile. 

Sebbene siano diversi i server web tra cui scegliere, Apache e NGINX sono le soluzioni più popolari. Questi due server web gestiscono oltre il 50% di tutto il traffico web. Sebbene condividano molte qualità, ci sono che differenze che devi conoscere in modo da poter scegliere quello giusto per il tuo sito. 

In questo articolo, discuteremo le differenze tra NGINX vs Apache. Vedremo quindi come installare WordPress su entrambi i web server.

Iniziamo!

NGINX vs Apache: prestazioni a confronto

Come accennato in precedenza, NGINX e Apache sono le opzioni di server web più importanti. Sono entrambi in grado di gestire diversi carichi di lavoro e lavorare con altri software per formare stack LAMP e LEMU . Per confrontare accuratamente questi server web, tuttavia, è necessario capire in che modo differiscono.

Apache

Apache è il più vecchio dei due web server poichè è stato rilasciato nel 1995 da Robert McCool. Dal 1996 Apache è stato il primo server web ed è utilizzato da circa il 38,7% dei siti web.

Apache offre una serie di vantaggi, tra cui:

  • Opzioni di preinstallazione: Apache è preinstallato sulle principali distribuzioni Linux. 
  • Comunità di utenti: Apache dispone di un’ampia comunità di utenti che si aiutano a vicenda. 
  • Sistema di caricamento dinamico dei moduli: questo sistema ti impedisce di toccare il pacchetto principale durante l’aggiornamento del server.
  • URL rewrite in .htaccess : Apache 2 usa mod_rewrite.
  • Design modulare: Apache offre maggiore personalizzazione e flessibilità grazie al design modulare.
  • Configurazione del server utilizzando il file httpd.conf : la configurazione è semplice, poiché non è necessario accedere al file apache2.conf principale .

Apache è un server web intuitivo con molte funzionalità di personalizzazione. Il software è anche compatibile con i server Unix e Windows. 

NGINX

NGINX è stato rilasciato nel 2004 da Igor Szsoev per risolvere il problema C10K . Questa è la sfida che i server web devono affrontare quando gestiscono 10.000 o più connessioni simultanee.

Per risolvere questo problema, NGINX è stato sviluppato come un’architettura asincrona, non bloccante e basata su eventi. Questa è una delle principali differenze tra NGINX e Apache. È anche uno dei motivi per cui circa il 32,1% dei siti web utilizza NGINX.

Ci sono molti altri vantaggi offerti da NGINX, come:

  • Design leggero : NGINX può essere eseguito su hardware minimo e utilizza meno memoria di Apache. 
  • Gestione del contenuto statico : NGINX offre una migliore gestione del contenuto statico se configurato correttamente. 
  • Reattività ai carichi pesanti : NGINX rimane altamente reattivo in caso di traffico intenso. 
  • Design intuitivo: la curva di apprendimento è più semplice e NGINX è adatto ai principianti. 
  • Configurazione modulare : il design di questo server consente build flessibili e una gamma di moduli di terze parti . 

NGINX è spesso visto come la soluzione migliore per i siti web ad alto traffico, perché può gestire carichi pesanti. È ideale anche per mantenere le massime prestazioni su siti con molti contenuti statici.

Qual è la differenza tra Apache e NGINX?

Sebbene NGINX e Apache siano simili, ci sono molte differenze tra i due. La più grande distinzione è il modo in cui questi server web gestiscono le richieste. Apache utilizza una soluzione “forked”, mentre NGINX utilizza un ciclo di eventi non bloccante. 

Apache fornisce moduli multi-elaborazione (MPM) che determinano il funzionamento della gestione delle richieste. L’approccio forked semplifica la sostituzione dell’architettura di gestione delle connessioni. I moduli utilizzati in questo approccio sono aggiunte alle funzionalità principali di Apache. Ogni modulo avvia un processo diverso per la gestione delle richieste del server.

Un esempio è mpm-worker , che è un modulo che crea processi che gestiscono più thread. Ogni thread è una singola connessione al server. L’aggiunta di questo modulo consente il ridimensionamento del server e la gestione di grandi quantità di traffico. 

NGINX è diverso e genera solo processi di lavoro per la gestione simultanea delle richieste. Questi processi sono eventi non bloccanti che verificano ed elaborano continuamente le richieste. Questo controllo continuo crea un loop. Tutti gli eventi nel loop sono asincroni e vengono rimossi quando la connessione si chiude. 

Qual è il miglior server web per WordPress?

Sia Apache che NGINX funzionano bene con WordPress. Tuttavia, NGINX potrebbe essere la scelta migliore se desideri prestazioni più elevate. Diamo un’occhiata a come installare WordPress su entrambi i web server, così sarai pronto per iniziare con uno dei due.

Come installare WordPress su Apache

Per installare WordPress su Apache, dovrai configurare uno stack LAMP ( Linux , Apache, MySQL e PHP ). Questo viene generalmente fatto su un server Ubuntu. 

Passaggio 1: crea un utente Sudo sul tuo server

Per creare un utente, accedi al tuo server come utente root . Quindi utilizza il comando adduser di seguito per creare un nuovo account:

$ adduser username

Il server chiederà di impostare e confermare una password. Successivamente, inserisci i dettagli per l’utente. Quindi puoi fornire l’ accesso sudo a quell’utente. Questo accesso consente all’utente di eseguire comandi che normalmente vengono completati dall’utente root. 

Per aggiungere l’utente a un gruppo sudo , inserisci il seguente comando:

$ usermod -aG sudo username

Quindi, ti consigliamo di accedere al server come utente sudo per il resto del processo di installazione. 

Passaggio 2: installa Apache web Server

Per installare Apache , dovrai utilizzare apt del gestore di pacchetti di Ubuntu . Questa è l’impostazione predefinita sui server Ubuntu. L’immissione del seguente comando sudo avvia l’installazione dopo aver immesso la password:

$ sudo apt update
$ sudo apt install apache2

Vedrai quindi i pacchetti che verranno installati e quanto spazio su disco è richiesto. Premi Y e poi Invio per avviare l’installazione. 

Passaggio 3: installa il server di database MySQL

Successivamente, dovrai installare il sistema di gestione del database MySQL. Il seguente comando nel gestore dei pacchetti avvierà l’installazione:

$ sudo apt install mysql-server

Verranno visualizzati di nuovo I pacchetti richiesti e lo spazio su disco. Per avviare l’installazione, premi Y e imposta la password di root. 

Passaggio 4: installa PHP

PHP è la parte del tuo stack LAMP che elabora il codice in contenuto dinamico. Per installarlo, devi inserire il seguente comando:

$ sudo apt install php libapache2-mod-php php-mysql

PHP dovrebbe installarsi senza problemi. Dovrai riavviare il server per completare l’installazione dello stack. Per fare ciò, inserisci il seguente comando:

$ sudo systemctl restart apache2

Il tuo stack LAMP è ora installato e configurato. 

Passaggio 5: configurazione degli host virtuali

Gli host virtuali riassumono i dettagli di configurazione e sono un passaggio consigliato.

I server Apache utilizzano per impostazione predefinita le directory /var/www/html. Per creare un host virtuale, dovrai impostare una struttura di directory in /var/www per il dominio del nuovo sito web. 

Usa il seguente comando per creare questa struttura:

sudo mkdir /var/www/new_domain

Cambia new_domain con il dominio del tuo sito web. Quindi crea un file index.html con contenuto di esempio utilizzando il comando nano :

$ nano /var/www/new_domain/index.html

Per assicurarti che Apache serva i tuoi contenuti, dovrai anche creare un file host. Il seguente comando crea il file di configurazione:

$ sudo nano /etc/apache2/sites-available/your_domain.conf

Quindi aggiungi il seguente blocco di configurazione:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName new_domain
    ServerAlias www.new_domain
    DocumentRoot /var/www/new_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Il comando successivo abilita il file, mentre il secondo disabilita il sito predefinito sul server:

$ sudo a2ensite new_domain.conf
$ sudo a2dissite 000-default.conf

Il tuo host virtuale dovrebbe ora essere configurato e funzionante. Questa directory appena creata dovrebbe essere utilizzata per l’installazione di WordPress. 

Passaggio 6: installa WordPress

Dopo aver configurato il tuo stack LAMP, puoi installare WordPress. Scarica l’ultima versione di WordPress e installala con il seguente comando :

$ sudo apt update
$ sudo apt install wordpress php libapache2-mod-php mysql-server php-mysql

Successivamente, configura Apache per WordPress e crea il database MySQL . Quindi puoi utilizzare l’interfaccia del browser web per completare la configurazione del sito web WordPress.

Come installare WordPress su NGINX

Per installare WordPress su NGINX, è necessario un server che esegue una delle distribuzioni supportate da NGINX Unit. Se stai usando Linux, creerai uno stack LEMU (Linux, NGINX, MySQL e NGINX Unit). 

Passaggio 1: installa MySQL

Prima di iniziare, crea un utente del server con accesso sudo. Accedi al tuo server come utente root e usa il seguente comando per creare un nuovo account:

$ adduser username

Dovrai inserire e confermare una password prima di inserire i dettagli per l’utente. Quindi puoi fornire l’ accesso sudo a quell’utente. Questo accesso consente all’utente di eseguire comandi che normalmente vengono completati dall’utente root. 

Per aggiungere l’utente a un gruppo sudo , inserisci il seguente comando:

$ usermod -aG sudo username

Accedi al server come utente sudo e utilizza il seguente comando per installare MySQL:

$ sudo apt-get install mysql-server

Immetti una nuova password di root. Lo strumento di configurazione MySQL può quindi essere eseguito. Questa è una procedura guidata di configurazione che guida l’utente attraverso il processo di installazione.

Passaggio 2: crea un database MySQL

Una volta che MySQL è pronto, puoi creare un nuovo database . Dovrai anche creare un nuovo utente con autorizzazione di gestione. Per fare ciò, accedi all’account root MySQL e inserisci i seguenti comandi:

$ sudo mysql -u root -p
mysql> CREATE DATABASE wordpress;
mysql> CREATE USER user@localhost IDENTIFIED BY 'secure_password';
mysql> GRANT ALL PRIVILEGES ON wordpress.* TO user@localhost;
mysql> FLUSH PRIVILEGES;
mysql> Exit
Bye

Il comando Flush Privileges fa in modo che MySQL riconosca le modifiche apportate. È necessario modificare il nome utente e la password predefiniti in base alle proprie preferenze. 

Passaggio 3: installa WordPress

Prima di installare WordPress, è necessario creare un percorso di file temporaneo utilizzando il seguente comando:

$ cd /var/www/
$ sudo wget http://wordpress.org/latest.tar.gz
$ sudo tar xzvf latest.tar.gz

Questo comando scarica e decomprime anche WordPress.

Passaggio 4: configura WordPress

Successivamente, crea una copia del file di configurazione di WordPress e rinominalo utilizzando i seguenti comandi:

$ cd /var/www/wordpress
$ sudo cp wp-config-sample.php wp-config.php

È possibile aggiornare le chiavi SALT nel file per migliorare la sicurezza. L’utilizzo di nano apre il file wp-config.php e consente di cercare le chiavi SALT:

$ sudo nano wp-config.php

Sostituisci le chiavi con quelle appena generate, quindi salva ed esci dal file. 

Passaggio 5: installa PHP

Sebbene sia possibile utilizzare l’unità NGINX, è comunque necessario installare PHP. È possibile utilizzare il seguente comando per farlo:

$ sudo apt-get install -y php7.0 php7.0-common php7.0-mbstring php7.0-gd php7.0-intl php7.0-xml php7.0-mysql php7.0-mcrypt

Questo passaggio è necessario perché WordPress si basa su diverse estensioni che non sono incluse in NGINX Unit.

Passaggio 6: installa l’unità NGINX

Infine, dovrai installare l’unità NGINX precompilata per il sistema operativo del tuo server. Usa il seguente comando per installare il modulo per PHP:

$ sudo apt-get install unit-php
$ sudo service unit restart
$ sudo curl -X PUT --data-binary @/usr/share/doc/unit-php/examples/unit.config --unix-socket /run/control.unit.sock http://localhost/config 
$ curl http://localhost:8300/

Questi comandi verificano anche che l’unità NGINX e PHP funzionino correttamente.

Successivamente, è necessario installare e configurare NGINX Open Source . È possibile installare un pacchetto predefinito dal ramo mainline. Questi includono le ultime funzionalità e patch. Dopo questa configurazione, WordPress sarà pronto per l’uso. 

Conclusione

Apache e NGINX sono le soluzioni software per server web più popolari. Sebbene siano molto simili, NGINX fornisce prestazioni migliori per i siti web ad alto traffico mentre Apache ha una comunità più ampia e migliore documentazione.

Buon lavoro!