GNU/Linux >> Linux Esercitazione >  >> OpenSuse

Come installare Nginx, PHP e MySQL (LEMP Stack) su OpenSUSE Leap 42.1

LEMP o Linux, Engine-x, MySQL e PHP è una raccolta di software installati sul sistema operativo Linux per far funzionare le tue applicazioni web basate su PHP sul veloce server web Nginx. Lo stack LEMP fornisce una base veloce e affidabile per l'hosting di applicazioni web. LEMP è una raccolta di software open source con un set di documentazione completo che ti consente di saperne di più sulle diverse applicazioni e sul modo in cui si integrano.

In questo tutorial, ti mostrerò come installare Nginx, MariaDB e PHP-FPM su openSUSE leap 42.1. Quindi configurerò il firewall OpenSUSE con SuSEfirewall2 per consentire l'accesso al server web Nginx e ti mostrerò come aggiungere una nuova configurazione di host virtuale sul server web Nginx.

Infine, installeremo phpMyAdmin come strumento di amministrazione del database facile da usare e lo proteggeremo cambiando la directory web e abilitando l'autenticazione HTTP per la directory phpMyAdmin.

Prerequisito

  • OpenSUSE Leap 42.1.
  • Privilegi di root.
  • Comprendere il comando zypper.

Fase 1:installazione e configurazione di SuSEfirewall2

SuSEfirewall2 è uno script che genera regole iptables basate sul file di configurazione "/etc/sysconfig/SuSEfirewall2". Lo installeremo e configureremo per prevenire attacchi di rete alla porta del server.

Installa SuSEfirewall2 con zypper:

zypper in SuSEfirewall2

Al termine dell'installazione, dobbiamo aprire alcune porte per le applicazioni web e SSH. Apriremo la porta 22 per il servizio ssh e le porte 80 e 443 per http e https. Vai alla directory "/etc/sysconfig/" e modifica il file "SuSEfirewall2":

cd /etc/sysconfig/
vim SuSEfirewall2

Nella riga 253, aggiungi i numeri di porta dei servizi, separati da uno spazio bianco:

FW_SERVICES_EXT_TCP="22 80 443"

Salva il file ed esci.

Riavvia SuSEfirewall2 e il servizio SSH, quindi verifica la configurazione della porta connettendoti con telnet al server.

Riavvia il servizio SuSEfirewall2 e SSH:

/sbin/rcSuSEfirewall2 restart
systemctl restart sshd

Test della connessione ssh con telnet sulla porta 22:

telnet 192.168.1.101 22

Fase 2 - Installa e configura Nginx

Nginx o engine x è un server proxy e HTTP ad alte prestazioni con un consumo di memoria ridotto. Viene utilizzato da siti Web su larga scala come Netflix, Pinterest, CloudFlare, Github ecc. Nginx ha una sintassi di configurazione facile da imparare e può fungere anche da bilanciamento del carico con controlli dello stato e proxy inverso con funzionalità di memorizzazione nella cache.

In questo passaggio, installeremo nginx e lo aggiungeremo per iniziare all'avvio. Installalo con il comando "zypper in":

zypper in nginx

Avvia nginx e abilita l'avvio all'avvio:

systemctl start nginx
systemctl enable nginx

Nginx è ora avviato, ma se provi ad accedervi tramite il browser web, otterrai un errore proibito 403. Questo errore si verifica perché nella cartella principale Web non è presente alcun documento indice standard. Per risolvere questo problema, crea un nuovo indice html nella directory web principale "/srv/www/htdocs". Vai alla directory e crea il file index.html:

cd /srv/www/htdocs/
echo "<h1>This is Nginx OpenSUSE Leap 42.1</h1>" > index.html

Apri il tuo browser web e digita l'IP del tuo server e otterrai la pagina dell'indice:

http://192.168.1.101/

Fase 3 - Installa e configura MariaDB

MariaDB è un RDBMS (Relational Database Management System) open source derivato da MySQL con licenza GNU GPL. In questo tutorial installeremo MariaDB e configureremo la password di root per la shell di MariaDB.

Installa MariaDB con il comando zypper:

zypper in mariadb mariadb-client

Avvia MariaDB/MySQL e aggiungilo all'avvio di avvio con il comando systemctl di seguito:

systemctl start mysql
systemctl enable mysql

