Jak zainstalować Laravel na Ubuntu 20.04

Wszystko, co musisz wiedzieć, aby wdrożyć aplikację internetową Laravel na komputerze z systemem Ubuntu 20.04 LTS

Laravel to bardzo popularny framework PHP typu open source z ekspresyjną i elegancką składnią używaną do projektowania nowoczesnych i pięknych aplikacji internetowych. Laravel ma na celu usunięcie bólu związanego z tworzeniem stron internetowych i uczynienie go przyjemnym i kreatywnym doświadczeniem, zmieniając programistów w internetowych rzemieślników.

W tym przewodniku dowiesz się, jak zainstalować Laravel ze stosem LAMP na serwerze Ubuntu 20.04, aby uruchomić swoją aplikację internetową.

Warunki wstępne

Aby postępować zgodnie z tym przewodnikiem, potrzebujesz serwera Ubuntu 20.04 LTS i zaloguj się jako sudo użytkownik. Zanim zaczniemy, zaktualizuj i zaktualizuj pakiety Ubuntu 20.04, uruchamiając:

aktualizacja sudo apt i aktualizacja sudo apt

Instalowanie stosu LAMP

LAMP to skrót od L system operacyjny inux, A serwer WWW pache, m baza danych ySQL i P Język programowania HP. Jesteśmy już na Ubuntu 20.04, który zaznacza stos Linux w LAMP. Dlatego zamierzamy zainstalować pozostałe trzy pakiety, aby uzupełnić stos LAMP dla naszej aplikacji Laravel.

Nie ma meta-pakietu do zainstalowania stosu LAMP w repozytoriach Ubuntu 20.04. Ale możemy użyć schludnej małej funkcji trafny menedżer pakietów zwany zadaniami. Zadania są oznaczone nazwą dostępnego zadania z podchorążym (^) dołączone do niego.

sudo apt zainstaluj serwer lampy ^

To polecenie przeszuka pliki listy pakietów pod kątem wszystkich pól „Zadanie:” i zainstaluje wszystkie pakiety z „lamp-server” w polu zadania. Tak więc stos LAMP składający się z pakietów Apache, MySQL i PHP wraz ze wszystkimi ich zależnościami zostanie zainstalowany na twoim serwerze Ubuntu.

Skonfiguruj zaporę sieciową

Po zainstalowaniu stosu LAMP należy również skonfigurować nieskomplikowaną zaporę (UFW) i zmienić jej reguły, aby uzyskać dostęp do serwera Apache z Internetu.

UFW zapewnia proste profile aplikacji, które można wykorzystać do zmiany reguł i przełączania ruchu na portach sieciowych. Uruchom następujące polecenie, aby wyświetlić listę wszystkich aplikacji, które uzyskują dostęp do portów sieciowych:

lista aplikacji sudo ufw

Zobaczysz wynik taki jak ten:

Dostępne aplikacje: Apache Apache Full Apache Secure OpenSSH

Porty sieciowe otwierane przez te profile na serwerze Ubuntu 20.04 są wymienione poniżej:

  • Apache: ten profil otwiera tylko port 80 (zezwala na ruch HTTP)
  • Apache Full: ten profil otwiera oba 80 & 443 porty (zezwala na ruch HTTP i HTTPS)
  • Apache Secure: ten profil otwiera tylko port 443 (zezwala na ruch HTTPS)
  • OpenSSH: ten profil otwiera port 22 co pozwala na protokół SSH

Musisz włączyć profil „Apache Full”, który umożliwi ruch do serwera WWW Apache z Internetu. Dodatkowo będziesz musiał również włączyć profil „OpenSSH”, który zezwala na ruch na porcie 22 (SSH) na serwerze Ubuntu 20.04. Jeśli włączysz UFW bez zezwolenia na profil „OpenSSH”, nie będziesz mógł połączyć się z serwerem za pomocą SSH.

Aby zmienić regułę UFW i zezwolić na ruch na porcie 80 oraz 22, uruchomić:

sudo ufw zezwalaj na „Apache Full” sudo ufw zezwalaj na „OpenSSH”

