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ą.