Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Laravel
Code

Distribuzione di applicazioni Web PHP utilizzando Laravel Forge

by
Difficulty:BeginnerLength:LongLanguages:

Italian (Italiano) translation by Mirko Pizii (you can also view the original English article)

Gli sviluppatori amano automatizzare le cose — per ogni processo di sviluppo e produzione, sono desiderosi di avere uno script che rende più facile il loro flusso di lavoro. Questo è anche il caso con la distribuzione.

Il processo di Spinta la build finale e distribuzione dell'app dovrebbe essere facile come premendo un Deploy ora pulsante, ma non ciò che si verifica la maggior parte del tempo. Si finisce per investire il nostro tempo e risorse nella configurazione del server, configurazione dell'ambiente, lo spostamento dei file che abbiamo pensato che non erano rilevanti per le compilazioni di produzione e così via.

Alcuni di noi preferiscono inviare file al server manualmente tramite FTP o hanno il codice spinto in un repository di GitHub, mentre altri preferiscono uno strumento di distribuzione per rendere il processo più facile. Un tale attrezzo che rende la distribuzione di PHP una brezza è Laravel Forge.

Non lasciate che il nome del marchio Laravel fuorviarti. Oltre a Laravel, è possibile utilizzare il servizio per l'hosting WordPress, Symphony, Statamic o qualsiasi altro progetto web finché è PHP. Personalmente, mi piace Laravel Forge per la sua semplicità e facilità di tempo per abituarsi.

In questo tutorial, ho intenzione di portarvi i passaggi per gancio Laravel Forge con AWS ed esplorare ciò che ha da offrire.

Panoramica

Laravel Forge consente di spin up cloud server e gestire processi di distribuzione utilizzando Git e alcuni dei fornitori popolari server disponibili. Il processo è spiegato qui sotto:

In primo luogo, sarà necessario collegare la guerra o qualsiasi altro fornitore di servizi di cloud al tuo account di Forge. Successivamente, collegare il controllo del codice sorgente come GitHub a Forge. Ora sarete in grado di creare server. Installare il repository di controllo di origine sul server. Infine, premere il pulsante di distribuzione. Abbastanza facile, giusto?

Server di provisioning con Laravel Forge venire spedito con il seguente stack:

  • Ubuntu 16.06
  • Nginx
  • PHP 7.2/7.1/7.0/5.6
  • MySQL/MariaDB/Postgres
  • Redis
  • Memcached

Una volta che il server è stato creato, è possibile configurare ulteriormente le cose.

Quando ti iscrivi, è possibile scegliere tra i diversi piani che offrono. Ho optato per il piano di base di 12 dollari/mese; Tuttavia, si otterrà una prova gratuita con accesso a tutto l'elenco per cinque giorni.

Una volta effettuato l'accesso, vedrete qualcosa come questo qui sotto.

Screenshot of Laravel Forge main screen once youre logged in

È possibile tra oceano digitale, AWS, Linode e Vultr per il provider di servizi. In alternativa, è possibile utilizzare fucina con un VPC personalizzato troppo. Per quanto riguarda il controllo del codice sorgente, Forge supporta GitHub, GitLab e Bitbucket. In questo tutorial, intenzione di discutere le nozioni di base di configurazione AWS a lavorare con Forge e GitHub per controllo del codice sorgente. Una volta terminato, sarà in grado di creare ed eseguire il provisioning di un numero qualsiasi di server.

Se utilizzi un altro service provider nell'elenco, puoi saltare questo passaggio e recuperare il ritardo con noi più tardi, dopo che noi abbiamo configurato AWS e Laravel Forge.

Impostazione Laravel Forge e AWS

Per configurare Forge e AWS, qui sono i passi che dovete seguire.

1. accedere a Laravel Forge

