Introduzione
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 di iniezione delle dipendenze, più back-end per l'archiviazione di sessioni e cache, un database ORM (Object-relational Mapping) espressivo e intuitivo), una solida elaborazione dei lavori in background e la 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 la creazione e la gestione di applicazioni Web.
Imparerai come installare l'ultima versione del framework web Laravel PHP sulla distribuzione Linux CentOS 8.
Installa lo stack LEMP
1. Per iniziare, aggiorna i pacchetti software di sistema e installa LEMP stack (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. Quando il LEMP l'installazione è completa, è necessario avviare il PHP-PFM , Nginx e MariaDB servizi utilizzando i seguenti comandi systemctl.
# systemctl start php-fpm nginx mariadb
# systemctl enable php-fpm nginx mariadb
# systemctl status php-fpm nginx mariadb
3. È necessario proteggere e rafforzare MariaDB motore di database utilizzando lo script di sicurezza come mostrato.
# mysql_secure_installation
Rispondi alle seguenti domande per proteggere l'installazione del server.
Enter current password for root (enter for none): press Enter
Set root password? [Y/n]y
#set new root password Remove anonymous users? [Y/n] press y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] press y
Reload privilege tables now? [Y/n]
4. Se hai il firewalld servizio in esecuzione, è necessario aprire l'HTTP e HTTPS servizio nel firewall per abilitare le richieste dei 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 LEMP stack è in esecuzione utilizzando un browser all'indirizzo IP del tuo sistema.
http://server-IP

Configurazione e protezione di PHP-FPM e Nginx
1. Per elaborare le richieste da Nginx server web, PHP-FPM può ascoltare su un socket Unix o TCP e questo è definito da ascolta parametro nel /etc/php-fpm.d/www.conf file di configurazione.
# vi /etc/php-fpm.d/www.conf
Per impostazione predefinita, è configurato per ascolta su un socket Unix come mostrato nella schermata seguente. Il valore qui verrà specificato nel file di blocco del server Nginx in seguito.

2. Se utilizzi un socket Unix, dovresti anche impostare la proprietà e le autorizzazioni corrette su di esso come mostrato nello screenshot. Decommenta i seguenti parametri e imposta i loro valori per l'utente e il gruppo in modo che corrispondano all'utente e al gruppo Nginx è in esecuzione come.
listen.owner = nginx
listen.group = nginx
listen.mode = 066

3. Quindi, imposta anche il fuso orario a livello di sistema in /etc/php.ini file di configurazione.
# vim /etc/php.ini
Cerca la riga "date.timezone" e decommentalo, quindi impostane il valore come mostrato nello screenshot (usa i valori che si applicano alla tua regione/continente e paese).
date.timezone = Africa/Cairo

4. Per mitigare il rischio di Nginx passando richieste da utenti malintenzionati che utilizzano altre estensioni per eseguire codice PHP su PHP-FPM, decommentare il parametro seguente e impostarne il valore su 0 .

cgi.fix_pathinfo=0
5. In relazione al punto precedente, decommentare anche il seguente parametro in /etc/php-fpm.d/www.conf file. Leggi il commento per ulteriori spiegazioni.
security.limit_extensions = .php .php3 .php4 .php5 .php7

Installa Composer e Laravel PHP Framework
1. Quindi, installa il Compositore pacchetto eseguendo i seguenti comandi. Il primo comando scarica il programma di installazione, quindi lo esegue utilizzando PHP.
[unixcop@unixcop ~]$ curl -sS https://getcomposer.org/installer | php
All settings correct for using Composer
Downloading…
Composer (version 2.1.5) successfully installed to: /home/unixcop/composer.phar
Use it: php composer.phar
[unixcop@unixcop ~]$
Quindi esegui questi comandi:
mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer
2. Ora quel Compositore è installato, utilizzalo per installare i file e le dipendenze di Laravel come segue. Sostituisci newunixcop.com con il nome della directory in cui verranno archiviati i file Laravel, il percorso assoluto (o percorso radice nel file di configurazione Nginx) sarà /var/www/html/newunixcop.com .
# cd /var/www/html/
# composer create-project --prefer-dist laravel/laravel newunixcop.com

3. Durante il processo di installazione, il file .env è stato creato il file di ambiente ed è stata generata anche l'applicazione richiesta, quindi non è necessario crearli manualmente come prima. Per confermare ciò, esegui un lungo elenco della directory principale di laravel usando il comando ls.
# ls -la newunixcop.com/

4. Devi configurare la proprietà e le autorizzazioni corrette sullo archivio e il bootstrap/cache directory scrivibili dal server web Nginx.
[root@unixcop html]# chown -R :nginx /var/www/html/newunixcop.com/storage/
[root@unixcop html]# chown -R :nginx /var/www/html/newunixcop.com/bootstrap/cache/
[root@unixcop html]# chown -R :nginx /var/www/html/newunixcop.com/storage/
[root@unixcop html]# chmod -R 0775 /var/www/html/newunixcop.com/bootstrap/cache/
5. Se SELinux abilitato sul tuo server, dovresti anche aggiornare il contesto di sicurezza dello archivio e bootstrap/cache directory.
esegui questo comando :
[root@unixcop html]# restorecon -Rv 'https://1118798822.rsc.cdn77.org/var/www/html/newunixcop.com'
Relabeled /var/www/html/newunixcop.com/storage/logs from unconfined_u:object_r:httpd_sys_content_t:s0 to unconfined_u:object_r:httpd_log_t:s0
Relabeled /var/www/html/newunixcop.com/storage/logs/.gitignore from unconfined_u:object_r:httpd_sys_content_t:s0 to unconfined_u:object_r:httpd_log_t:s0
[root@unixcop html]#
Configura il blocco server Nginx per Laravel
1. Per Nginx per iniziare a servire il tuo sito web o la tua applicazione, devi creare un blocco server per esso in un .conf file in /etc/nginx/conf.d/ directory come mostrato.
# vim /etc/nginx/conf.d/newunixcop.com.conf
Copia e incolla la seguente configurazione nel file. Prendi nota della radice e di fastcgi_pass parametri.
server {
listen 80;
server_name newunixcop.com;
root /var/www/html/newunixcop.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;
}
}

2. Salva il file e controlla se è Nginx la sintassi di configurazione è corretta eseguendo.
[root@unixcop ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@unixcop ~]#
3. Quindi riavvia PHP-FPM e Nginx servizi per rendere effettive le modifiche recenti.
# systemctl restart php-fpm
# systemctl restart Nginx
Accesso al sito Web Laravel da un browser Web
4. Per accedere al sito web di Laravel su newunixcop.com , che non è un nome di dominio completo (FQDN) e non è registrato (viene utilizzato solo a scopo di test), utilizzeremo /etc/hosts file sul tuo computer locale per creare un DNS locale.
Esegui il comando seguente per aggiungere l'indirizzo IP del server e il dominio nel file richiesto (sostituisci il valore in base alle tue impostazioni).
[root@unixcop ~]# echo "192.168.122.60 newunixcop.com" | sudo tee -a /etc/hosts
192.168.122.60 newunixcop.com
[root@unixcop ~]#
5. Apri un browser web sul computer locale e usa il seguente indirizzo per navigare.
http://newunixcop.com

Conclusione
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, consulta la guida introduttiva di Laravel.