Ricerca nel sito web

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 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.