Zpět na blog

Instalace a konfigurace Laravel s Nginx na Ubuntu 20.04

Instalace a konfigurace Laravel s Nginx na Ubuntu 20.04

Úvod

Laravel je framework pro webové aplikace, který přichází s sadou vestavěných nástrojů a prostředků pro vývoj moderních PHP aplikací. Je známý svou spolehlivostí, výkonem, efektivitou, modularitou a bezpečností. Díky svým rozmanitým vestavěným funkcím zaznamenal Laravel neuvěřitelný nárůst popularity. Mnoho vývojářů přijímá Laravel, aby zefektivnili proces vývoje webu.

Tento návod ukáže, jak nainstalovat a nakonfigurovat novou aplikaci Laravel na Ubuntu 20.04.

Laravel na Ubuntu

Použijeme Composer, správce závislostí pro PHP, ke stažení a správě Laravelu. Chcete-li nainstalovat Composer, postupujte podle pokynů v tomto návodu. The Nginx server bude obsluhovat aplikaci. Vytvoří ukázkovou aplikaci Laravel s využitím MySQL databáze.

Tento návod vyžaduje splnění několika předpokladů. Předpokládáme, že již máte správně nakonfigurovaný a spuštěný server Ubuntu 20.04. Pro referenci je zde rychlý návod na nastavení serveru Ubuntu. Je také vyžadováno mít nainstalovaný LEMP stack (Linux, Nginx, MySQL a PHP). Máme podrobný návod na instalaci a konfiguraci LEMP stacku.

Because we’re going to install various packages, it requires root permission. In the case of Ubuntu, the root user is disabled by default. So, we need access to a non-root user with sudo privilege. Here’s jak udělit oprávnění sudo ostatním uživatelům.

Krok 1 – Instalace PHP modulů

Před instalací Laravelu potřebujeme pro tento framework některé důležité PHP moduly. Tyto moduly jsou přímo dostupné z výchozích balíčkových repozitářů Ubuntu. Tyto moduly podporují funkce jako kódování znaků, XML a přesnou matematiku.

First, update the APT cache and install the packages:

Krok 2 – Vytvoření databáze pro aplikaci

To demonstrate the functionality of Laravel, we will make a travel list application that shows the list of places the user would like to visit, and a list of places that are already visited. We can store this data in a table place with fields name (location name) and visited (marking as visited nebo nonvisited). An additional field will feature a unique identity for each entry. To connect the data with our Laravel application, we will create a dedicated MySQL user, and grant the user full permission over the database travellist.

The native MySQL PHP library mysqlnd no longer supports caching_sha2_authentication. Thus, we need to set our database with the authentication method mysql_native_password. Access the MySQL shell as the root:

Next, create a new database named travellist:

After that, create a dedicated user travellist_user with a suitable password:

Give the user travellist_user full permission over the database travellist. It will also prevent the user from creating and modifying any other database on the server:

Opusťte MySQL shell:

exit

Let’s put the new user to the test. The following command will log in to the MySQL shell as the user travellist_user. The flag -p will prompt for the user password:

Print all the available databases. As configured earlier, it should show travellist and information_schema only:

Next, we need to create the data table places. Run the following MySQL statement:

Naplňme tabulku několika ukázkovými daty:

Podívejme se, zda byla data úspěšně uložena do databáze:

Jak vidíme, testovací tabulka je naplněna platnými daty. Nyní můžeme MySQL shell opustit:

MySQL shell

Krok 3 – Vytvoření nové aplikace Laravel

We are now ready to create a new Laravel application using Composer. We’ll use travellist as a demo application. This application will display the location list from the MySQL database, demonstrating the basic configuration of Laravel. Go to the user’s home directory:

The next step is to create a new Laravel application using Composer. It will create a dedicated directory travellist with a barebones Laravel application with default settings. Run the following command:

composer create-project

Jakmile je aplikace vytvořena, můžeme ověřit, zda byly všechny komponenty úspěšně nainstalovány:

php artisan

Výstup potvrzuje, že všechny soubory aplikace jsou na svém místě. Ujišťuje také, že všechny nástroje příkazové řádky Laravel jsou funkční. Vyžaduje to však ještě konfiguraci aplikace pro nastavení databáze a několik dalších úprav.

Krok 4 – Konfigurace Laravelu

