Ricerca nel sito web

Come installare LEMP (Nginx, PHP, MariaDB) su Arch Linux


A causa del suo modello Rolling Release 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 file sensibili configurazioni.

Tuttavia, poiché Arch Linux viene fornito con un'installazione di base 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 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à all'installazione e alla configurazione dello stack LEMP (Nginx, PHPMySQL con motore MariaDBPhpMyAdmin) in remoto utilizzando SSH , che può fornire una solida base per creare applicazioni server Web.

Passaggio 1: assegnare un indirizzo IP statico all'interfaccia di rete Arch Linux

1. Dopo l'installazione minima del core di Arch Linux, riavvia il server, accedi con l'account root o l'account sudo amministrativo equivalente e identifica i nomi dei dispositivi NIC del sistema utilizzando il comando ip link.

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 un nome descrittivo schema (provare a utilizzare la stringa “static” combinata con il nome della scheda NIC), emettendo il seguente comando.

sudo pacman -S netctl
sudo cp /etc/netctl/examples/ethernet-static /etc/netctl/my-static-profile

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.

sudo nano /etc/netctl/my-static-profile

Modifica il file con le impostazioni di rete:

Description='A basic static ethernet connection'
Interface=eth0  # Replace with your network interface name
Connection=ethernet
IP=static
Address=('192.168.1.100/24')  # Replace with your desired IP address
Gateway='192.168.1.1'         # Replace with your gateway address
DNS=('192.168.1.1')           # Replace with your DNS server, if needed

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.

sudo netctl start my-static-profile
sudo netctl status my-static-profile

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.

sudo netctl enable my-static-profile

Testa anche la tua rete eseguendo un comando ping su un nome di dominio e inoltre installa il pacchetto net-tools (la funzionalità più nota di questo pacchetto è il comando ifconfig che Gli sviluppatori di Arch lo considerano deprecato e sostituito con iproute2).

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

ifconfig
ping linux-console.net

Passaggio 2: installare il software LEMP su Arch Linux

Come sottolineato nell'introduzione di questo articolo, LEMP sta per Linux, Nginx, PHP/PhpMyAdmin,< e MySQL/MariaDB che è una delle piattaforme di applicazioni web più diffuse oggi dopo LAMP (lo stesso stack con Apache nell'equazione).

7. Prima di installare 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 il 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 del 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, rimuovendo un account utente anonimo, rimuovendo il database di test e account root accessibili dall'esterno di localhost.

Esegui il seguente comando 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: in nessun caso confondere l'account root MySQL con l'account root del sistema Linux: sono due cose diverse, non così diverse ma correre su diversi livelli.

Per verificare l'accesso sicuro MySQL al database utilizzando la sintassi del comando mysql -u root -p, fornisci la tua password di root quindi lascia il 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 un PHP-FPM - Modulosupportato per comunicare tramite Fast Common Gateway e modificare il contenuto dinamico generato da 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
sudo systemctl enable php-fpm

Per elencare tutti i moduli PHP disponibili, immetti i seguenti comandi.

sudo pacman -Ss | grep php

12. Uno degli ultimi passaggi è installare l'interfaccia Web PhpMyAdmin per il database MySQL. Emetti il comando seguente per installare PhpMyAdmin insieme al modulo necessario per PHP, quindi crea un collegamento simbolico per il percorso di sistema PhpMyaAdmin al percorso root predefinito di Nginx.

sudo pacman -S phpmyadmin
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 seguenti righe.

extension=mysqli.so
extension=mysqli
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. Esegui 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  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.

Articoli correlati: