Installazione di LEMP (Nginx, PHP, MySQL con motore MariaDB e PhpMyAdmin) in Arch Linux
A causa del suo modello di rilascio progressivo che abbraccia software all'avanguardia, Arch Linux non è stato progettato e sviluppato per funzionare come server per fornire servizi di rete affidabili perché richiede tempo extra per la manutenzione, aggiornamenti costanti e configurazioni di file sensibili.
Tuttavia, poiché Arch Linux viene fornito con un'installazione principale da CD con un software minimo preinstallato, può rappresentare un solido punto di partenza di base per installare la maggior parte dei servizi di rete più diffusi al giorno d'oggi, incluso < b>LEMP o LAMP, Apache Web Server, Nginx, PHP, database SQL, Samba, server FTP, BIND e altri, molti dei quali forniti da Arch Repository ufficiali Linux e altri da AUR.
Questo tutorial guiderà attraverso l'installazione e la configurazione dello stack LEMP (Nginx, PHP, MySQL con motore MariaDB e PhpMyAdmin) da remoto utilizzando SSH, che può fornire una solida base per creare applicazioni server Web.
Requisiti
Precedente Guida all'installazione di Arch Linux, ad eccezione dell'ultima parte sul networking con DHCP.
Passaggio 1: assegnare un IP statico all'interfaccia di rete
1. Dopo l'installazione minima del core Arch Linux, riavvia il server, accedi con l'account root o un account sudo amministrativo equivalente e identifica i nomi dei dispositivi delle schede NIC del sistema utilizzando collegamento ip comando.
ip link
2. Per assegnare configurazioni di rete statiche utilizzeremo il pacchetto Netctl per gestire le connessioni di rete. Dopo aver identificato con successo i nomi delle interfacce di rete, copia il modello di file ethernet-static nel percorso di sistema netctl e modifica il suo nome in uno schema di denominazione descrittivo ( provare a utilizzare la stringa "static" combinata con il nome della scheda NIC), emettendo il seguente comando.
cp /etc/netctl/examples/ethenet-static /etc/netctl/static.ens33
3. Il passaggio successivo è modificare questo nuovo file modello modificando le direttive del file e fornendo le impostazioni di rete effettive (interfaccia, IP/maschera di rete, gateway, trasmissione, DNS) come nell'estratto seguente.
nano /etc/netctl/static.ens33
Description='A basic static ethernet connection for ens33'
Interface=ens33
Connection=ethernet
IP=static
Address=('192.168.1.33/24')
Gateway='192.168.1.1'
Brodcast='192.168.1.255'
DNS=('192.168.1.1' '8.8.8.8')
4. Il passo successivo è avviare la connessione di rete tramite lo strumento di sistema netctl e verificare la connettività del sistema immettendo i seguenti comandi.
netctl start static.ens33
netctl status static.ens33
5. Se ottieni uno stato di uscita verde attivo, hai configurato con successo la tua interfaccia di rete ed è ora di abilitarla automaticamente sui servizi a livello di sistema. Testa anche la tua rete eseguendo un comando ping su un nome di dominio e inoltre installa il pacchetto net-tools (la caratteristica più conosciuta di questo pacchetto è il comando ifconfig che Arch gli sviluppatori lo considerarono un po' deprecato e lo sostituirono con iproute2).
Abilita le configurazioni della NIC a livello di sistema
netctl enable static.ens33
Installa il pacchetto net-tools
pacman -S net-tools
6. Ora puoi eseguire il comando ifconfig per verificare le impostazioni delle interfacce di rete e controllare se tutto è visualizzato correttamente, quindi riavviare il tuo sistema per assicurarti che tutto sia a posto e configurato correttamente.
ping linux-console.net
Passaggio 2: installare il software LEMP
Come sottolineato nell'introduzione di questo articolo, LEMP sta per Linux+Nginx+PHP/PhpMyAdmin+MySQL/MariaDB che è una delle piattaforme di applicazioni web più diffuse oggi dopo LAMP (il stesso stack con Apache nell'equazione).
7. Prima di installare effettivamente lo stack LEMP dobbiamo aggiornare il sistema e quindi ottenere il controllo remoto sul server Arch Linux. Come probabilmente saprai, OpenSSH è il candidato principale per questo lavoro, quindi vai avanti e installalo, avvia il demone SSH e abilitalo a livello di sistema.
sudo pacman -Syu
sudo pacman –S openssh
sudo systemctl start sshd
sudo systemctl status sshd
sudo systemctl enable sshd
Ora è il momento di procedere con l'installazione di LEMP. Poiché questo tutorial vuole essere una guida completa, dividerò l'installazione dello stack LEMP in piccole parti, passo dopo passo.
8. Installa innanzitutto Nginx Web Server, quindi avvialo e verificane lo stato immettendo i seguenti comandi.
sudo pacman -S nginx
sudo systemctl start nginx
sudo systemctl status nginx
9. Il prossimo servizio da installare è il database MySQL. Emetti il seguente comando per installare il server database MySQL e scegli il motore MariaDB, quindi avvia e verifica lo stato del demone.
sudo pacman -S mysql
sudo systemctl start mysqld
sudo systemctl status mysqld
10. Il passo successivo è fornire un ambiente altamente sicuro per i database MySQL fornendo una password per l'account root MySQL, rimuovere l'account utente anonimo, rimuovere il database di test e gli account root accessibili dall'esterno del localhost. Esegui il comando seguente per migliorare la sicurezza MySQL, premi [Invio] per la password dell'account root corrente, quindi rispondi Sì a tutte le domande (imposta anche la password dell'account root).
sudo mysql_secure_installation
Nota: non confondere in alcun modo l'account root MySQL con l'account root del sistema Linux: sono due cose diverse, non così diverse ma funzionano su livelli diversi.
Per verificare l'accesso sicuro MySQL al database utilizzando la sintassi del comando mysql -u root -p, fornisci la password di root quindi esci dal database con il comando exit;.
mysql -u root -p
11. Ora è il momento di installare il linguaggio di scripting lato server PHP per poter sviluppare ed eseguire applicazioni web dinamiche complesse, non solo servire HTML/CSS codice.
Poiché utilizziamo Nginx come server Web, dobbiamo installare il modulo supportato da PHP-FPM per comunicare tramite Fast Common Gateway e modificare il contenuto dinamico generato tramite script PHP.
Emetti la seguente riga di comando per installare il servizio PHP-FPM, quindi avvia il demone e verifica lo stato.
sudo pacman –S php php-fpm
sudo systemctl start php-fpm
sudo systemctl status php-fpm
Per elencare tutti i moduli PHP disponibili, immetti i seguenti comandi.
sudo pacman –S php[TAB]
sudo pacman –Ss | grep php
12. Uno degli ultimi passaggi è installare PhpMyAdmin Web Interface per il database MySQL. Emettere il comando seguente per installare PhpMyAdmin insieme al modulo PHP necessario, quindi creare un collegamento simbolico per il percorso di sistema PhpMyaAdmin al percorso root predefinito di Nginx.
pacman -S phpmyadmin php-mcrypt
sudo ln -s /usr/share/webapps/phpMyAdmin /usr/share/nginx/html
13. Quindi configura il file php.ini per includere le estensioni necessarie necessarie all'applicazione PhpMyAdmin.
sudo nano /etc/php/php.ini
Individua con i tasti [CTRL+W] e decommenta (rimuovi ; all'inizio della riga) le righe seguenti.
extension=mysqli.so
extension=mysql.so
extension=mcrypt.so
mysqli.allow_local_infile = On
Nello stesso file individuare e modificare la direttiva open_basedir in modo che assomigli alle seguenti directory incluse.
open_basedir= /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/
14. Il passaggio successivo è abilitare PHP-FPM FastCGI sulla direttiva Nginx localhost. Emetti il comando successivo per eseguire il backup della configurazione del file del server web nginx.conf, quindi sostituiscilo con il seguente contenuto.
sudo mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
sudo nano /etc/nginx/nginx.conf
Aggiungi l'intero contenuto seguente su nginx.conf.
#user html;
worker_processes 2;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
gzip on;
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
charset koi8-r;
location / {
index index.php index.html index.htm;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
}
location /phpmyadmin {
rewrite ^/* /phpMyAdmin last;
}
error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
#fastcgi_pass 127.0.0.1:9000; (depending on your php-fpm socket configuration)
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ /\.ht {
deny all;
}
}
}
15. Dopo aver effettuato tutte le configurazioni dei file, tutto ciò che devi fare è riavviare i servizi Nginx e PHP-FPM e puntare il browser su http://localhost/phpmyadmin URL dal nodo locale o http://arch_IP/phpmyadmin da un altro computer.
sudo systemctl restart php-fpm
sudo systemctl restart nginx
16. Se tutto funziona come previsto, il passaggio finale è abilitare LEMP a livello di sistema con i seguenti comandi.
sudo systemctl enable php-fpm
sudo systemctl enable nginx
sudo systemctl enable mysqld
Congratulazioni! Hai installato e configurato LEMP su Arch Linux e, ora, disponi di un'interfaccia dinamica completa per avviare e sviluppare applicazioni web.
Sebbene Arch Linux non sia il sistema più adatto per l'esecuzione su server di produzione a causa del suo modello di rilascio progressivo orientato alla comunità, può essere una fonte molto veloce e affidabile per piccoli ambienti di produzione non critici.