Następnie włącz zaporę UFW za pomocą następującego polecenia:

włączanie sudo ufw

Możesz otrzymać komunikat „polecenie może zakłócić istniejące połączenia ssh. Kontynuować operacje (y|n)?”. naciskać Y kontynuować, ponieważ dodaliśmy już regułę zezwalającą na SSH w UFW.

Teraz możesz uzyskać dostęp do domyślnej strony internetowej Apache za pomocą adresu IP serwera Ubuntu z Internetu. Aby to zrobić, otwórz przeglądarkę i wpisz adres IP serwera Ubuntu 20.04 w pasku adresu URL i naciśnij Enter.

//Twój_ip_serwera_ubuntu

Ta strona potwierdza, że ​​serwer WWW Apache działa poprawnie, a reguły UFW są poprawnie skonfigurowane.

Konfigurowanie bazy danych MySQL dla Laravel

Laravel 7 sprawia, że ​​interakcja z bazami danych jest niezwykle prosta w różnych backendach baz danych, które obsługuje, takich jak MySQL w wersji 5.6+, PostgreSQL 9.4+, SQLite 3.8.8+ i SQL Server 2017+. Mamy już zainstalowany najnowszy pakiet MySQL z lampa-sever^ zadanie. W tej sekcji skonfigurujemy serwer MySQL, a następnie przyjrzymy się, jak skonfigurować nowego użytkownika i bazę danych MySQL dla aplikacji Laravel.

Skonfiguruj MySQL

Baza danych MySQL jest dostarczana z preinstalowanym skryptem bezpieczeństwa, którego można użyć do usunięcia niektórych niezabezpieczonych ustawień domyślnych. Zaleca się uruchomienie tego skryptu przed wdrożeniem aplikacji Laravel.

sudo mysql_secure_installation

Powyższe polecenie uruchomi skrypt bezpieczeństwa, który wyświetli serię pytań dotyczących konfiguracji serwera MySQL.

Najpierw zostaniesz zapytany, czy chcesz skonfigurować WERYFIKUJ HASŁO podłącz. Ta wtyczka sprawdza Twoje hasło i klasyfikuje je jako bezpieczne lub niepewne w oparciu o poziom polityki sprawdzania poprawności hasła, który wkrótce wybierzesz. Więc naciśnij Y jeśli chcesz włączyć tę wtyczkę.

Wyjście: Zabezpieczenie wdrożenia serwera MySQL. Łączenie się z MySQL przy użyciu pustego hasła. SKŁADNIK WERYFIKACJI HASŁA może być używany do testowania haseł i zwiększania bezpieczeństwa. Sprawdza siłę hasła i pozwala użytkownikom ustawić tylko te hasła, które są wystarczająco bezpieczne. Czy chcesz skonfigurować komponent WERYFIKUJ HASŁO? Naciśnij y|Y, aby wybrać Tak, dowolny inny klawisz, aby uzyskać Nie: Y

Następnie ustaw poziom zasad sprawdzania poprawności hasła, wpisując 0, 1 lub 2 w zależności od tego, jak silne chcesz utworzyć hasło do swoich baz danych.

Wyjście: Istnieją trzy poziomy polityki sprawdzania poprawności hasła: NISKA Długość >= 8 ŚREDNIA Długość >= 8, numeryczna, wielkość liter i znaki specjalne SILNA Długość >= 8, cyfra, wielkość liter, znaki specjalne i plik słownika Wprowadź 0 = NISKA, 1 = ŚREDNI i 2 = SILNY: 2

Następnie zostaniesz poproszony o wprowadzenie nowego hasła dla użytkownika root MySQL. Wprowadź odpowiednie hasło dla swojego roota MySQL. Wtyczka VALIDATE PASSWORD poda szacunkową siłę hasła zgodnie z poziomem weryfikacji hasła. naciskać Y aby kontynuować z podanym hasłem.

Wyjście: Proszę ustawić hasło dla roota tutaj. Nowe hasło: Wprowadź ponownie nowe hasło: Szacunkowa siła hasła: 100 Czy chcesz kontynuować z podanym hasłem? (Naciśnij y|Y, aby wybrać Tak, dowolny inny klawisz, aby uzyskać Nie) : Y