Quindi, configura la password amministratore per MariaDBb/MySQL con il comando mysqladmin. Un'altra opzione che puoi usare per questo scopo è "mysql_secure_installation". In questo passaggio, userò mysqladmin:

/usr/bin/mysqladmin -u root password 'aqwe123'

Nota:

"aqwe123" è la nuova password per MariaDB/MySQL.

Quindi accedi alla shell mysql con utente root e password aqwe123:

mysql -u root -p
TYPE PASSWORD 'aqwe123'

Ora MariaDB/MySQL è installato e configurato con la nostra nuova password.

Fase 4 - Installa e configura PHP-FPM

PHP-FPM o FastCGI Process Manager è un'alternativa al vecchio PHP FastCGI con funzionalità aggiuntive e miglioramenti della velocità. PHP-FPM è adatto per siti di piccole e grandi dimensioni basati sul linguaggio di programmazione PHP.

In questo passaggio, installeremo php5-fpm con alcune estensioni aggiuntive richieste da phpMyAdmin. Installa php5-fom e le estensioni con zypper:

zypper in php5 php5-mysql php5-fpm php5-gd php5-mbstring

Al termine dell'installazione, vai nella directory php5-fpm e copia il file di configurazione:

cd /etc/php5/fpm/
cp php-fpm.conf.default php-fpm.conf

Modifica la configurazione con il comando vim:

vim php-fpm.conf

Decommenta la riga 32 per abilitare php-fpm log, il prefisso predefinito è /var e se hai qualche problema con php5-fpm, puoi controllare il file di log "/var/log/php-fpm.log".

error_log = log/php-fpm.log

Nella riga 148 configureremo il proprietario del processo nginx per l'utente Nginx. Cambia utente e gruppo di processi in nginx:

user = nginx
group = nginx

Riga 159:configura php-fpm per l'esecuzione in un file socket, non nella porta. Cambia quella riga in questo modo:

listen = /var/run/php-fpm.sock

E alla riga 170, cambia i permessi per il socket unix per l'utente e il gruppo nginx con la modalità 0660.

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Salva il file ed esci dall'editor.

Quindi, vai nella directory PHP cli e modifica il file php.ini con vim:

cd /etc/php5/cli/
vim php.ini

Modificare il valore di cgi.fix_pathinfo su zero per motivi di sicurezza. riga 178:

cgi.fix_pathinfo=0

salva ed esci.

Copia il php.ini nella directory conf.d:

cp php.ini /etc/php5/conf.d/

La configurazione PHP-FPM viene eseguita in questa fase, ma dobbiamo ancora configurare Nginx. Dobbiamo configurare Nginx per funzionare con php-fpm.

Vai alla directory di configurazione di nginx ed esegui un backup del file di configurazione con il comando cp:

cd /etc/nginx/
cp nginx.conf nginx.conf.backup

Modifica nginx.conf con vim:

vim nginx.conf

Aggiungi index.php alla riga 48:

index index.php index.html index.htm;

Aggiungi la nuova sezione di configurazione php alla riga 68, questa è la configurazione per la gestione delle richieste di file .php.

       location ~ \.php$ {
                root /srv/www/htdocs;
                try_files $uri =404;
                include /etc/nginx/fastcgi_params;
                fastcgi_pass unix:/var/run/php-fpm.sock;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       }

Salva il file ed esci.

Quindi, verifica la sintassi del file di configurazione nginx per assicurarti che non ci siano errori. Quindi avvia il demone php-fpm e riavvia Nginx:

nginx -t
systemctl start php-fpm
systemctl restart nginx

Per assicurarci che php-fpm e nginx funzionino correttamente, aggiungeremo un nuovo file di test php. Vai alla directory DocumentRoot e crea un file phpinfo con il nome info.php:

cd /srv/www/htdocs/
echo "<?php phpinfo(); ?>" > info.php

Apri il tuo browser web digita il tuo indirizzo IP del server:

http://192.168.1.101/info.php

Nginx e php-fpm ora funzionano.

Passaggio 5:configurazione di un host virtuale Nginx

In questo passaggio, ti mostrerò come aggiungere una configurazione di host virtuale per un sito web. Configureremo un nuovo dominio "www.example.com" e la directory webroot in "/srv/www/example/". Sostituisci esempio ed esempio.com con il tuo nome di dominio.

GNginx nginx e creare una nuova directory per la configurazione dell'host virtuale.

