Laravel è un framework PHP open source che segue il modello di progettazione MVC (Model-View-Controller). È stato creato da Taylor Otwell nel 2011 come tentativo di fornire un'alternativa avanzata al framework CodeIgniter (CI). Nel 2011, il progetto Laravel ha rilasciato la versione 1 e 2, quest'anno è stata rilasciata la versione 5.4 con molti miglioramenti come il supporto Command-Line (CLI) denominato "artisan", il supporto integrato per più tipi di database e il routing migliorato.
In questo tutorial, ti mostrerò come installare Laravel Web Framework con il server web Nginx, PHP-FPM 7.1 e MariaDB su un sistema CentOS 7. Ti mostrerò passo dopo passo come installare e configurare Laravel sotto lo stack LEMP sul server CentOS 7.
Questo tutorial è disponibile anche per Laravel su Ubuntu.
Prerequisito:
- Server CentOS 7.
- Privilegi root.
Passaggio 1:installazione del repository EPEL
EPEL o Extra Package for Enterprise Linux è un repository di pacchetti aggiuntivo che fornisce utili pacchetti software che non sono inclusi nel repository ufficiale di CentOS. Può essere installato su distribuzioni Linux basate su RPM come CentOS e Fedora.
In questo tutorial, abbiamo bisogno del repository EPEL per l'installazione di Nginx poiché i pacchetti Nginx non esistono nel repository CentOS ufficiale. Installa il repository EPEL con il comando yum di seguito.
yum -y install epel-release
Il repository EPEL è stato installato.
Passaggio 2:installa Nginx
In questo tutorial, eseguiremo un Laravel sotto lo stack LEMP. Nginx è la parte del server web dello stack LEMP e può essere installato dal repository EPEL.
Installa Nginx 1.10 dal repository EPEL con yum.
yum -y install nginx
Al termine dell'installazione, avvia Nginx e aggiungilo all'avvio all'avvio.
systemctl start nginx
systemctl enable nginx
Nginx è in esecuzione sulla porta 80, controllalo con il comando netstat di seguito.
netstat -plntu
Nel caso in cui venga visualizzato "Comando non trovato", installa il pacchetto net-tools come mostrato di seguito.
yum -y install net-tools
Fase 3 - Installa e configura PHP-FPM 7.1
Laravel può essere installato su un server con versione PHP>=5.6.4. In questo tutorial utilizzeremo l'ultima versione PHP 7.1 supportata da Laravel.
PHP 7.1 non esiste nel repository di base di CentOS, dobbiamo installarlo da un repository di terze parti chiamato 'webtatic'.
Installa il repository webtatic con questo comando rpm.
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Ora possiamo installare PHP-FPM con tutte le estensioni necessarie a Laravel con un solo comando yum.
yum install -y php71w php71w-curl php71w-common php71w-cli php71w-mysql php71w-mbstring php71w-fpm php71w-xml php71w-pdo php71w-zip
PHP 7.1 è stato installato sul nostro sistema CentOS 7.
Quindi, configura PHP modificando il file di configurazione php.ini con vim.
vim /etc/php.ini
Decommenta la riga sottostante e cambia il valore in 0.
cgi.fix_pathinfo=0
Salva il file ed esci dall'editor.
Ora modifica il file PHP-FPM www.conf.
vim /etc/php-fpm.d/www.conf
PHP-FPM verrà eseguito sotto l'utente e il gruppo 'nginx ', cambia il valore delle due righe sottostanti in 'nginx '.
user = nginx
group = nginx
Invece di utilizzare la porta del server, PHP-FPM verrà eseguito in un file socket. Cambia il valore 'ascolta' nel percorso '/run/php-fpm/php-fpm.sock ' come mostrato di seguito.
listen = /run/php-fpm/php-fpm.sock
Il proprietario del file socket sarà l'utente 'nginx' e la modalità di autorizzazione è 660. Decommenta e modifica tutti i valori in questo modo:
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
Per le variabili di ambiente, decommenta queste righe e imposta i valori come mostrato di seguito.
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
Salva il file ed esci da vim, quindi avvia PHP-FPM e abilitalo all'esecuzione all'avvio.
systemctl start php-fpm
systemctl enable php-fpm
PHP-FPM è in esecuzione nel file socket, controllalo con il comando seguente.
netstat -pl | grep php-fpm.sock
L'installazione e la configurazione di PHP e PHP-FPM 7.1 sono state completate.
Passaggio 4 - Installa il server MariaDB
Puoi usare MySQL o PostgreSQL per il tuo progetto Laravel. Userò il server di database MariaDB per questo tutorial. È disponibile nel repository CentOS. Installa MariaDB-server con il comando yum di seguito.
yum -y install mariadb mariadb-server
Al termine dell'installazione, avvia 'mariadb' e abilita l'avvio all'avvio.
systemctl start mariadb
systemctl enable mariadb
MariaDB è stato avviato ed è in esecuzione sulla porta 3306, verificalo con il comando netstat.
netstat -plntu
Quindi, configura la password di root per MariaDB con 'mylsq_secure_installation ' comando qui sotto.
mysql_secure_installation
Digita la tua password di root mariadb, rimuovi l'utente anonimo ecc.
Set root password? [Y/n] Y
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
L'installazione e la configurazione di MariaDB sono state completate.
Passaggio 5 - Installa PHP Composer
Il compositore PHP è un gestore di pacchetti per il linguaggio di programmazione PHP. È stato creato nel 2011 ed è ispirato al programma di installazione "npm" di Node.js e "bundler" di Ruby. Installa il compositore con il comando curl.
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer
Al termine dell'installazione, prova a utilizzare il 'compositore ' e vedrai i risultati come di seguito.
composer
PHP Composer installato su CentOS 7.
Passaggio 6:configurazione dell'host virtuale Nginx per Laravel
In questo passaggio creeremo la configurazione dell'host virtuale nginx per il progetto Laravel. Dobbiamo definire la directory principale web per questa installazione di Laravel, userò '/var/www/laravel ' come directory radice web.
Crealo con il comando mkdir di seguito:
mkdir -p /var/www/laravel
Quindi, vai alla directory nginx e crea un nuovo file di configurazione dell'host virtuale laravel.conf nella directory conf.d.
cd /etc/nginx
vim conf.d/laravel.conf
Incolla la configurazione di seguito nel file:
server {
listen 80;
listen [::]:80 ipv6only=on;
# Log files for Debugging
access_log /var/log/nginx/laravel-access.log;
error_log /var/log/nginx/laravel-error.log;
# Webroot Directory for Laravel project
root /var/www/laravel/public;
index index.php index.html index.htm;
# Your Domain Name
server_name laravel.hakase-labs.co;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# PHP-FPM Configuration Nginx
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Salva il file ed esci da vim.
Verifica la configurazione di nginx e assicurati che non vi siano errori, quindi riavvia il servizio nginx.
nginx -t
systemctl restart nginx
La configurazione dell'host virtuale nginx per Laravel è stata completata.
Passaggio 7 - Installa Laravel
Prima di installare Laravel, dobbiamo installare unzip sul server.
yum -y install unzip
Ora vai alla directory principale di laravel web '/var/www/laravel'.
cd /var/www/laravel
Laravel fornisce due modi per l'installazione del framework sul server. Possiamo installare Laravel con il programma di installazione laravel e possiamo installarlo con il compositore PHP. In questo tutorial installerò Laravel creando un nuovo progetto con il comando composer.
Esegui il comando seguente per installare Laravel.
composer create-project laravel/laravel .
Attendi il completamento dell'installazione di Laravel. L'operazione potrebbe richiedere del tempo.
Al termine dell'installazione, cambia il proprietario della directory principale web di Laravel nell'utente 'nginx' e cambia il permesso della directory di archiviazione in 755 con i comandi seguenti.
chown -R nginx:root /var/www/laravel
chmod 755 /var/www/laravel/storage
L'installazione di Laravel è stata completata.
Fase 8 - Configura SELinux
In questo tutorial, Laravel verrà eseguito in modalità 'Enforcing' di SELinux. Per controllare lo stato di SELinux, esegui il comando seguente.
sestatus
Il risultato è che SELinux è in esecuzione in 'Enforcing ' modalità.
Successivamente, dobbiamo installare gli strumenti di gestione di SELinux per CentOS 7.
Installa 'policycoreutils-python' sul server.
yum -y install policycoreutils-python
Ora dobbiamo cambiare il contesto delle directory di Laravel e quindi applicare le modifiche con il comando restorecon. Eseguire i comandi di gestione di SELinux come mostrato di seguito.
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/public(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/storage(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/app(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/bootstrap(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/config(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/database(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/resources(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/routes(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/vendor(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/laravel/tests(/.*)?'
restorecon -Rv '/var/www/laravel/'
La configurazione di SELinux per Laravel è terminata.
Fase 9 - Test di Laravel
Apri il tuo browser web e digita l'URL di Laravel del tuo server. Abbiamo definito il nome di dominio per Laravel nel file host virtuale Nginx. Il mio è laravel.hakase-labs.co .
Quando visiti il nome di dominio, vedrai la home page di Laravel.
L'installazione di Laravel con Nginx, PHP-FPM7 e MariaDB su CentOS 7 è andata a buon fine.