naciskać Y w pozostałych monitach usuną niektórych anonimowych użytkowników i testowe bazy danych, wyłączą zdalne logowanie jako root i przeładują nowe ustawienia dla serwera MySQL. Po zakończeniu przetestuj swoją bazę danych, uruchamiając:

sudo mysql

Powyższe polecenie otworzy konsolę MySQL, łącząc się z bazą danych MySQL jako źródło użytkownik. Zobaczysz wynik taki jak ten:

Wyjście: Witamy w monitorze MySQL. Polecenia kończą się ; lub \g. Twój identyfikator połączenia MySQL to 10 Wersja serwera: 8.0.20-0ubuntu0.20.04.1 (Ubuntu) Copyright (c) 2000, 2020, Oracle i/lub jej podmioty stowarzyszone. Wszelkie prawa zastrzeżone. Oracle jest zastrzeżonym znakiem towarowym firmy Oracle Corporation i/lub jej podmiotów stowarzyszonych. Inne nazwy mogą być znakami towarowymi ich odpowiednich właścicieli. Wpisz 'pomoc;' lub '\h', aby uzyskać pomoc. Wpisz „\c”, aby wyczyścić bieżącą instrukcję wejściową. mysql>

Być może zauważyłeś, że nie musisz wpisywać hasła, które ustawiłeś dla użytkownika root MySQL. Dzieje się tak, ponieważ domyślną metodą uwierzytelniania administratora administratora MySQL jest caching_sha2_authentication zamiast tego mysql_native_password metoda wykorzystująca hasło do logowania.

Tak więc domyślnie możesz zalogować się jako użytkownik root MySQL tylko za pomocą sudo włączonych użytkowników, które stanowią dodatkowe zabezpieczenie dla serwera MySQL. Ale biblioteka MySQL PHP nie obsługuje caching_sha2_authentication metoda. Dlatego musimy użyć mysql_native_password metoda, gdy tworzymy nowego użytkownika dla Laravela, ponieważ używa on haseł do łączenia się i interakcji z bazą danych.

Utwórz nowego użytkownika i bazę danych MySQL

Dobrą praktyką jest zawsze utworzenie nowego użytkownika i bazy danych specjalnie dla Twojej aplikacji, zamiast używania użytkownika root MySQL i testowych baz danych. Zamierzamy więc skonfigurować nowego użytkownika MySQL o nazwie użytkownik_laravel oraz bazę danych o nazwie larawel. Jeśli postępowałeś zgodnie z samouczkiem do tego momentu, powinieneś mieć otwartą konsolę MySQL. Aby utworzyć użytkownika o nazwie użytkownik_laravel uruchom następujące zapytanie w konsoli MySQL:

Notatka: Zastąp zaliczenie testu w poniższym zapytaniu MySQL z silnym hasłem.

UTWÓRZ UŻYTKOWNIKA 'laravel_user'@'%' ZIDENTYFIKOWANEGO ZA POMOCĄ mysql_native_password PRZEZ 'testpass';

Następnie utwórz bazę danych o nazwie larawel dla naszej aplikacji Laravel, uruchamiając to zapytanie:

TWORZENIE BAZY DANYCH laravel;

Tylko użytkownik root MySQL ma uprawnienia do nowo utworzonej bazy danych laravel. Przyznaj wszystkie uprawnienia w ciągu larawel baza danych do użytkownik_laravel biegiem:

PRZYZNAJ WSZYSTKO NA laravel.* TO 'laravel_user'@'%';

Tak więc mamy teraz nowego użytkownika MySQL i bazę danych, wyjdź z konsoli MySQL, uruchamiając:

WYJŚCIE;

Przetestuj swojego nowego użytkownika MySQL, logując się za jego pomocą do konsoli MySQL, aby to zrobić, uruchom to polecenie w terminalu:

mysql -u użytkownik_laravel -p