cd /etc/nginx/
mkdir vhosts.d/
cd vhosts.d/

Quindi, crea un nuovo file example.conf per il nome di dominio "example.com" virtualhost.

vim example.conf

incolla la configurazione dell'host virtuale di seguito:

server {
    server_name example.com;
    return 301 $scheme://www.example.com$request_uri;
}

server {
    listen 80;

    root /srv/www/example;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

          location ~ \.php$ {
                try_files $uri =404;
                include /etc/nginx/fastcgi_params;
                fastcgi_pass unix:/var/run/php-fpm.sock;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       }


}

Salva il file ed esci.

Ora crea la directory per il sito "example.com" nella directory /srv/www/ e crea un nuovo file di indice.

mkdir -p /srv/www/example/
cd /srv/www/example/
echo "<h1>This is www.example.com site.</h1>" > index.html
echo "<?php phpinfo(); ?>" > info.php

Ora apri il tuo browser web e visita il dominio:

esempio.com

Verrai reindirizzato al dominio www e ora accedi al file php:

http://www.example.com/info.php

Fase 6 - Installa e configura phpMyAdmin

PhpMyAdmin è un'applicazione basata su PHP per gestire database MySQL o MariaDB da un browser web. In questo passaggio, configurerò phpMyAdmin per l'esecuzione sotto php-fpm e quindi renderò PHPMyAdmin sicuro limitando l'accesso alla pagina di accesso di phpMyAdmin.

Installa phpMyAdmin con il comando zypper:

zypper in phpMyAdmin

Il comando installerà tutti i pacchetti necessari a phpMyAdmin, incluso apache2-utils richiesto per creare il file della password.

Ora abbiamo phpMyAdmin installato sul sistema. Successivamente creeremo un nuovo file htpasswd con il comando htpasswd.

crea il file della password htpasswd:

htpasswd -c /etc/nginx/htpasswd megumi
TYPE YOUR PASSWORD for user megumi

Successivamente, dobbiamo configurare Nginx per utilizzare l'autenticazione di base HTTP per la directory phpmyadmin. Limiteremo l'accesso alla pagina di accesso di phpMyAdmin con auth_basic e solo gli utenti che si trovano nel file "htpasswd" potranno accedere a phpMyAdmin.

Vai alla directory di configurazione di Nginx e modifica il file nginx.conf:

cd /etc/nginx/
vim nginx.conf

Definisci la directory principale web all'interno della sezione del server aggiungendo una nuova riga sotto la riga 40 (nome_server):

        server_name  localhost;
        root /srv/www/htdocs;       #newline config

Quindi aggiungi la configurazione phpMyAdmin per nginx alla riga 60:

    location ~ ^/phpMyAdmin/.*\.php$ {
        auth_basic "Restricted Access";
        auth_basic_user_file  /etc/nginx/htpasswd;
        fastcgi_pass unix:/var/run/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include   fastcgi_params;
    }

Salva il file ed esci dall'editor.

Testa la configurazione di nginx e riavvia nginx:

nginx -t
systemctl restart nginx

Quindi, apri il tuo browser web e visita l'URL di phpMyAdmin, ti verrà chiesto un nome utente e una password per la pagina di accesso.

http://192.168.1.101/phpMyAdmin/

Quindi accedi con il tuo nome utente e password MySQL.

phpMyAdmin è stato installato con successo e solo l'utente in htpasswd può accedere.


OpenSuse
  1. Come installare Nginx con PHP-FPM e MySQL su openSUSE 12.1

  2. Come installare Mysql Server 8 su OpenSUSE Leap 15.3

  3. Come installare e configurare PHP e Apache (stack LAMP) su OpenSUSE Leap 15.3

  4. Come installare e configurare Nginx come proxy OpenSUSE Leap 15.3

  5. Come installare LEMP Stack Nginx, MySQL, PHP su Debian 11

Come installare lo stack LEMP su Ubuntu 20.04

Come installare Nginx, MySQL e PHP (LEMP) su Ubuntu 20.04

Come installare lo stack LEMP (Nginx, MariaDB e PHP) su AlmaLinux 8

Come installare PHP 8.0 su openSUSE 15 Leap

Come installare Nginx, MySQL e PHP (LEMP) su un server Ubuntu 15.04

Come installare lo stack Nginx, MySQL, PHP (LEMP) su un server cloud Debian 8.3