Come configurare un VPS Laravel (PHP+Apache+MySql)

Con questa guida andremo a vedere come configurare un web server linux installando e configurando tutto ciò che serve a far girare una applicazione Laravel al meglio. Questa guida è stata testata su Ubuntu 18.04, ma i comandi sono abbastanza generali da poter essere usati anche con altre versioni di Ubuntu o distribuzioni basate su Ubuntu.

Preparazione

Supponiamo di aver acquistato uno spazio server e di essere in possesso di nome utente e password per accedere con il protocollo ssh (solitamente il nome utente è root e la password arriva tramite email al momento dell’attivazione del servizio). Chiamiamo inoltre yourvpsipaddress l’indirizzo IP del nostro server.

Collegandoci in ssh al server, prima di tutto aggiorniamolo:

sudo apt update
sudo apt upgrade
sudo reboot

Aspettiamo che si riavvii e ripristinare la connessione ssh.

Apache, MySql, PHP

Cominciamo installando le seguenti componenti:

  • Apache: il web server che gestisce le richieste http/https in entrata
  • MySql: il DBMS che utilizzeremo in questa guida (Laravel supporta anche PostgreSQL, SQLite ed SQL Server)
  • PHP e alcune estensioni necessarie per il funzionamento di Laravel
sudo apt install apache2
sudo apt install mysql-server
sudo apt install php-pear php-fpm php-dev php-zip php-curl php-xmlrpc php-gd php-mysql php-mbstring php-xml libapache2-mod-php 
sudo service apache2 restart

A questo punto è possibile testare il corretto funzionamento di Apache visualizzando all’indirizzo http://yourvpsipaddress/ dal vostro browser la pagina di default di Apache.

Firewall

Dal punto di vista della sicurezza è utile configurare un firewall. Usando UFW andiamo a bloccare tutte le connessioni in ingresso al server, mantenendo aperte solamente le porte tcp strettamente necessarie per usufruire della nostra applicazione Laravel.

sudo ufw app list
sudo ufw allow 'Apache'
sudo ufw allow 'OpenSSH'
sudo ufw status
sudo ufw enable

Con questi comandi andiamo ad aprire le porte 80, 443 e 22.

phpMyAdmin

phpMyAdmin è uno strumento molto utile per la gestione del vostro database. Facciamo partire l’installazione e la procedura di configurazione:

apt install phpmyadmin php-mbstring php-gettext

Comparirà sul terminale una schermata in cui è necessario selezionare l’opzione “apache2” premendo la barra spaziatrice e poi INVIO per confermare. Sulla schermata che segue scegliere Yes ed inserire una password per l’utente. Abilitiamo l’estensione mbstring di php necessaria a phpmyadmin per il suo corretto funzionamento.

phpenmod mbstring
service apache2 restart

E’ necessario adesso creare un utente mysql dedicato per phpmyadmin. Prima di tutto cambiamo la password dell’utente root, inserendo una password al posto di “insert_your_password_here”:

sudo mysql
alter user 'root'@'localhost' identified with mysql_native_password by 'insert_user_password_here';
flush privileges;
exit;

Creiamo un utente phpmyadmin, inserendo una password al posto di “inser_your_password_here”:

sudo mysql
create user 'phpmyadmin'@'localhost' IDENTIFIED BY 'insert_user_password_here';
grant all privileges on *.* TO 'phpmyadmin'@'localhost' with grant option;
exit;

Testiamo adesso phpmyadmin all’indirizzo http://yourvpsipaddress/phpmyadmin/.

Composer e Laravel

Composer è uno strumento per la gestione delle dipendenze PHP e rappresenta il modo più veloce per installare Laravel sul nostro sistema.

apt install composer
composer global require laravel/installer

Dobbiamo adesso settare laravel come comando globale. Da terminale apriamo il file ~/.bashrc

nano $HOME/.bashrc

Aggiungiamo alla fine, la riga:

export PATH="$PATH:$HOME/.config/composer/vendor/bin"

Salvare e chiudere. Rendiamo effettive le modifiche:

source $HOME/.bashrc

Avviare una applicazione Laravel

Posizioniamoci dentro una directory del nostro file system:

laravel new app_name

Cambiare i permessi delle cartelle storage e bootstrap/cache:

chown -R www-data:www-data /your/laravel/app/storage
chown -R www-data:www-data /your/laravel/app/bootstrap/cache

Settare l’applicazione come DocumentRoot di Apache:

nano /etc/apache2/sites-enabled/your-virtual-host.conf

Cambiamo il valore di DocumentRoot con la directory public dell’applicazione laravel, ad esempio

/home/ubuntu/app/public

Adesso è necessario cambiare i permessi per la directory dell’app:

nano /etc/apache2/apache2.conf

Aggiungere nella sezione Directory il seguente codice opportunamente modificato con la directory della vostra app:

Options Indexes FollowSymLinks
AllowOverride None
Require all granted

Riavviare apache e testare http://yourvpsipaddress/.
That’s all.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *