Ricerca nel sito web

Come installare Laravel PHP Framework con Nginx su CentOS 8


Laravel è un framework web open source, noto e moderno basato su PHP con una sintassi espressiva, elegante e di facile comprensione che semplifica la creazione di applicazioni web grandi e robuste.

Le sue caratteristiche principali includono un motore di routing semplice e veloce, un potente contenitore per l'iniezione delle dipendenze, back-end multipli per l'archiviazione di sessioni e cache, database ORM (mappatura relazionale a oggetti) espressivo e intuitivo, solida elaborazione dei processi in background e trasmissione di eventi in tempo reale.

Inoltre, utilizza strumenti come Composer, un gestore di pacchetti PHP per la gestione delle dipendenze e Artisan, un'interfaccia a riga di comando per creare e gestire applicazioni web.

In questo articolo imparerai come installare l'ultima versione del framework web Laravel PHP sulla distribuzione Linux CentOS 8.

Requisiti del server

Il framework Laravel ha i seguenti requisiti:

  • PHP >= 7.2.5 con queste estensioni PHP OpenSSL, PDO, Mbstring, Tokenizer, XML, Ctype e JSON.
  • Composer: per installare e gestire le dipendenze.

Passaggio 1: installazione dello stack LEMP in CentOS 8

1. Per iniziare, aggiorna i pacchetti software di sistema e installa lo stack LEMP (Linux, Nginx, MariaDB/MySQL e PHP) utilizzando i seguenti comandi dnf.

dnf update
dnf install nginx php php-fpm php-common php-xml php-mbstring php-json php-zip mariadb-server php-mysqlnd

2. Una volta completata l'installazione di LEMP, è necessario avviare PHP-PFM, Nginx e MariaDB utilizzando i seguenti comandi systemctl.

systemctl start php-fpm nginx mariadb
systemctl enable php-fpm nginx mariadb
systemctl status php-fpm nginx mariadb

3. Successivamente, devi proteggere e rafforzare il motore di database MariaDB utilizzando lo script di sicurezza come mostrato.

mysql_secure_installation

Rispondere alle seguenti domande per proteggere l'installazione del server.

Enter current password for root (enter for none): Enter Set root password? [Y/n] y #set new root password Remove anonymous users? [Y/n] y Disallow root login remotely? [Y/n] y Remove test database and access to it? [Y/n] y Reload privilege tables now? [Y/n] y

4. Se hai il servizio firewalld in esecuzione, devi aprire il servizio HTTP e HTTPS nel firewall per abilitare le richieste del client al server web Nginx.

firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --zone=public --permanent --add-service=https
firewall-cmd --reload

5. Infine, puoi confermare che il tuo stack LEMP è in esecuzione utilizzando un browser all'indirizzo IP del tuo sistema.

http://server-IP

Passaggio 2: configurazione e protezione di PHP-FPM e Nginx

6. Per elaborare le richieste dal server web Nginx, PHP-FPM può ascoltare su un socket Unix o un socket TCP e questo è definito dal Parametro listen nel file di configurazione /etc/php-fpm.d/www.conf.

vi /etc/php-fpm.d/www.conf

Per impostazione predefinita, è configurato per ascoltare su un socket Unix, come mostrato nello screenshot seguente. Il valore qui verrà specificato in seguito nel file di blocco del server Nginx.

7. Se utilizzi un socket Unix, dovresti anche impostarne la proprietà e le autorizzazioni corrette come mostrato nello screenshot. Togli il commento dai seguenti parametri e imposta i relativi valori sull'utente e sul gruppo in modo che corrispondano all'utente e al gruppo con cui Nginx è in esecuzione.

listen.owner = nginx
listen.group = nginx
listen.mode = 066

8. Successivamente, imposta anche il fuso orario a livello di sistema nel file di configurazione /etc/php.ini.

vi /etc/php.ini

Cerca la riga “;date.timezone ” e decommentala, quindi imposta il suo valore come mostrato nello screenshot (utilizza valori applicabili alla tua regione/continente e paese).

 
date.timezone = Africa/Kampala

9. Per mitigare il rischio che Nginx trasmetta richieste da utenti malintenzionati che utilizzano altre estensioni per eseguire codice PHP su PHP-FPM, decommenta il seguente parametro e imposta il suo valore su < codice>0.

