GNU/Linux >> Linux Esercitazione >  >> Panels >> Panels

Come distribuire automaticamente applicazioni Laravel con Deployer su Ubuntu 16.04

Laravel è un popolare framework di applicazioni Web PHP open source. Ha una sintassi espressiva ed elegante e fornisce gli strumenti necessari per applicazioni grandi e robuste. Deployer è uno strumento di distribuzione PHP open source modulare ricco di funzionalità e ottimizzazioni che consentono di risparmiare tempo. Supporta l'implementazione di molti framework popolari, inclusi Laravel, Symfony, Zend Framework e CodeIgniter. In questo tutorial, ti mostreremo come distribuire un'applicazione Laravel con Deployer su Ubuntu 16.04.

Requisiti

  • Server Ubuntu 16.04 con accesso root o sudo.
  • Git server. Puoi utilizzare il tuo server git self-hosted o qualsiasi servizio Git popolare come Gitlab, Github o Bitbucket.

Impostazione dell'ambiente di sviluppo locale

Distribuirai la tua applicazione Laravel dal tuo computer locale, quindi prima devi configurare l'ambiente di sviluppo locale e installare Deployer.

Innanzitutto, se non hai già il compositore installato sul tuo computer locale, installalo con:

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer

Quindi, crea un nuovo progetto Laravel sul tuo computer locale:

composer create-project --prefer-dist laravel/laravel my-laravel-app

Per installare Deployer sul tuo computer locale, esegui i seguenti comandi nella console:

curl -LO https://deployer.org/deployer.phar
mv deployer.phar /usr/local/bin/dep
chmod +x /usr/local/bin/dep  

Infine connettiti al server git aggiungendo la chiave ssh del tuo PC locale al server git.

Se non disponi di chiavi SSH, puoi consultare il nostro articolo su Come configurare le chiavi SSH su Ubuntu 16.04

Se stai utilizzando il servizio in hosting su Git, puoi controllare la loro documentazione su come aggiungere la chiave SSH al tuo account.

  • Aggiungi chiavi SSH all'account GitHub
  • Aggiungi chiavi SSH all'account GitLab
  • Aggiungi chiavi SSH all'account Bitbucket

Installa e configura PHP

Ora che la tua macchina di sviluppo locale è pronta prima di poter iniziare la distribuzione, dobbiamo configurare il server installando tutti i servizi necessari.

Per installare l'ultima versione stabile di PHP versione 7 e tutti i moduli necessari, esegui:

sudo apt update
sudo apt install php7.0-fpm php7.0-cli php7.0-gd php7.0-mysql php7.0-mcrypt php-pear php7.0-curl

Abbiamo anche bisogno di installare il compositore:

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer

Installa e configura Nginx

Installa l'ultima versione stabile di Nginx dai repository ufficiali di Ubuntu:

sudo apt install nginx

Quindi, crea un nuovo blocco del server Nginx:

sudo nano /etc/nginx/sites-available/my-laravel-app.com
server {  
    listen 80;
    server_name my-laravel-app.com;
    root /var/www/html/my-laravel-app.com/current/public;

    index index.html index.htm index.php;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    error_page 404 /index.php;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    }

}

Attiva il blocco del server creando un collegamento simbolico:

sudo ln -s /etc/nginx/sites-available/my-laravel-app.com /etc/nginx/sites-enabled/my-laravel-app.com

Testare la configurazione di Nginx e riavviare nginx:

sudo nginx -t
sudo service nginx restart

Crea database MySQL

Se non hai MySQL installato puoi visitare il nostro tutorial su Come installare MySQL su Ubuntu 16.04

Per creare un database per l'applicazione laravel, eseguire i seguenti comandi:

mysql -u root -p
CREATE DATABASE laravel;
GRANT ALL PRIVILEGES ON laravel.* TO 'laraveluser'@'localhost' IDENTIFIED BY 'your-password';
FLUSH PRIVILEGES;
\q

Crea un utente Deployer

Lo scopo principale di questo utente è distribuire la nostra applicazione Laravel eseguendo i comandi sul nostro server.

Per creare l'utente eseguire il comando seguente:

sudo adduser deployer

Sia Nginx che PHP FPM funzionano come utente www-data. I file e le directory creati dall'utente del deployer devono essere scrivibili dall'utente www.

Esegui il comando seguente per aggiungere l'utente del distributore al gruppo www-data:

sudo usermod -aG www-data deployer

Modifica la proprietà della radice del documento eseguendo:

sudo chown deployer:www-data /var/www/html/my-laravel-app.com

e impostare l'ID gruppo utenti

sudo chmod g+s /var/www/html/my-laravel-app.com

Con il comando precedente tutti i nuovi file e sottodirectory creati all'interno di `/var/www/html/my-laravel-app.com` erediteranno l'ID del gruppo di directory.

Aggiungi la chiave SSH pubblica dell'utente locale al file /home/deployer/.ssh/authorized_keys in modo da poter accedere al server remoto dal tuo computer locale senza password come distributore utente ed eseguire i comandi di distribuzione.

Infine devi aggiungere la chiave SSH dell'utente del distributore al tuo server git, come hai fatto con l'utente del tuo computer locale.

Utilizzo di Deployer

Apri il terminale del tuo computer locale e passa alla directory del progetto laravel.

cd ~/my-laravel-app

Esegui il comando seguente per creare un file di ricetta chiamato deploy.php .

dep init -t Laravel

Apri il file e configura e imposta le credenziali del repository corrette e configura il parametro host come segue:

host('your_remove_server_ip')
    ->user('deployer')
    ->set('deploy_path', '/var/www/html/my-laravel-app.com');

Dalla directory interna del progetto puoi ora eseguire il comando `dep` per distribuire la tua applicazione.

Per ulteriori informazioni su come configurare e utilizzare Deployer, visita la loro pagina della documentazione.

Ovviamente, non devi configurare il tuo server remoto se usi uno dei nostri server Ubuntu velocissimi, nel qual caso puoi semplicemente chiedere ai nostri esperti amministratori Linux di creare l'utente del deployer e installare e configurare tutti i servizi necessari per te . Sono disponibili 24 ore su 24, 7 giorni su 7 e si prenderanno immediatamente cura della tua richiesta.

PS. Se ti è piaciuto questo post, su come distribuire automaticamente le applicazioni Laravel con Deployer su Ubuntu 16.04, condividilo con i tuoi amici sui social network usando i pulsanti a sinistra o semplicemente lascia una risposta qui sotto. Grazie.


Panels
  1. Come sostituire Iptables con Firewalld in Ubuntu 16.04?

  2. Come installare Elgg con Nginx su Ubuntu 14.04

  3. Come distribuire automaticamente applicazioni Laravel con Deployer su Ubuntu 16.04

  4. Come installare Joomla con Nginx su Ubuntu 18.04

  5. Come installare Let's Encrypt su Ubuntu 20.04 con Apache

Come installare WordPress 5.x con Nginx su Ubuntu 18.04 / Ubuntu 16.04

Come installare ElastAlert con Elasticsearch su Ubuntu

Come installare NextCloud su Ubuntu 20.04 con Apache

Come installare WordPress con Nginx su Ubuntu

Come installare Lighttpd con PHP in Ubuntu 20.04

Come distribuire l'applicazione Laravel con Nginx su Ubuntu?