Instal·lació de LEMP (Nginx, PHP, MySQL amb motor MariaDB i PhpMyAdmin) a Arch Linux


A causa del seu model Rolling Release, que inclou el programari d'última generació, Arch Linux no va ser dissenyat i desenvolupat per funcionar com a servidor per oferir serveis de xarxa fiables perquè requereix temps addicional per al manteniment, actualitzacions constants i configuracions de fitxers raonables.

Però, tot i així, com que Arch Linux inclou una instal·lació bàsica de CD amb un programari mínim preinstal·lat, pot representar un punt d'inici sòlid per instal·lar la majoria dels serveis de xarxa populars en aquests dies, inclòs < b>LEMP o LAMP, Apache Web Server, Nginx, PHP, bases de dades SQL, Samba, servidors FTP, BIND i altres, molts d'ells proporcionats des d'Arch Repositoris oficials de Linux i altres d'AUR.

Aquest tutorial us guiarà per instal·lar i configurar la pila LEMP (Nginx, PHP, MySQL amb motor MariaDB i PhpMyAdmin) des d'un SSH de manera remota, que pot proporcionar una base sòlida per crear aplicacions de servidor web.

Guia d'instal·lació d'Arch Linux anterior, excepte l'última part sobre xarxes amb DHCP.

Pas 1: assigneu una IP estàtica a la interfície de xarxa

1. Després d'una instal·lació bàsica mínima d'Arch Linux, reinicieu el servidor, inicieu la sessió amb un compte root o un compte administratiu sudo equivalent i identifiqueu els noms dels dispositius de la NIC del vostre sistema mitjançant l'ordre ip link.

# ip link

2. Per assignar configuracions de xarxa estàtiques, utilitzarem el paquet Netctl per gestionar les connexions de xarxa. Després d'haver identificat correctament els noms de les Interfícies de xarxa, copieu la plantilla del fitxer ethernet-static a la ruta del sistema netctl i canvieu-ne el nom a un esquema de denominació descriptiu ( proveu d'utilitzar la cadena estàtica combinada amb el nom de la NIC), emetent l'ordre següent.

# cp /etc/netctl/examples/ethenet-static  /etc/netctl/static.ens33

3. El següent pas és editar aquest nou fitxer de plantilla canviant les directrius del fitxer i proporcionant la configuració de xarxa real (interfície, IP/Màscara de xarxa, passarel·la, difusió, DNS) com en l'extracte següent.

# 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. El següent pas és iniciar la connexió de xarxa mitjançant l'eina del sistema netctl i verificar la connectivitat del sistema emetent les ordres següents.

# netctl start static.ens33
# netctl status static.ens33

5. Si obteniu un estat de sortida verd actiu, heu configurat correctament la vostra Interfície de xarxa i és hora d'activar-la automàticament als serveis de tot el sistema. Proveu també la vostra xarxa executant una ordre ping contra un nom de domini i també instal·leu el paquet net-tools (la característica més coneguda d'aquest paquet és l'ordre ifconfig que Arch els desenvolupadors van considerar que estava obsolet i el van substituir per iproute2).

# netctl enable static.ens33
# pacman -S net-tools

6. Ara podeu executar l'ordre ifconfig per verificar la configuració de les Interfícies de xarxa i comprovar si tot es mostra correctament, després reinicieu el vostre sistema per assegurar-vos que tot està al seu lloc i configurat correctament.

# ping linux-console.net

Pas 2: instal·leu el programari LEMP

Com s'apunta a la introducció d'aquest article, LEMP significa Linux+Nginx+PHP/PhpMyAdmin+MySQL/MariaDB, que és una de les plataformes d'aplicacions web més esteses avui després de LAMP (el mateixa pila amb Apache a l'equació).

7. Abans d'instal·lar realment la pila LEMP hem d'actualitzar el sistema i després obtenir control remot al servidor Arch Linux. Com probablement sabeu, OpenSSH és el principal candidat per a aquesta feina, així que aneu endavant i instal·leu-lo, inicieu el dimoni SSH i activeu-lo a tot el sistema.

$ sudo pacman -Syu
$ sudo pacman –S openssh
$ sudo systemctl start sshd
$ sudo systemctl status sshd
$ sudo systemctl enable sshd

Ara és el moment de continuar amb la instal·lació de LEMP. Com que aquest tutorial pretén ser una guia completa, dividiré la instal·lació de la pila LEMP en petits trossos, pas a pas.

8. Primer instal·leu Servidor web Nginx i, a continuació, inicieu-lo i comproveu-ne l'estat emetent les ordres següents.

$ sudo pacman -S nginx
$ sudo systemctl start nginx
$ sudo systemctl status nginx