cgi.fix_pathinfo=1

10. In relazione al punto precedente, decommentare anche il seguente parametro nel file /etc/php-fpm.d/www.conf. Leggi il commento per ulteriori spiegazioni.

security.limit_extensions = .php .php3 .php4 .php5 .php7

Passaggio 3: installazione di Composer e Laravel PHP Framework

11. Successivamente, installa il pacchetto Composer eseguendo i seguenti comandi. Il primo comando scarica il programma di installazione, quindi lo esegue utilizzando PHP.

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer

12. Ora che Composer è installato, utilizzalo per installare i file e le dipendenze di Laravel come segue. Sostituisci mysite.com con il nome della directory in cui verranno archiviati i file Laravel, il percorso assoluto (o percorso root nel file di configurazione Nginx) sarà /var/www/html/mysite .com.

cd /var/www/html/
composer create-project --prefer-dist laravel/laravel mysite.com

Se tutto va bene durante il processo, l'applicazione dovrebbe essere installata correttamente e dovrebbe essere generata una chiave come mostrato nello screenshot seguente.

13. Durante il processo di installazione, è stato creato il file di ambiente .env ed è stata generata anche l'applicazione richiesta, quindi non è necessario crearli manualmente come prima. Per confermarlo, esegui un lungo elenco della directory root di laravel utilizzando il comando ls.

ls -la mysite.com/

14. Successivamente, è necessario configurare la proprietà e le autorizzazioni corrette sulle directory storage e bootstrap/cache affinché siano scrivibili dal web Nginx server.

chown -R :nginx /var/www/html/mysite.com/storage/
chown -R :nginx /var/www/html/mysite.com/bootstrap/cache/
chmod -R 0777 /var/www/html/mysite.com/storage/
chmod -R 0775 /var/www/html/mysite.com/bootstrap/cache/

15. Se SELinux è abilitato sul tuo server, dovresti anche aggiornare il contesto di sicurezza dello storage e del bootstrap/cache directory.

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/mysite.com/storage(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/mysite.com/bootstrap/cache(/.*)?'
restorecon -Rv '/var/www/html/mysite.com'

Passaggio 4: configurare il blocco server Nginx per Laravel

16. Affinché Nginx inizi a servire il tuo sito web o la tua applicazione, devi creare un blocco server in un file .conf in /etc/nginx/conf.d/ come mostrato.

vi /etc/nginx/conf.d/mysite.com.conf

Copia e incolla la seguente configurazione nel file. Prendi nota dei parametri root e fastcgi_pass.

server {
	listen      80;
       server_name mysite.com;
       root        /var/www/html/mysite.com/public;
       index       index.php;

       charset utf-8;
       gzip on;
	gzip_types text/css application/javascript text/javascript application/x-javascript  image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
        location / {
        	try_files $uri $uri/ /index.php?$query_string;
        }

        location ~ \.php {
                include fastcgi.conf;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/run/php-fpm/www.sock;
        }
        location ~ /\.ht {
                deny all;
        }
}

17. Salva il file e controlla se la sintassi di configurazione di Nginx è corretta eseguendo.

nginx -t

18. Quindi riavvia i servizi PHP-FPM e Nginx affinché le recenti modifiche abbiano effetto.

systemctl restart php-fpm
systemctl restart Nginx

Passaggio 5: accesso al sito Web Laravel da un browser Web

19. Per accedere al sito web Laravel all'indirizzo miosito.com, che non è un nome di dominio completo (FQDN) e non è registrato (viene utilizzato solo a scopo di test) , utilizzeremo il file /etc/hosts sul tuo computer locale per creare il DNS locale.

Esegui il comando seguente per aggiungere l'indirizzo IP e il dominio del server nel file richiesto (sostituisci il valore in base alle tue impostazioni).

ip add		#get remote server IP
echo "10.42.0.21  mysite.com" | sudo tee -a /etc/hosts

20. Successivamente, apri un browser web sul computer locale e utilizza il seguente indirizzo per navigare.

http://mysite.com

Hai distribuito con successo Laravel su CentOS 8. Ora puoi iniziare a sviluppare il tuo sito web o la tua applicazione web utilizzando Laravel. Per ulteriori informazioni, vedere la guida introduttiva di Laravel.