Laravel è un popolare framework di applicazioni web creato per gli sviluppatori PHP. Laravel è noto nella comunità PHP per la sua semplicità come strumenti per la creazione di applicazioni grandi e robuste. Laravel è anche noto per la sua sintassi espressiva ed elegante.
Sin dal suo inizio, Laravel si è evoluto fino a diventare uno dei framework di applicazioni Web più popolari e potenti e molte grandi organizzazioni stanno iniziando a realizzare il potenziale di questo framework e hanno iniziato ad adottarlo.
In questo tutorial ti guideremo a configurare Laravel in Ubuntu 22.04.
Iniziamo con la configurazione.
1 Prerequisiti
- Sistema operativo Ubuntu 22.04
- Versione PHP minima di 8.0.
- Sarebbe meglio se il tuo server avesse almeno 2 GB di RAM
2 Aggiornamento del sistema
Per prima cosa aggiorniamo il nostro sistema.
sudo apt update -y && apt upgrade -y
3 Installazione di estensioni PHP ed PHP
La versione predefinita di PHP nel repository di Ubuntu 22.04 è PHP 8.1, quindi possiamo procedere con l'installazione di PHP senza aggiungere repository.
sudo apt-get install php php-fpm libapache2-mod-php php-dev php-zip php-curl php-pear php-mbstring php-mysql php-gd php-xml curl -y
Verifica la versione PHP:
php -v
Output:
PHP 8.1.2 (cli) (built: Jul 21 2022 12:10:37) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies
4 Installazione e configurazione del database
In questa configurazione utilizzeremo MariaDB come sistema di gestione del database, ma puoi scegliere qualsiasi sistema di gestione del database supportato da Laravel come SQLite, MySQL, Postgres e SQL Server.
Installiamo MariaDB.
sudo apt install mariadb-server
Abilita e avvia MariaDB.
sudo systemctl enable mariadb --now
Controlla lo stato di MariaDB.
sudo systemctl status mariadb
Output:
● mariadb.service - MariaDB 10.6.7 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2022-09-03 12:32:57 EDT; 2min 13s ago
Docs: man:mariadbd(8)
https://mariadb.com/kb/en/library/systemd/
Main PID: 123075 (mariadbd)
Status: "Taking your SQL requests now..."
Tasks: 9 (limit: 9456)
Memory: 57.2M
CPU: 425ms
CGroup: /system.slice/mariadb.service
└─123075 /usr/sbin/mariadbd
Proteggiamo il database MariaDB.
sudo mysql_secure_installation
Segui la guida all'implementazione del server MariaDB:
Securing the MySQL server deployment.
Enter password for user root:
The 'validate_password' component is installed on the server.
The subsequent steps will run with the existing configuration
of the component.
Using existing password for root.
Estimated strength of the password: 50
Change the password for root ? ((Press y|Y for Yes, any other key for No) : N
... skipping.
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Success.
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Success.
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
- Dropping test database...
Success.
- Removing privileges on test database...
Success.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y
Success.
All done!
Ora riavvia MariaDB.
sudo systemctl restart mariadb
Ora creiamo un database e un utente di database per la nostra applicazione Laravel.
mysql -u root -p
MariaDB [(none)]> create database laravel;
MariaDB [(none)]> grant all privileges on laravel.* to 'laravel_user'@'localhost' identified by 'your_secure_password';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
Nota: Non dimenticare di modificare "your_secure_password ‘ alla tua password.
5 Installazione di Composer
Composer è un gestore di pacchetti di dipendenze a livello di applicazione per PHP che fornisce un formato standard per la gestione delle dipendenze del software PHP e delle librerie richieste. Il compositore è necessario in Laravel per gestire facilmente il pacchetto e le dipendenze di Laravel.
Installiamo il compositore.
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer
Verifica l'installazione.
composer --version
Output:
Composer version 2.4.1 2022-08-20 11:44:50
6 Installazione di Laravel Framework
Prima di iniziare con l'installazione cambiamo directory.
cd /var/www/
Scarica l'applicazione Laravel. Al momento della stesura di questo articolo, l'ultima versione di Laravel è la 9, quindi possiamo scaricare Laravel 9 direttamente senza specificare la versione.
sudo composer create-project laravel/laravel mylara-app --prefer-dist
Output se installato correttamente:
79 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
> @php artisan vendor:publish --tag=laravel-assets --ansi --force
INFO No publishable resources for tag [laravel-assets].
No security vulnerability advisories found
> @php artisan key:generate --ansi
INFO Application key set successfully.
Per verificare la versione vai all'interno della directory di Laravel:
cd mylara-app
php artisan --version
output:
Laravel Framework 9.28.0
Nota: se vuoi installare una versione specifica puoi eseguire questo comando (l'esempio di seguito installerà la versione 8):
sudo compositore create-project laravel/laravel lara8-app “8.*” –prefer-dist
Imposta la proprietà su www-data.
sudo chown -R www-data:www-data /var/www/mylara-app
Imposta tutte le directory sull'autorizzazione 755.
sudo find /var/www/mylara-app/ -type d -exec chmod 755 {} \;
Imposta tutti i file sull'autorizzazione 644.
sudo find /var/www/mylara-app/ -type f -exec chmod 644 {} \;
Verifica l'applicazione eseguendo il server di sviluppo.
php artisan serve --host=0.0.0.0
Output:
INFO Server running on [http://0.0.0.0:8000].
Press Ctrl+C to stop the server
Dovresti essere in grado di accedere al tuo server di sviluppo Laravel all'indirizzo http://ipaddress:8000 .
7 Configurazione produzione Laravel
Server Web Apache :
sudo apt install apache2
Abilita e avvia Apache.
systemctl enable apache2 --now
Crea un host virtuale.
sudo nano /etc/apache2/sites-available/laravel.conf
Aggiungi quanto segue:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /var/www/mylara-app/public
ServerName domain.com www.domain.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/laravel/>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Nota:non dimenticare di modificare il dominio nella direttiva ServerName.
Salva il file ed esci.
Abilita l'host virtuale che abbiamo creato.
sudo a2ensite laravel.conf
Abilita anche Apache mod_rewrite.
sudo a2enmod rewrite
Riavvia il server web Apache.
sudo systemctl restart apache2
Server web Nginx :
Per prima cosa installiamo Nginx.
sudo apt install nginx -y
Abilita e avvia Nginx.
sudo systemctl enable nginx --now
Crea un blocco server.
sudo nano /etc/nginx/sites-available/laravel.conf
Aggiungi quanto segue:
server {
server_name domain.com www.domain.com;
access_log /var/log/nginx/domain.com.access.log;
error_log /var/log/nginx/domain.com.error.log;
root /var/www/mylara-app/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
Nota: Non dimenticare di modificare il "dominio.com “.
Salva il file ed esci.
Abilitiamo il file di configurazione Nginx (blocco server).
sudo ln -s /etc/nginx/sites-available/laravel.conf /etc/nginx/sites-enabled/
Riavvia Nginx.
sudo systemctl restart nginx
8 Accesso alla tua app Laravel
Dopo aver impostato correttamente la produzione, dovresti essere in grado di accedere alla tua app Laravel con il tuo dominio su http://domain.com .
9 Conclusione
Hai imparato a configurare Laravel 9 su Ubuntu 22.04 con Nginx o il server web Apache.
Se desideri installare il certificato SSL per proteggere il tuo sito web, puoi consultare il nostro articolo su Let's Encrypt.