9. El següent servei a instal·lar és la base de dades MySQL. Emet l'ordre següent per instal·lar el servidor de bases de dades MySQL i escolliu el motor MariaDB i, a continuació, inicieu i verifiqueu l'estat del dimoni.

$ sudo pacman -S mysql
$ sudo systemctl start mysqld
$ sudo systemctl status mysqld

10. El següent pas és proporcionar un entorn molt segur per a les bases de dades MySQL proporcionant una contrasenya per al compte root MySQL, eliminar el compte d'usuari anònim, eliminar la base de dades de prova i els comptes root als quals es pot accedir des de l'host local extern. Executeu l'ordre següent per millorar la seguretat de MySQL, premeu [Intro] per obtenir la contrasenya actual del compte root i, a continuació, responeu a totes les preguntes (també configureu la contrasenya del vostre compte root).

$ sudo mysql_secure_installation

Nota: de cap manera no confongueu el compte arrel MySQL amb el compte arrel del sistema Linux: són dues coses diferents, no tan diferents, però s'executen en diferents nivells.

Per verificar l'inici de sessió de seguretat de MySQL a la base de dades utilitzant la sintaxi de l'ordre mysql -u root -p, proporcioneu la vostra contrasenya d'arrel i deixeu la base de dades amb l'ordre exit;.

# mysql -u root -p

11. Ara és el moment d'instal·lar el llenguatge de script del servidor PHP per poder desenvolupar i executar aplicacions web dinàmiques complexes, no només servir codi HTML/CSS.

Com que estem utilitzant Nginx com a servidor web, hem d'instal·lar el mòdul de suport PHP-FPM per comunicar-nos mitjançant Fast Common Gateway i canviar el contingut dinàmic generat. mitjançant scripts PHP.

Emet la línia d'ordres següent per instal·lar el servei PHP-FPM i, a continuació, inicieu el dimoni i verifiqueu l'estat.

$ sudo pacman –S php php-fpm
$ sudo systemctl start php-fpm
$ sudo systemctl status php-fpm

Per llistar tots els mòduls PHP disponibles, emeteu les ordres següents.

$ sudo pacman –S php[TAB]
$ sudo pacman –Ss | grep php

12. Un dels últims passos és instal·lar la Interfície web PhpMyAdmin per a la base de dades MySQL. Emet l'ordre següent per instal·lar PhpMyAdmin juntament amb el seu mòdul PHP necessari i, a continuació, creeu un enllaç simbòlic per a la ruta del sistema PhpMyaAdmin a la ruta arrel predeterminada de Nginx.

$ pacman -S phpmyadmin php-mcrypt
$ sudo ln -s /usr/share/webapps/phpMyAdmin   /usr/share/nginx/html

13. A continuació, configureu el fitxer php.ini perquè inclogui les extensions necessàries necessàries per a l'aplicació PhpMyAdmin.

$ sudo nano /etc/php/php.ini

Localitzeu amb les tecles [CTRL+W] i elimineu els comentaris (elimineu ; al començament de la línia) les línies següents.

extension=mysqli.so
extension=mysql.so
extension=mcrypt.so
mysqli.allow_local_infile = On

Al mateix fitxer, localitzeu i editeu la directiva open_basedir perquè s'assembla amb els següents directoris inclosos.

open_basedir= /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/

14. El següent pas és habilitar PHP-FPM FastCGI a la directiva Nginx localhost. Emet la següent ordre per fer una còpia de seguretat de la configuració del fitxer del servidor web nginx.conf i després substituïu-la pel contingut següent.

$ sudo mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
$ sudo nano /etc/nginx/nginx.conf

Afegiu tot el contingut següent a 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. Un cop fetes totes les configuracions de fitxers, tot el que heu de fer és reiniciar els serveis Nginx i PHP-FPM i dirigir el vostre navegador a http:// localhost/phpmyadmin URL del node local o http://arch_IP/phpmyadmin des d'un altre ordinador.

$ sudo systemctl restart php-fpm
$ sudo systemctl restart nginx

16. Si tot funciona com es pretén, el pas final és habilitar LEMP a tot el sistema amb les ordres següents.

$ sudo systemctl enable php-fpm
$ sudo systemctl enable nginx
$ sudo systemctl enable mysqld

Enhorabona! Heu instal·lat i configurat LEMP a Arch Linux i ara teniu una interfície dinàmica completa per començar i desenvolupar aplicacions web.

Tot i que Arch Linux no és el sistema més adequat per executar-se en servidors de producció a causa del seu model de llançament continuat orientat a la comunitat, pot ser una font molt ràpida i fiable per a petits entorns de producció no crítics.