Login a Laravel Forge e scegliere la guerra come fornitore di servizi. Viene richiesto per un ID di accesso chiave (chiave) e una chiave di accesso segreto (segreto). Sarà necessario creare un utente specifico di IAM con una politica che fornisce un accesso sufficiente a Laravel Forge. IAM è modo di Amazon di autorizzazioni di mappatura su ciascun utente in modo che puoi revocare l'accesso se qualcosa va storto.

2. creare un nuovo utente IAM

Accedi alla Console di AWS e creare un nuovo utente IAM.

Create an IAM user on AWS with programmatic access

Dare all'utente un nome significativo e spunta la casella che dice accesso programmatico.

3. scegliere la giusta politica

Impostare l'autorizzazione di destra per l'utente IAM laravel-fucina. Creare un nuovo gruppo di utenti perché gruppi di utenti sono ideali per la gestione delle autorizzazioni. Ora la domanda naturale è: "quali politiche dovrebbe l'utente fucina hanno accesso a?" Anche se si potrebbe fornire con AdministratorAccess, non dovresti.

Create a user group with the right permissions

Se avete bisogno di Forge per creare ed eseguire il provisioning server per vostro conto, è necessario aggiungere due criteri:

  1. AmazonEC2FullAccess
  2. AmazonVPCFullAccess

4. salvare le credenziali e confermare

Confermare l'account IAM e, nella pagina successiva, troverete la chiave di accesso e il codice segreto.

Newly generated Access key and secret

Andate alla pagina Laravel Forge e incollarli lì. Questo è tutto.

5. Collegare l'Account GitHub a Forge

Connettere l'account GitHub/Bitbucket a Forge se non che hai già fatto. Forgia aggiungerà una chiave pubblica al tuo account quando si crea un server. Se avete bisogno di aggiungere un nuovo provider di servizi e/o aggiornare il controllo del codice sorgente, che hai quelle opzioni dentro il tuo profilo.

Creazione di un nuovo Server

Vai alla pagina di creazione del Server per aggiungere un nuovo server.

Laravel Forges interface for adding a new server

Scegliere t2.micro con 1GB di RAM se siete sul livello disponibile di AWS. Per quanto riguarda le altre impostazioni, ho intenzione di andare con le impostazioni predefinite. Questo include MySQL per il database e PHP versione 7.2. È possibile personalizzare il nome del database più tardi. Per mantenere le cose semplici, ho deciso di non utilizzare un bilanciamento del carico. Se ti stai chiedendo circa la ricetta di post-produzione, ho coperto che verso la fine di questo tutorial.

Potrebbe richiedere fino a cinque minuti per il server deve essere creato. Riceverai le credenziali per l'accesso sudo. Conservarli in un luogo sicuro in modo che è possibile utilizzarli in futuro. Per vedere che le cose funzionino come previsto, andare all'indirizzo IP del server e si dovrebbe vedere l'output di phpinfo() sullo schermo.

Interfaccia di gestione server

L'interfaccia che vedete dopo la creazione di un server è il cruscotto di gestione server.

Server management dashboard

Si può fare un sacco di cose qui, come:

  • gestione del sito
  • l'aggiunta di chiavi SSH
  • configurazione del database
  • aggiornamento delle impostazioni di PHP
  • pianificazione di un'attività
  • avviare un demone
  • gestione di rete e configurare firewall
  • applicazione di monitoraggio utilizzando Blackfire o Papertail
  • configurazione delle impostazioni di meta

Che è un sacco di funzioni in bundle in là. Ho coperto i importanti in questo tutorial. Iniziamo con la gestione del sito. Secondo i documenti di Forge:

I siti rappresentano ogni "dominio" sul vostro server. Il sito di "default" è incluso con ogni server appena provisioning; Tuttavia, si dovrebbe eliminarlo e creare un nuovo sito con un nome di dominio valido quando si è pronti per lanciare il vostro sito di produzione.

Come si può vedere, Forge ha già istituito un sito predefinito per noi. È possibile creare un numero qualsiasi di siti e indirizzarle ai sottodomini. Ai fini di questa esercitazione, mi atterrò al sito predefinito. La directory web è impostata a /public per impostazione predefinita. Questo è come deve essere configurato per Laravel e più altre applicazioni web.

