Installazione Laravel · 9 min read · Nov 01, 2025

Come installare il framework PHP Laravel con Nginx e SSL gratuito di Let's Encrypt su AlmaLinux 8

Laravel è un framework web PHP gratuito, open-source e leggero utilizzato per costruire applicazioni web basate su PHP. È popolare grazie alla sua sintassi elegante, alle funzionalità avanzate e al robusto set di strumenti. È basato sul framework Symfony e aiuta gli sviluppatori a semplificare lo sviluppo di applicazioni web. Fornisce anche un’interfaccia a riga di comando Artisan per eseguire operazioni per le tue applicazioni. Offre funzionalità potenti tra cui Artisan, architettura MVC, mappatura oggetto-relazionale, motore di template, test unitari e sistema di migrazione del database.

In questo post, ti mostreremo come installare Laravel con Nginx su Alma Linux 8.

Prerequisiti

  • Un server che esegue Alma Linux 8.
  • Un nome di dominio valido puntato all’IP del tuo server.
  • Una password di root configurata sul tuo server.

Installare il server LEMP

Prima di tutto, dovrai installare Nginx, MariaDB, PHP e altre estensioni PHP richieste sul tuo server. Puoi installarli tutti eseguendo il seguente comando:

dnf install nginx mariadb-server php php-fpm php-common php-xml php-mbstring php-json php-zip php-mysqlnd curl unzip -y

Dopo aver installato tutti i pacchetti, modifica il file di configurazione di php-fpm e configurarlo per utilizzare Nginx:

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

Cambia le seguenti righe:

listen.owner = nginx
listen.group = nginx

Salva e chiudi il file, quindi modifica il file di configurazione PHP e cambia i valori predefiniti:

nano /etc/php.ini

Cambia le seguenti righe:

date.timezone = Asia/Kolkata
cgi.fix_pathinfo=1

Salva e chiudi il file, quindi avvia e abilita i servizi Nginx, MariaDB e PHP-FPM utilizzando il seguente comando:

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

Una volta terminato, puoi procedere al passaggio successivo.

Installare Composer

In questo post, installeremo Laravel utilizzando Composer. Quindi dovrai installare Composer sul tuo sistema. Puoi installarlo eseguendo il seguente comando:

curl -sS https://getcomposer.org/installer | php

Otterrai il seguente output:

All settings correct for using Composer
Downloading...

Composer (version 2.2.3) successfully installed to: /root/composer.phar
Use it: php composer.phar

Successivamente, sposta il binario di Composer nel percorso di sistema e imposta i permessi corretti con il seguente comando:

mv composer.phar /usr/local/bin/composer  
chmod +x /usr/local/bin/composer

Successivamente, verifica la versione di Composer con il seguente comando:

composer --version

Otterrai il seguente output:

Composer version 2.2.3 2021-12-31 12:18:53

Installare Laravel su Alma Linux 8

Successivamente, cambia la directory nella directory radice web di Nginx e installa Laravel utilizzando Composer:

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

Otterrai il seguente output:

Discovered Package: facade/ignition
Discovered Package: fideloper/proxy
Discovered Package: fruitcake/laravel-cors
Discovered Package: laravel/tinker
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Package manifest generated successfully.
69 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
> @php artisan key:generate --ansi
Application key set successfully.

Successivamente, imposta la proprietà e i permessi corretti per Laravel:

chown -R nginx:nginx /var/www/html/laravel/  
chown -R nginx:nginx /var/www/html/laravel/storage/  
chown -R nginx:nginx /var/www/html/laravel/bootstrap/cache/  
chmod -R 0777 /var/www/html/laravel/storage/  
chmod -R 0775 /var/www/html/laravel/bootstrap/cache/

Una volta terminato, puoi procedere al passaggio successivo.

Creare un host virtuale Nginx per Laravel

Successivamente, dovrai creare un file di configurazione Nginx per Laravel. Puoi crearlo utilizzando il seguente comando:

nano /etc/nginx/conf.d/laravel.conf