All the Laravel configuration files are stored within a directory named config within the root app directory. In addition, when installing Laravel with Composer, it also creates an environment file. It contains various settings specific to the current environment. Values declared within it will take precedence over the values set in regular configuration files at config.

Každá jedinečná instalace bude vyžadovat vlastní soubor prostředí pro definování hodnot, jako je nastavení připojení k databázi, URL aplikace, možnosti ladění atd. Upozorňujeme, že soubor prostředí obsahuje citlivé informace, jako jsou přihlašovací údaje k databázi, bezpečnostní klíče atd. Proto se důrazně doporučuje tento soubor nikdy veřejně nesdílet.

Otevřete soubor prostředí v textovém editoru:

Zde je ukázkový kód prostředí:

DB_PASSWORD=password123

Pojďme si rozebrat jednotlivé hodnoty:

  • APP_NAME: This field describes the name of the application. This name will be used for notifications and messages.
  • APP_ENV: The current environment of the application.
  • APP_KEY: This key is generated automatically when installing Laravel through Composer. It is used to generate salts and hashes. No need to change it.
  • APP_DEBUG: Debug mode toggle. When turned on, it will show debug info on the client-side.
  • APP_URL: App base URL. It’s also used for generating application links.
  • DB_DATABASE: The name of the database. In this case, it will be the dedicated database we created.
  • DB_USERNAME: The username to connect to the database.
  • DB_PASSWORD: The password to connect to the database.

Jakmile provedete změny, soubor uložte a zavřete editor.

Krok 5 – Nastavení Nginx

Úspěšně jsme nainstalovali Laravel do lokální složky domovského adresáře uživatele. Tato konfigurace funguje dobře pro lokální vývojové prostředí. Nedoporučuje se ji však implementovat pro webové servery, které jsou přístupné z veřejného internetu.

Our next step is to move the application to /var/www as it’s the usual location for web apps running on Nginx. Use the mv command to move travellist to /var/www/travellist:

Next, assign the user write access to the storage and cache folders. These are the locations of Laravel app-generated files:

Soubory aplikace jsou nyní na svém místě. Musíme však říct Nginxu, aby tento obsah poskytoval. Vytvořte nový konfigurační soubor virtuálního hostitele:

Zde je ukázka doporučených nastavení pro aplikaci Laravel běžící na Nginxu:

Time to activate the new virtual host configuration file. Create a symbolic link to sites-enabled directory:

Následující příkaz Nginx otestuje konfigurační soubory na syntaktické chyby:

Poté znovu načtěte Nginx:

The application should now be available using the domain name or IP address (as defined by the server_name directive):

Installing Laravel image 3

Krok 6 – Přizpůsobení hlavní stránky

With the Laravel application configured, we can now start working on it. For demonstration, it’s time we created a sample page showcasing the sample data from the database table places. First, open the main route file in a text editor:

The file will contain some content by default. Here, routes are defined using the static method (Route::get). It receives a cesta a zpětné volání funkce jako argumenty.

Nahraďte kód následujícím:

Installing Laravel image 2

Save the file and close the editor. Next, we’ll create the layout to render the database query results to the user. Create a new file within resource/views:

In the following code, we’ve created two lists of places depending on the value of visited and togo:

Installing Laravel image 1

Uložte soubor a zavřete editor. Nyní znovu přejděte na stránku webové aplikace:

Travel list

Voila! Nyní máme funkční aplikaci Laravel, která pro obsah využívá databázi MySQL.

Závěrečné myšlenky

V tomto návodu jsme si ukázali, jak nastavit aplikaci Laravel na stacku LEMP běžícím na serveru Ubuntu 20.04. Také jsme předvedli, jak přizpůsobit výchozí routu pro dotazování na obsah databáze a zobrazení výsledků ve vlastním zobrazení. Další informace o frameworku Laravel naleznete v oficiální dokumentaci k pohledům, routám, a podpoře databází.

Instalace v tomto návodu se provádí na samostatném virtuálním stroji. Můžete však také nasadit Laravel na LEMP stacky v Dockeru.

Příjemnou práci!

author

Hark Labs

Autor · CloudSigma

Preslav Dobrev je kreativní designér ve společnosti CloudSigma, který se zaměřuje na konzistentní firemní identitu prostřednictvím tradičních i inovativních marketingových kanálů. Je zdatný v propojování umělecké vize se strategickým marketingem za účelem vytváření působivých příběhů značky.

Komentáře

Zatím žádné komentáře. Buďte první.