Se si fa clic su un sito specifico, si vedrà l'interfaccia di gestione del sito. Si può gestire, distribuire e configurare i singoli siti da qui.

Interfaccia di gestione del sito

Ecco quello che l'interfaccia inizialmente sembra.

You can add the Git repo from this screen

Si può installare da un repository Git o installare WordPress. Ai fini di questa esercitazione, ho creato un esempio di applicazione che può forkare sul tuo conto di contattarci. È possibile specificare il nome del progetto e il ramo. Una volta che hai finito, si dovrebbero avere i controlli per la distribuzione dell'applicazione.

Site management dashboard with deployment controls

Vorrei darvi un breve tour delle opzioni disponibili.

Distribuire ora e di distribuzione rapida

Per distribuire, è possibile distribuire manualmente utilizzando il pulsante Distribuisci. In alternativa, è possibile attivare l'opzione di distribuzione rapida, che distribuisce automaticamente il progetto quando si Spinta in codice il branch master di repository di GitHub selezionate.

Script di distribuzione

Il valore predefinito distribuire codice di script tira dal repository, installa le dipendenze, avvia il server ed esegue le migrazioni ogni volta che l'applicazione viene distribuita. Ecco lo script di distribuzione effettiva.

Se avete bisogno di modificarlo e aggiungere qualcosa in più, è possibile.

Distribuzione Trigger URL

È possibile utilizzare questo per integrare la tua app in un servizio di terze parti o creare uno script di distribuzione personalizzata. Quando l'URL riceve una richiesta, viene attivato lo script di distribuzione.

Aggiornare il Repo e il ramo

Se avete bisogno di aggiornare il ramo o installare una versione più recente dello stesso progetto in un repository diverso, è possibile utilizzare queste opzioni. Se si sta aggiornando la filiale, è necessario aggiornare anche il nome di ramo nello script di distribuzione.

Ambiente

Forgia genera automaticamente un file di ambiente per l'applicazione. Alcuni dettagli come ad esempio le credenziali del database vengono aggiunti automaticamente all'ambiente. Tuttavia, se l'applicazione utilizza un'API, è possibile inserire la chiave API in modo sicuro nell'ambiente. Anche se si sta eseguendo un generico PHP web app, è possibile accedere le variabili ENV utilizzando il metodo getenv().

Lavoratore di coda

A partire da un lavoratore di coda Forge è la stessa cosa che lanciare il queue:work comando artigianale. Forgia gestisce i lavoratori di coda utilizzando un monitor di processo chiamato supervisore in modo che il processo continua a correre in modo permanente. È possibile creare più code basate sulla priorità della coda o qualsiasi altra classificazione che trovate utili.

SSL

Protezione SSL per un sito Web era tutt'altro che facile e gratuito in passato. Forge consente di installare un certificato esistente o è possibile ottenere un certificato gratuito da LetsEncrypt. È veloce e facile. Se avete bisogno di SSL per i sottodomini con caratteri jolly, è possibile aggiungere i certificati di Cloudflare gratis a Forge.

Torna all'interfaccia di gestione Server, abbiamo chiavi SSH.

Aggiunta di chiavi SSH

Anche se la maggior parte delle opzioni configurabili sono disponibile sul cruscotto, se è necessario connettersi al server, si dovrebbe farlo usando SSH. SSH è il modo più sicuro di registrazione in un VPS e fornisce maggiore protezione rispetto alle password.

Per accedere al server tramite SSH, è necessario generare una coppia di chiavi, se non lo hai già. La chiave pubblica verrà reso accessibile al server, e la chiave privata risiederà nel vostro ospite. È quindi possibile utilizzare il programma di installazione per connettersi all'istanza del server.

Adding SSH keys to Forge server

