Terug naar blog

Laravel installeren en configureren met Nginx op Ubuntu 20.04

Laravel installeren en configureren met Nginx op Ubuntu 20.04

Introductie

Laravel is een webapplicatie-framework dat wordt geleverd met een verzameling ingebouwde tools en hulpmiddelen om moderne PHP applicaties te ontwikkelen. Het staat bekend om zijn betrouwbaarheid, prestaties, efficiëntie, modulariteit en veiligheid. Vanwege de verschillende ingebouwde functies heeft Laravel een ongelooflijke groei in populariteit doorgemaakt. Veel ontwikkelaars stappen over op Laravel om het webontwikkelingsproces te stroomlijnen.

Deze gids laat zien hoe je een nieuwe Laravel-applicatie installeert en configureert op Ubuntu 20.04.

Laravel op Ubuntu

We gebruiken Composer, een PHP-dependency manager, om Laravel te downloaden en te beheren. Om Composer te installeren, volg je de instructies van deze handleiding. De Nginx-server zal de applicatie serveren. Het zal een demo Laravel-applicatie opzetten met behulp van de MySQL database.

Deze gids vereist enkele voorwaarden. We gaan ervan uit dat je al een correct geconfigureerde Ubuntu 20.04-server up and running hebt. Ter referentie is hier een snelle gids over het opzetten van een Ubuntu-server. Het is ook vereist om de LEMP (Linux, Nginx, MySQL en PHP) stack geïnstalleerd en geconfigureerd te hebben. We hebben een gedetailleerde gids over het installeren en configureren van de LEMP-stack.

Omdat we verschillende pakketten gaan installeren, zijn root-rechten vereist. In het geval van Ubuntu is de root-gebruiker standaard uitgeschakeld. We hebben dus toegang nodig tot een niet-root-gebruiker met sudo privileges. Hier is hoe je sudo-rechten verleent aan andere gebruikers.

Step 1 – PHP-modules installeren

Voordat we Laravel installeren, hebben we enkele belangrijke PHP-modules nodig voor het framework. Deze modules zijn direct beschikbaar via de standaard pakketbronnen van Ubuntu. Deze modules ondersteunen functies zoals karaktercodering, XML en precisiewiskunde.

Werk eerst de APT cache bij en installeer de pakketten:

Step 2 – Een database maken voor de applicatie

Om de functionaliteit van Laravel te demonstreren, maken we een reislijst-applicatie die de lijst met plaatsen toont die de gebruiker wil bezoeken, en een lijst met plaatsen die al zijn bezocht. We kunnen deze gegevens opslaan in een tabel 'places' met de velden name (locatienaam) en visited (gemarkeerd als visited of nonvisited). Een extra veld zal een unieke identiteit bevatten voor elk item. Om de gegevens te verbinden met onze Laravel-applicatie, maken we een speciale MySQL-gebruiker aan en verlenen we deze gebruiker volledige rechten op de database travellist.

De native MySQL PHP-bibliotheek mysqlnd ondersteunt niet langer caching_sha2_authentication. Daarom moeten we onze database instellen met de authenticatiemethode mysql_native_password. Open de MySQL-shell als de root:

Maak vervolgens een nieuwe database aan met de naam travellist:

Maak daarna een speciale gebruiker aan travellist_user met een geschikt wachtwoord:

Geef de gebruiker travellist_user volledige rechten op de database travellist. Dit voorkomt ook dat de gebruiker andere databases op de server kan maken of wijzigen:

Sluit de MySQL-shell af:

exit

Laten we de nieuwe gebruiker testen. Het volgende commando logt in op de MySQL-shell als de gebruiker travellist_user. De vlag -p zal om het gebruikerswachtwoord vragen:

Toon alle beschikbare databases. Zoals eerder geconfigureerd, zou dit alleen travellist en information_schema moeten tonen:

Vervolgens moeten we de datatabel places aanmaken. Voer het volgende MySQL-statement uit:

Laten we de tabel vullen met wat voorbeeldgegevens:

Laten we kijken of de gegevens succesvol zijn opgeslagen in de database:

Zoals we kunnen zien, is de testtabel gevuld met geldige gegevens. We kunnen nu de MySQL-shell afsluiten:

MySQL shell

Step 3 – Een nieuwe Laravel-app maken

We zijn nu klaar om een nieuwe Laravel-applicatie te maken met behulp van Composer. We gebruiken travellist als een demo-applicatie. Deze applicatie toont de lijst met locaties uit de MySQL-database, wat de basisconfiguratie van Laravel demonstreert. Ga naar de thuismap van de gebruiker:

De volgende stap is het maken van een nieuwe Laravel-applicatie met behulp van Composer. Dit zal een specifieke map maken genaamd travellist met een minimale Laravel-applicatie met standaardinstellingen. Voer het volgende commando uit:

composer create-project

Zodra de app is opgezet, kunnen we controleren of alle componenten succesvol zijn geïnstalleerd:

php artisan

De uitvoer bevestigt dat alle applicatiebestanden op hun plaats staan. Het zorgt er ook voor dat alle Laravel-opdrachtregelprogramma's functioneel zijn. Er is echter nog steeds app-configuratie nodig om de database in te stellen en een paar extra aanpassingen te doen.

Step 4 – Laravel-configuratie

