Laravel er et open source-framework til opbygning af skalerbare PHP-webapplikationer. Det er en favorit blandt mange udviklere på grund af dets brugervenlige moduler til autentificering, afhængighedsstyring, lagring af sessioner og cache, routing og meget mere.

Laravel Forge forenkler udrulning og konfiguration af Laravel-applikationer ved at automatisere servertilførsel, softwareinstallation og -vedligeholdelse samt udrulning. Den har også avancerede sikkerhedsfunktioner såsom firewalls og SSH-autentifikationer (Secure Socket Shell).

Denne artikel vil gennemgå, hvordan Laravel Forge fungerer, dens vigtigste funktioner og implementeringsmuligheder, og hvordan den kan sammenlignes med Kinsta.

Hvordan og hvorfor du bør bruge Laravel Forge

Laravel Forge fungerer som din servermanager, så du kan installere PHP, Nginx-servere, MySQL-databaser og alle andre afhængigheder uden at installere dem manuelt. Dette hjælper med at sende kode meget hurtigere ved at gøre ændringer af loud-server nemme.

Andre anvendelser omfatter:

  • Håndtering af baggrundsprocesser (daemon)
  • Udførelse af applikationer ved hjælp af bash-scripts
  • Installation af SSL-certifikater (Secure Socket Layer)
  • Planlægning af cron-opgaver

Hvordan fungerer Laravel Forge?

Laravel Forge’s effektive nye design prioriterer enkelhed og brugervenlighed. Det giver dig mulighed for at vælge en hostingudbyder, såsom Digital Ocean, Linode eller Rackspace, som giver dig en server på få minutter.

Hver server indeholder en komplet stak af de nyeste versioner af PHP, Nginx, MySQL, PostgreSQL og cachingbiblioteker som Redis. Når serveren er oprettet, kan du med serveren knytte din applikation til dine versionsredskaber, f.eks. GitHub, GitLab eller Bitbucket.

Laravel Forge tilføjer et implementeringsscript til din applikation, som kan køres på serverne med et enkelt klik. Dette giver ekstra fleksibilitet og effektivitet, når du udruller vanilla PHP- og Laravel-applikationer. Laravel Forge kan også administrere applikationer i andre teknologiske stakke, f.eks. Node.js.

Under implementeringen bruger Laravel Forge SSH-nøgler til at logge ind på dine servere og kører og installerer alle de nyeste softwareafhængigheder, som din applikation har brug for. Dette gør det lettere at skifte hostingudbyder til enhver tid for at modvirke skalerbarhed eller for at øge eller reducere antallet af servere afhængigt af efterspørgslen.

Andre implementeringsmuligheder for Laravel Forge omfatter:

  • Deployment Scripts – Disse bruges til at udføre serverkommandoer. Denne implementeringsindstilling kan redigeres ved hjælp af Forge UI.
  • Deployment fra Continuous Integration (CI) værktøj – Brugere kan vælge enten Forge CLI eller Deployment Trigger til at distribuere deres applikationer med Forge.

Sådan implementeres med Laravel Forge

Hvis du vil distribuere en app ved hjælp af Forge, skal du oprette en konto hos dem og derefter vælge mellem en af de mange tilgængelige serverværtsudbydere. Når du har forsynet din server med den rigtige placering og dropletplan, skal du oprette et domænenavn. Forge opretter automatisk alle de nødvendige afhængigheder og biblioteker ved at installere de nyeste PHP-versioner på din server.

Bemærk: Du skal bruge en API-nøgle for at oprette forbindelse til en cloududbyder, der ikke er leveret i Laravel Forge.

Derefter skal du godkende dig til den versionskontrol, du vælger. Dette gør det nemt at migrere repositoriets kodebase til Laravel Forge. Udviklerne kan derefter i samarbejde bidrage til repositoriet og få ændringerne automatisk udleveret til serveren.