Nota: La chiave SSH ha aggiunta il dashboard di gestione server sarà specifica per quel server. Se è necessario aggiungere chiavi automaticamente a tutti i server da qui su, è possibile aggiungere loro dalle impostazioni del tuo profilo.

Per generare una coppia di chiavi, eseguire il comando seguente.

Verrà chiesto un paio di domande come ad esempio il file dove si desidera memorizzare la chiave e la passphrase per una maggiore sicurezza. Successivamente, aggiungere la chiave SSH ssh-agent.

Copiare la chiave pubblica e aggiungerlo all'elenco della forgia delle chiavi SSH.

Configurazione di PHP e MySQL

È possibile utilizzare l'interfaccia per configurare PHP e MySQL. Per il database, le opzioni disponibili includono:

  • Creare nuovi database.
  • Aggiungere nuovi utenti.
  • L'aggiornamento di accesso degli utenti ad un database.
  • Aggiornare le conoscenze di Forge sulla password.

Assicurarsi di compilare i dati aggiornati nel tuo file .env.

È possibile configurare le seguenti impostazioni di PHP:

  • Eseguire l'aggiornamento all'ultima versione di PHP.
  • Modificare le dimensioni del file di upload.
  • Ottimizzare OPCache per la produzione in modo che il codice PHP compilato verrà memorizzato nella memoria.

Altre impostazioni importanti

Qui ho elencato alcune delle altre impostazioni disponibili.

Pianificazione di un'attività

È possibile utilizzare utilità di pianificazione di Forge per pianificare attività ricorrenti o eseguire cron job. Se avete bisogno di inviare e-mail periodicamente, pulire qualcosa, o eseguire uno script, è possibile utilizzare l'utilità di pianificazione. Un'attività viene creata per impostazione predefinita che esegue composer self-update su base giornaliera. Si può provare a pianificare una nuova con una frequenza di vostra scelta.

Avviare un demone

Un demone è un programma per computer che viene eseguito in un processo in background. Laravel Forge consente di avviare un demone e utilizza supervisore per garantire che il demone rimane in esecuzione. Se il demone si blocca per qualche motivo, Supervisor verrà riavviato automaticamente lo script.

Controllo dell'applicazione

Laravel Forge dispone del supporto incorporato per gli strumenti che consentono di monitorare l'applicazione di misure di performance di raccolta di dati sulle risorse come la memoria, tempo di CPU e operazioni i/o. Gli strumenti disponibili sono Blackfire.io e Papertrail. Per avviare l'applicazione di profilatura, hai solo bisogno di recuperare le giuste credenziali dal sito Web di terze parti e basta.

Configurazione del Server di rete e Firewall

Se è necessario aggiornare le impostazioni del firewall, non devi andare alla console AWS per realizzare questo obiettivo. È possibile creare nuove regole firewall dal cruscotto. Se avete altri server provisioning utilizzando il provider stesso e la regione, è possibile impostare una rete di server affinché possano comunicare indolore.

Riepilogo

Laravel Forge è un incredibile strumento che rende la distribuzione un pezzo di torta. Ha tonnellate di funzioni e un'interfaccia utente facile da usare che ti permette di creare e provisioning server e distribuire le applicazioni senza alcun problema. Una volta configurato il provider di servizio, le probabilità sono alte che non sarà necessario accedere alla console AWS per gestire il server nuovo.

In questo tutorial, ho coperto le nozioni di base per la configurazione di AWS con Laravel Forge e la procedura per un server di provisioning e distribuzione di un'applicazione. Ho anche discusso quasi tutte le funzioni disponibili nell'interfaccia di Forge.

Per quelli di voi che sono solo ottenendo iniziato con Laravel o cercando di espandere la vostra conoscenza, sito o applicazione con estensioni, abbiamo una varietà di cose che si può studiare nel mercato di Envato.

Avete qualche esperienza da condividere con la distribuzione di applicazioni PHP utilizzando Laravel Forge o qualsiasi altro strumento di distribuzione popolare? Fateci sapere nei commenti.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.