Zwróć uwagę na -P w poleceniu, zostaniesz poproszony o podanie hasła użytego podczas tworzenia użytkownik_laravel (zaliczenie testu w zapytaniu). Po zalogowaniu się do konsoli MySQL jako użytkownik_laravel, potwierdź, że użytkownik ma dostęp do larawel bazę danych, uruchamiając:

POKAŻ BAZY DANYCH;
Wyjście: +---------------------+ | Baza danych | +---------------------+ | larawel | | schemat_informacyjny | +--------------------+ 2 rzędy w zestawie (0,01 sek)

Powyższe dane wyjściowe potwierdzają, że użytkownik MySQL użytkownik_laravel ma uprawnienia do bazy danych larawel. Wyjdź z konsoli MySQL za pomocą WYJŚCIE; zapytanie, abyśmy mogli przystąpić do tworzenia aplikacji DemoApp Laravel.

Instalowanie Laravela

Framework Laravel wykorzystuje Composer do pobierania i zarządzania jego zależnościami. Dlatego musimy zainstalować Composer na naszym komputerze z Ubuntu 20.04, zanim będziemy mogli utworzyć aplikację Laravel.

Zainstaluj kompozytora

Composer to narzędzie do zarządzania zależnościami dla PHP, które znacznie ułatwia instalowanie i aktualizowanie frameworków i bibliotek PHP. W tym samouczku przyjrzymy się, jak szybko zainstalować Composer, abyśmy mogli go użyć do pobrania i zarządzania frameworkiem Laravel.

Musisz zainstalować dodatkowe pakiety wymagane przez Composer do działania, takie jak php-cli uruchamiać skrypty PHP w terminalu i rozsunąć suwak aby pomóc Composerowi wyodrębnić pakiety. Zainstaluj je oba, uruchamiając:

sudo apt zainstaluj php-cli rozpakuj

Następnie, aby zainstalować Composer globalnie, pobierz skrypt instalacyjny Composera za pomocą kędzior i zainstaluj go za pomocą następującego polecenia:

curl -sS //getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=kompozytor

Na koniec sprawdź, czy kompozytor zainstalował się poprawnie, uruchamiając:

kompozytor
 ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / / /_ / / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Wersja kompozytora 1.10.8 2020-06- 24 21:23:30 Użycie: polecenie [opcje] [argumenty]

Te dane wyjściowe potwierdzają, że Composer działa poprawnie na serwerze Ubuntu 20.04, możesz zacząć go używać do instalowania i zarządzania frameworkami i bibliotekami PHP.

Utwórz aplikację Laravel

Mamy prawie wszystko, co jest potrzebne do stworzenia aplikacji Laravel na naszym serwerze Ubuntu 20.04, z wyjątkiem kilku rozszerzeń PHP. Zainstaluj te brakujące rozszerzenia za pomocą następującego polecenia:

sudo apt zainstaluj php-mbstring php-xml php-bcmath php-zip php-json

Teraz możemy zainstalować Laravela i stworzyć nową aplikację Laravel za pomocą Composera. Najpierw upewnij się, że jesteś w katalogu domowym użytkownika:

cd ~

Następnie utwórz nowy projekt Laravel, korzystając z aplikacji Composer tworzenie-projektu Komenda:

kompozytor utwórz-projekt --prefer-dist laravel/laravel LaravelApp

Powyższe polecenie utworzy nowy projekt o nazwie LaravelApp, a także zainstaluje i skonfiguruje Laravel Framework. Zobaczysz wynik podobny do tego:

Wyjście: Tworzenie projektu "laravel/laravel" w "./LaravelApp" Instalowanie laravel/laravel (v7.12.0) Instalowanie laravel/laravel (v7.12.0): Pobieranie (100%) Utworzony projekt w /home/ath/LaravelApp @php - r "plik_istnieje('.env') || copy('.env.przykład', '.env');" Ładowanie repozytoriów kompozytora z informacjami o pakietach Aktualizowanie zależności (w tym require-dev) Operacje na pakietach: 97 instalacji, 0 aktualizacji, 0 usunięć Instalowanie voku/portable-ascii (1.5.2): Pobieranie (100%) Instalowanie symfony/polyfill-ctype (v1 .17.1: Pobieranie (100%) Instalowanie phppoption/phpoption (1.7.4): Pobieranie (100%) Instalowanie vlucas/phpdotenv (v4.1.7): Pobieranie (100%) Instalowanie symfony/css-selector (v5.1.2) : Pobieranie (100%) ....

Po zakończeniu instalacji przejdź do głównego katalogu aplikacji, a następnie uruchom Laravela rzemieślnik polecenie, aby sprawdzić, czy wszystkie komponenty są poprawnie zainstalowane:

cd LaravelApp/ php rzemieślnik
Wyjście: Laravel Framework 7.18.0 Sposób użycia: polecenie [opcje] [argumenty] Opcje: -h, --help Wyświetl ten komunikat pomocy -q, --quiet Nie wyświetlaj żadnego komunikatu -V, --version Wyświetl tę wersję aplikacji --ansi Wymuś wyjście ANSI --no-ansi Wyłącz wyjście ANSI -n, --no-interaction Nie zadawaj żadnych pytań interaktywnych --env[=ENV] Środowisko, w którym polecenie powinno zostać uruchomione z -v|vv|vvv, --verbose Zwiększ szczegółowość komunikatów: 1 dla normalnego wyjścia, 2 dla bardziej szczegółowego wyjścia i 3 dla debugowania ....

Te dane wyjściowe potwierdzają, że instalacja się powiodła, wszystkie pliki są na swoim miejscu, a narzędzia wiersza polecenia Laravel działają poprawnie. Jednak nadal musimy skonfigurować aplikację, aby skonfigurować bazę danych i kilka innych ustawień.

Skonfiguruj aplikację Laravel

Pliki konfiguracyjne Laravela znajdują się w katalogu o nazwie konfiguracja wewnątrz katalogu głównego aplikacji. Dodatkowo, gdy zainstalowaliśmy Laravela przez Composer, utworzył plik środowiska o nazwie „.env” w katalogu głównym aplikacji. Plik środowiska zawiera konfiguracje specyficzne dla środowiska i ma pierwszeństwo przed ustawieniami w zwykłych plikach konfiguracyjnych znajdujących się w katalogu config.

Uwaga: Plik konfiguracyjny środowiska zawiera poufne informacje o twoim serwerze, takie jak hasła do bazy danych, klucze aplikacji Laravel itp. Dlatego nigdy nie powinien być udostępniany publicznie.

Będziemy teraz edytować .env plik do zmiany konfiguracji i dodania do niego poświadczeń bazy danych. Otwórz plik za pomocą edytora nano, uruchamiając:

nano.env

W tym jest wiele zmiennych konfiguracyjnych .env plik. Nie musimy zmieniać każdego z nich, ponieważ Composer skonfigurował większość ustawień automatycznie. Oto lista niektórych podstawowych zmiennych konfiguracyjnych, o których musisz wiedzieć:

  • NAZWA APLIKACJI: Nazwa aplikacji używana do powiadomień i wiadomości, więc ustawimy ją na „LaravelApp”.
  • APP_ENV: Ta zmienna jest używana do wskazania bieżącego środowiska aplikacji. Może być ustawiony na środowiska lokalne, deweloperskie, testowe lub produkcyjne. Na razie ustawimy go w środowisku deweloperskim.
  • APP_KEY: Unikalny klucz aplikacji używany do tworzenia soli i skrótów dla aplikacji internetowej. Jest on generowany automatycznie podczas instalacji Laravela przez Composer, więc nie ma potrzeby tego zmieniać.
  • APP_DEBUG: Może być ustawiony na true lub false, w zależności od tego, czy chcesz wyświetlać błędy po stronie klienta. Ustaw go na false po przejściu do środowiska produkcyjnego.
  • APP_URL: Podstawowy adres URL lub adres IP aplikacji, zmień go na nazwę domeny, jeśli masz ją dla swojej aplikacji Laravel, lub pozostaw na razie nietknięty.
  • BAZA_DANYCH: Nazwa bazy danych, której chcesz używać z aplikacją Laravel. Będziemy korzystać z bazy danych MySQL „laravel”, którą stworzyliśmy podczas konfiguracji MySQL.
  • DB_USERNAME: Nazwa użytkownika do połączenia z bazą danych. Będziemy używać utworzonego przez nas użytkownika MySQL „laravel_user”.
  • DB_PASSWORD: Hasło do połączenia z bazą danych.
 APP_NAME= Aplikacja Laravel APP_ENV= rozwój APP_KEY= base64:Unikalny_klucz aplikacji APP_DEBUG=true APP_URL= //domena_lub_IP LOG_CHANNEL=stos DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME= użytkownik_laravel DB_PASSWORD= zaliczenie testu

Wprowadź zmiany w .env plik odpowiednio, a po zakończeniu edycji zapisz i wyjdź z pliku, używając CTRL+X następnie naciśnij Y i naciśnij Enter, aby potwierdzić. Teraz pozostaje już tylko skonfigurować serwer Apache i stworzyć wirtualny host dla naszej aplikacji Laravel.

Konfigurowanie serwera WWW Apache

Zainstalowaliśmy Laravel w lokalnym folderze katalogu domowego użytkownika. Chociaż działa to doskonale w przypadku programowania lokalnego, zaleca się, aby katalog aplikacji internetowych znajdował się w /var/www. Powód, dla którego nie zainstalowaliśmy Laravela w /var/www bezpośrednio jest tak, ponieważ jest własnością roota i Composer nie powinien być używany z sudo.

Więc użyj mv polecenie, aby przenieść folder aplikacji Laravel i jego zawartość do /var/www:

sudo mv ~/Laravel//var/www

Katalog LaravelApp jest własnością użytkownika, więc nadal możesz edytować i wprowadzać zmiany w plikach bez użycia sudo Komenda. Ale serwer WWW Apache potrzebuje dostępu do pamięci podręcznej i katalogów przechowywania aplikacji, ponieważ Laravel przechowuje w nim pliki generowane przez aplikację. Zmień właściciela tych folderów na www-dane użytkownik używający chown Komenda:

sudo chown -R www-data.www-data /var/www/LaravelApp/storage sudo chown -R www-data.www-data /var/www/LaravelApp/bootstrap/cache

Po zmianie właściciela tych katalogów włącz Apache mod_rewrite ponieważ Laravel wymaga, aby poprawnie przekształcać adresy URL, które mają być interpretowane przez jego funkcję routingu poprzez .htaccess plik.

przepisać sudo a2enmod

Następnie musimy skonfigurować wirtualnego hosta dla aplikacji Laravel. Konfiguracje wirtualnego hosta znajdują się pod adresem /etc/apache2/sites-available. Zamierzamy edytować domyślny plik wirtualnego hosta, aby wdrożyć aplikację Laravel. Otwórz domyślny plik konfiguracyjny hosta wirtualnego za pomocą edytora nano:

sudo nano /etc/apache2/sites-available/000-default.conf

Zmień katalog główny z /var/www/html do /var/www/LaravelApp/public i dodaj następujący fragment kodu poniżej wiersza DocumentRoot:

 Zezwól na nadpisanie wszystkich 

Twój 000-default.conf powinien teraz wyglądać mniej więcej tak z kilkoma komentarzami.

 ServerAdmin webmaster@localhost DocumentRoot /var/www/LaravelApp/public AllowOverride All ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log łącznie 

Uruchom ponownie serwer WWW Apache, uruchamiając następujące polecenie:

sudo systemctl uruchom ponownie apache2

Teraz przejdź do przeglądarki i wpisz adres IP serwera Ubuntu 20.04. Zobaczysz stronę startową Laravela zamiast domyślnej strony powitalnej Apache.

Zakładając, że do tej pory postępowałeś zgodnie z tym przewodnikiem, powinieneś mieć działającą aplikację Laravel z bazą danych MySQL o nazwie larawel dla tego. Od tego momentu możesz zacząć samodzielnie tworzyć swoją aplikację Laravel. Aby dowiedzieć się więcej o frameworku Laravel i jego użyciu odwiedź stronę Laravel z dokumentacją.