Aggiungi le seguenti righe:

server {
       listen 80;
       server_name laravel.exampledomain.com;
       root        /var/www/html/laravel/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;
        }
}

Salva e chiudi il file, quindi verifica Laravel per eventuali errori di configurazione:

ginx -t

Dovresti ottenere il seguente output:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Successivamente, riavvia i servizi Nginx e PHP-FPM per applicare le modifiche:

systemctl restart php-fpm  
systemctl restart nginx

Puoi anche verificare lo stato di Nginx utilizzando il seguente comando:

systemctl status nginx

Otterrai il seguente output:

? nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/nginx.service.d
           ??php-fpm.conf
   Active: active (running) since Fri 2022-01-07 08:29:11 UTC; 4s ago
  Process: 8186 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 8184 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 8182 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 8188 (nginx)
    Tasks: 2 (limit: 11411)
   Memory: 3.7M
   CGroup: /system.slice/nginx.service
           ??8188 nginx: master process /usr/sbin/nginx
           ??8189 nginx: worker process

Jan 07 08:29:11 linux systemd[1]: nginx.service: Succeeded.
Jan 07 08:29:11 linux systemd[1]: Stopped The nginx HTTP and reverse proxy server.
Jan 07 08:29:11 linux systemd[1]: Starting The nginx HTTP and reverse proxy server...
Jan 07 08:29:11 linux nginx[8184]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Jan 07 08:29:11 linux nginx[8184]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Jan 07 08:29:11 linux systemd[1]: nginx.service: Failed to parse PID from file /run/nginx.pid: Invalid argument
Jan 07 08:29:11 linux systemd[1]: Started The nginx HTTP and reverse proxy server.

Configurare il firewall per Laravel

Successivamente, dovrai consentire le porte 80 e 443 attraverso il firewall firewalld. Puoi consentirle con il seguente comando:

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

Successivamente, ricarica il firewalld per applicare le modifiche:

firewall-cmd --reload

Accedere all’interfaccia web di Laravel

Ora, apri il tuo browser web e accedi all’interfaccia web di Laravel utilizzando l’URL http://laravel.exampledomain.com. Dovresti vedere la pagina predefinita di Laravel sullo schermo seguente:

Laravel

Abilitare SSL sul sito web di Laravel

Si consiglia di abilitare SSL sul sito web di Laravel per proteggere la connessione. Let’s Encrypt fornisce un SSL gratuito per ottenere, rinnovare e gestire certificati SSL/TLS per il tuo dominio. Prima di tutto, installa il client Certbot con il seguente comando:

dnf install epel-release -y  
dnf install certbot -y

Successivamente, esegui il seguente comando per scaricare SSL di Let’s Encrypt per il tuo dominio Laravel:

certbot --nginx -d laravel.exampledomain.com

Ti verrà chiesto di fornire la tua email valida e accettare i termini di servizio come mostrato di seguito:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for laravel.exampledomain.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/laravel.conf

Successivamente, seleziona se reindirizzare o meno il traffico HTTP a HTTPS:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Digita 2 e premi invio per avviare il processo. Una volta installato il certificato, dovresti vedere il seguente output:

Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/laravel.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://laravel.exampledomain.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=laravel.exampledomain.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/laravel.exampledomain.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/laravel.exampledomain.com/privkey.pem
   Your cert will expire on 2022-04-11. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

 - We were unable to subscribe you the EFF mailing list because your
   e-mail address appears to be invalid. You can try again later by
   visiting https://act.eff.org.

A questo punto, il tuo sito web Laravel è protetto con SSL di Let’s Encrypt. Puoi ora accedervi in modo sicuro utilizzando l’URL https://laravel.exampledomain.com.

Conclusione

Congratulazioni! hai installato con successo Laravel con Nginx e SSL di Let’s Encrypt su Alma Linux 8. Puoi ora iniziare a sviluppare applicazioni basate su PHP utilizzando il framework Laravel. Sentiti libero di chiedermi se hai domande.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.