Alle Laravel-configuratiebestanden zijn opgeslagen in een map genaamd config binnen de hoofdmap van de app. Bovendien maakt het installeren van Laravel met Composer ook een omgevingsbestand aan. Dit bevat verschillende instellingen die specifiek zijn voor de huidige omgeving. Waarden die hierin worden gedeclareerd, hebben voorrang op de waarden die zijn ingesteld in reguliere configuratiebestanden in config.

Elke unieke installatie vereist een eigen omgevingsbestand om waarden te definiëren zoals databaseverbindingsinstellingen, app-URL, debug-opties, enz. Let op dat het omgevingsbestand gevoelige informatie bevat zoals database-inloggegevens, beveiligingssleutels, enz. Daarom wordt het ten zeerste aanbevolen om dit bestand nooit openbaar te delen.

Open het omgevingsbestand met een teksteditor:

Hier is een voorbeeld van een omgevingscode:

DB_PASSWORD=password123

Laten we de waarden nader bekijken:

  • APP_NAME: Dit veld beschrijft de naam van de applicatie. Deze naam zal worden gebruikt voor meldingen en berichten.
  • APP_ENV: De huidige omgeving van de applicatie.
  • APP_KEY: Deze sleutel wordt automatisch gegenereerd bij het installeren van Laravel via Composer. Het wordt gebruikt om salts en hashes te genereren. Het is niet nodig om deze te wijzigen.
  • APP_DEBUG: Schakelaar voor debug-modus. Wanneer ingeschakeld, toont het debug-informatie aan de clientzijde.
  • APP_URL: Basis-URL van de app. Deze wordt ook gebruikt voor het genereren van applicatielinks.
  • DB_DATABASE: De naam van de database. In dit geval is dit de specifieke database die we hebben gemaakt.
  • DB_USERNAME: De gebruikersnaam om verbinding te maken met de database.
  • DB_PASSWORD: Het wachtwoord om verbinding te maken met de database.

Sla het bestand op en sluit de editor zodra de wijzigingen zijn aangebracht.

Step 5 – Nginx instellen

We hebben Laravel met succes geïnstalleerd in een lokale map van de thuismap van de gebruiker. Deze configuratie werkt prima voor de lokale ontwikkelomgeving. Het wordt echter niet aanbevolen om deze te implementeren voor webservers die openstaan voor het openbare internet.

Onze volgende stap is om de applicatie te verplaatsen naar /var/www omdat dit de gebruikelijke locatie is voor web-apps die op Nginx draaien. Gebruik het mv commando om travellist te verplaatsen naar /var/www/travellist:

Geef vervolgens de gebruiker schrijftoegang tot de storage en cache mappen. Dit zijn de locaties van door de Laravel-app gegenereerde bestanden:

De applicatiebestanden staan nu op hun plaats. We moeten Nginx echter vertellen om de inhoud te serveren. Maak een nieuw configuratiebestand voor de virtuele host:

Hier is een voorbeeld van aanbevolen instellingen voor een Laravel-applicatie die op Nginx draait:

Tijd om het nieuwe configuratiebestand voor de virtuele host te activeren. Maak een symbolische koppeling naar de sites-enabled map:

Het volgende Nginx-commando test de configuratiebestanden op syntaxisfouten:

Herlaad vervolgens Nginx:

De applicatie zou nu beschikbaar moeten zijn via de domeinnaam of het IP-adres (zoals gedefinieerd door de server_name richtlijn):

Installing Laravel image 3

Stap 6 – De hoofdpagina aanpassen

Nu de Laravel-applicatie is geconfigureerd, kunnen we ermee aan de slag. Ter demonstratie is het tijd om een voorbeeldpagina te maken die de voorbeeldgegevens uit de databasetabel places toont. Open eerst het hoofdroutebestand in een teksteditor:

Het bestand bevat standaard al wat inhoud. Hier worden routes gedefinieerd met behulp van de statische methode (Route::get). Deze ontvangt een path en een callback functie als argumenten.

Vervang de code door de volgende:

Installing Laravel image 2

Sla het bestand op en sluit de editor. Vervolgens maken we de lay-out om de resultaten van de databasequery aan de gebruiker te tonen. Maak een nieuw bestand aan binnen resource/views:

In de volgende code hebben we twee lijsten met plaatsen gemaakt, afhankelijk van de waarde van visited en togo:

Installing Laravel image 1

Sla het bestand op en sluit de editor. Ga nu opnieuw naar de pagina van de web-app:

Travel list

Voilà! We hebben nu een functionele Laravel-applicatie die een MySQL-database gebruikt voor de inhoud.

Tot slot

In deze handleiding hebben we gedemonstreerd hoe je een Laravel-applicatie opzet bovenop de LEMP-stack die draait op een Ubuntu 20.04-server. We hebben ook laten zien hoe je de standaardroute kunt aanpassen om database-inhoud op te vragen en resultaten weer te geven in een aangepaste view. Raadpleeg voor meer informatie over Laravel de officiële documentatie over views, routes, en database-ondersteuning.

De installatie in deze handleiding is uitgevoerd op een standalone virtuele machine. Je kunt echter ook Laravel deployen op de LEMP-stacks op Docker.

Veel computerplezier!

author

Hark Labs

Auteur · CloudSigma

Preslav Dobrev is een creatief ontwerper bij CloudSigma, met de nadruk op een consistente bedrijfsidentiteit door middel van traditionele en innovatieve marketingkanalen. Hij is bedreven in het samenvoegen van artistieke visie met strategische marketing om impactvolle merkverhalen te creëren.

Reacties

Nog geen reacties. Wees de eerste.