Når du har knyttet dit repository, skal du klikke på Deploy Now for at aktivere Forge-softwaren til at udføre deploy-scriptet og konfigurere applikationen.

En måde at distribuere din applikation ved hjælp af Laravel Forge på er ved hjælp af et CI-værktøj. Når Forge CLI er installeret, kan du bruge kommandoen deploy i dit CI-miljø. Du skal bruge Forge API-tokenet til at autentificere dig til Forge CLI.

Eksemplet nedenfor illustrerer, hvordan du gør dette i et par enkle trin, mens du bruger GitHub. I din projektmappe skal du oprette en mappe your-project/.github/workflows i din projektmappe. I den skal du oprette en forge.yml-fil med nedenstående indhold:

name: Deploy

on:
  push:
    branches: [ main ]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
      checkout@v2
      - name: Setup SSH
        uses: webfactory/[email protected]
        with:
          ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: 8.0
          tools: composer:v2
          coverage: none
      - name: Require Forge CLI
        run: composer global require laravel/forge-cli
      - name: Deploy Site
        run: |
          forge server:switch your-server-name
          forge deploy your-site-name.com
        env:
          FORGE_API_TOKEN: ${{ secrets.FORGE_API_TOKEN }}

Bemærk: Du kan gennemgå eksempelkoden her. Du kan derefter skubbe ændringerne til din hovedgren og lade GitHub Actions udføre implementeringsskripterne.

Miljøvariabler som f.eks. databaseadgangskoder og hemmelige nøgler kan være en udfordring at holde i et produktionsmiljø. For at holde dine projektfiler sikre skal du konfigurere database- og  applikation miljøvariablerne til hver af dine projektmiljøfiler (.env).

Fordele ved Laravel Forge

Brugernes fordele ved Laravel Forge omfatter bl.a:

  • Ikke begrænser brugerne til én hostingplatform. Dette gør det nemt at implementere mange projekter på forskellige hostingudbydere, afhængigt af deres behov.
  • Brug af deployment-scriptet til automatisk at køre kravene til din applikation med de nyeste biblioteker uden at installere dem manuelt.
  • Konsistens i konfigurationsindstillinger og tilladelser og reduktion af implementeringsomkostninger og fejl. Dette giver udviklerne mulighed for at fokusere mere på applikationsudvikling end på at vedligeholde implementeringsskripter og -processer.
  • Avanceret og medfødt sikkerhed til din applikations server via en firewall, SSH-nøgler og dataisolering for at forhindre lækager.

Laravel Forge og Kinsta

Mens Laravel Forge er ansvarlig for administration af applikationsservere, er Kinsta en hostingadministrationsplatform, der giver dig mulighed for at tage dine krav til applikations- og databasehosting til det næste niveau. Hvis du har et WordPress-websted, der administreres af Forge-software, er det nemt at migrere til Kinsta gratis.

Kinsta tilbyder flere fordele for sine brugere, såsom bedre værktøjer til optimering af administrationsopgaver, DevOps-understøttelse til applikationshosting og Cloudflare-funktioner til WordPress-hosting.

Kinsta giver alt dette med virksomhedsværktøjer og premium-funktioner uden skjulte eller ekstra omkostninger for hvert abonnement.

Opsummering

Implementering kan være en udfordring for store og små organisationer. Hver applikation har sine udfordringer, såsom problemer med skalerbarhed, redundante afhængigheder og proceskompleksitet.

Laravel Forge gør hosting af applikationer effektivt og problemfrit ved at fungere som mægler mellem udviklere og servere. Ved hjælp af forskellige implementeringsmuligheder kan udviklere vælge enten implementeringsscripts eller CI-værktøjet til at administrere deres websteder og servere.

Ligesom med Laravel Forge er det en leg at implementere webapps med Kinsta, men du får også større fleksibilitet, funktioner og prisplaner. Start din gratis prøveperiode i dag!