Laravelin asentaminen Ubuntuun 20.04

Kaikki mitä sinun tulee tietää Laravel-verkkosovelluksen käyttöönotosta Ubuntu 20.04 LTS -koneessa

Laravel on erittäin suosittu avoimen lähdekoodin PHP-kehys, jonka ilmeikäs ja tyylikäs syntaksi, jota käytetään nykyaikaisten ja kauniiden verkkosovellusten suunnitteluun. Laravel pyrkii poistamaan verkkokehityksen tuskan ja tekemään siitä nautinnollisen ja luovan kokemuksen tehden verkkokehittäjistä verkkokäsityöläisiä.

Tässä oppaassa opit asentamaan Laravelin LAMP-pinon kanssa Ubuntu 20.04 -palvelimelle, jotta verkkosovelluksesi saadaan käyntiin.

Edellytykset

Tämän oppaan noudattamiseksi tarvitset Ubuntu 20.04 LTS -palvelimen ja olet kirjautunut sisään sudo käyttäjä. Ennen kuin aloitamme, päivitä ja päivitä Ubuntu 20.04 -paketit suorittamalla:

sudo apt päivitys && sudo apt päivitys

LAMP Stackin asentaminen

LAMP on lyhenne sanoista L inux käyttöjärjestelmä, A pache-verkkopalvelin, M ySQL-tietokanta ja P HP:n ohjelmointikieli. Meillä on jo Ubuntu 20.04, joka rastittaa Linuxin LAMP-pinossa. Joten asennamme loput kolmesta paketista täydentääksemme Laravel-sovelluksemme LAMP-pinon.

Ei ole saatavilla meta-pakettia LAMP-pinon asentamiseksi Ubuntu 20.04 -varastoihin. Mutta voimme käyttää hienoa pientä ominaisuutta apt paketinhallinta nimeltä tehtäviä. Tehtävät on merkitty käytettävissä olevan tehtävän nimellä kadetilla (^) liitteenä.

sudo apt install lamp-server^

Tämä komento etsii pakettiluettelotiedostoista kaikki "Task:"-kentät ja asentaa kaikki paketit, joiden tehtäväkentässä on "lamp-server". Joten Apache-, MySQL- ja PHP-paketteista koostuva LAMP-pino kaikkine riippuvuuksineen asennetaan Ubuntu-palvelimellesi.

Määritä palomuuri

Kun olet asentanut LAMP-pinon, sinun on myös määritettävä yksinkertainen palomuuri (UFW) ja muutettava sen sääntöjä, jotta voit käyttää Apache-palvelinta Internetistä.

UFW tarjoaa yksinkertaisia ​​sovellusprofiileja, joiden avulla voidaan muuttaa sääntöjä ja vaihtaa verkkoporttien liikennettä. Suorita seuraava komento listataksesi kaikki sovellukset, jotka käyttävät verkkoportteja:

sudo ufw -sovellusluettelo

Näet seuraavanlaisen lähdön:

Käytettävissä olevat sovellukset: Apache Apache Full Apache Secure OpenSSH

Verkkoportit, jotka ovat avoinna Ubuntu 20.04 -palvelimellasi, on lueteltu alla:

  • Apache: Tämä profiili avaa vain portin 80 (sallii HTTP-liikenteen)
  • Apache Full: Tämä profiili avaa molemmat 80 & 443 portit (sallii HTTP- ja HTTPS-liikenteen)
  • Apache Secure: Tämä profiili avaa vain portin 443 (sallii HTTPS-liikenteen)
  • OpenSSH: Tämä profiili avaa portin 22 joka sallii SSH-protokollan

Sinun on otettava käyttöön "Apache Full" -profiili, joka sallii liikenteen Apache-verkkopalvelimelle Internetistä. Lisäksi sinun on myös otettava käyttöön "OpenSSH" -profiili, joka sallii liikenteen portissa 22 (SSH) Ubuntu 20.04 -palvelimellasi. Jos otat UFW:n käyttöön sallimatta OpenSSH-profiilia, et voi muodostaa yhteyttä palvelimeesi SSH:n avulla.

UFW-säännön muuttaminen ja liikenteen salliminen portissa 80 ja 22, juosta:

sudo ufw salli 'Apache Full' sudo ufw salli 'OpenSSH'

Ota sitten UFW-palomuuri käyttöön seuraavalla komennolla:

sudo ufw käyttöön

Saatat saada kehotteen, jossa lukee "komento voi häiritä olemassa olevia ssh-yhteyksiä. Jatka operaatioita (y|n)?”. Lehdistö Y jatkaaksesi, koska olemme jo lisänneet säännön SSH:n sallimiseksi UFW:ssä.

Nyt voit käyttää Apachen oletusverkkosivua käyttämällä Ubuntu-palvelimesi IP-osoitetta Internetistä. Avaa selaimesi ja kirjoita Ubuntu 20.04 -palvelimesi IP-osoite URL-palkkiin ja paina Enter.

//Sinun_ubuntu_palvelimen_ip-osoite

Tämä sivu vahvistaa, että Apache-verkkopalvelin toimii oikein ja UFW-säännöt on määritetty oikein.

MySQL-tietokannan määrittäminen Laravelille

Laravel 7 tekee vuorovaikutuksesta tietokantojen kanssa erittäin yksinkertaista sen tukemissa erilaisissa tietokantaohjelmissa, kuten MySQL versiossa 5.6+, PostgreSQL 9.4+, SQLite 3.8.8+:ssa ja SQL Server 2017+:ssa. Meillä on jo uusin MySQL-paketti asennettuna lamppujakaja^ tehtävä. Joten tässä osiossa määritämme MySQL-palvelimen ja katsomme sitten, kuinka luodaan uusi MySQL-käyttäjä ja tietokanta Laravel-sovellukselle.

Määritä MySQL

MySQL-tietokanta sisältää esiasennettuna suojauskomentosarjan, jonka avulla voidaan poistaa joitain epävarmoja oletusasetuksia. On suositeltavaa suorittaa tämä komentosarja ennen Laravel-sovelluksen käyttöönottoa.

sudo mysql_secure_installation

Yllä oleva komento suorittaa suojauskomentosarjan, joka kysyy joukon kysymyksiä MySQL-palvelimen määrittämiseksi.

Ensin sinulta kysytään, haluatko määrittää VAHVISTA SALASANA kytkeä. Tämä laajennus tarkistaa salasanasi ja luokittelee ne turvallisiksi tai epävarmoiksi pian valitsemasi salasanan vahvistuskäytäntötason perusteella. Paina siis Y jos haluat ottaa tämän laajennuksen käyttöön.

Lähtö: MySQL-palvelimen käyttöönoton turvaaminen. Yhdistäminen MySQL:ään käyttämällä tyhjää salasanaa. VAHVISTA SALASANA COMPONENTia voidaan käyttää salasanojen testaamiseen ja turvallisuuden parantamiseen. Se tarkistaa salasanan vahvuuden ja sallii käyttäjien asettaa vain ne salasanat, jotka ovat riittävän turvallisia. Haluatko määrittää VALIDATE PASSWORD -komponentin? Paina y|Y jos haluat Kyllä, mitä tahansa muuta näppäintä ei: Y

Aseta sitten salasanan vahvistuskäytäntötaso joko syöttämällä 0, 1 tai 2 riippuen siitä, kuinka vahvan salasanan haluat luoda tietokantoillesi.

Lähtö: Salasanan vahvistuskäytännöissä on kolme tasoa: LOW Length >= 8 MEDIUM Length >= 8, numeeriset, isot ja pienet kirjaimet ja erikoismerkit VAHVA pituus >= 8, numerot, isot ja pienet kirjaimet, erikoismerkit ja sanakirjatiedosto Kirjoita 0 = LOW, 1 = KESKIINEN ja 2 = VAHVA: 2

Seuraavaksi sinua pyydetään syöttämään uusi salasana MySQL-pääkäyttäjälle. Anna sopiva salasana MySQL-juurillesi. VAHVISTA SALASANA -laajennus antaa sinulle arvioidun salasanasi vahvuuden salasanasi vahvistustasosi mukaan. Lehdistö Y jatkaaksesi antamallasi salasanalla.

Lähtö: Aseta rootin salasana tähän. Uusi salasana: Syötä uusi salasana uudelleen: Salasanan arvioitu vahvuus: 100 Haluatko jatkaa antamalla salasanalla? (Paina y|Y, jos haluat Kyllä, mitä tahansa muuta näppäintä ei vastaa) : Y

Lehdistö Y Muiden kehotteiden osalta he poistavat jotkin nimettömät käyttäjät ja testitietokannat, poistavat etäpääkirjautumisen käytöstä ja lataavat MySQL-palvelimen uudet asetukset. Kun olet valmis, testaa tietokantasi suorittamalla:

sudo mysql

Yllä oleva komento avaa MySQL-konsolin ja muodostaa yhteyden MySQL-tietokantaan juuri käyttäjä. Näet seuraavanlaisen lähdön:

Lähtö: Tervetuloa MySQL-näyttöön. Komennot päättyvät ; tai \g. MySQL-yhteystunnuksesi on 10 Palvelinversio: 8.0.20-0ubuntu0.20.04.1 (Ubuntu) Tekijänoikeus (c) 2000, 2020, Oracle ja/tai sen tytäryhtiöt. Kaikki oikeudet pidätetään. Oracle on Oracle Corporationin ja/tai sen tytäryhtiöiden rekisteröity tavaramerkki. Muut nimet voivat olla omistajiensa tavaramerkkejä. Kirjoita "help;" tai '\h' saadaksesi apua. Tyhjennä nykyinen syöttökäsky kirjoittamalla \c. mysql>

Olet ehkä huomannut, että sinun ei tarvinnut kirjoittaa MySQL-pääkäyttäjälle määrittämääsi salasanaa. Tämä johtuu siitä, että MySQL-pääkäyttäjän oletustodennusmenetelmä on caching_sha2_authentication sijasta mysql_native_password menetelmä, joka käyttää salasanaa kirjautumiseen.

Joten oletusarvoisesti voit kirjautua sisään vain MySQL-juurikäyttäjänä sudo käytössä olevat käyttäjät, jotka toimivat lisäsuojana MySQL-palvelimelle. Mutta MySQL PHP -kirjasto ei tue caching_sha2_authentication menetelmä. Siksi meidän on käytettävä mysql_native_password menetelmää, kun luomme Laravelille uuden käyttäjän, koska se käyttää salasanoja muodostaakseen yhteyden tietokantaan ja ollakseen vuorovaikutuksessa sen kanssa.

Luo uusi MySQL-käyttäjä ja -tietokanta

On aina hyvä käytäntö luoda uusi käyttäjä ja tietokanta erityisesti sovelluksellesi sen sijaan, että käytät MySQL-juurikäyttäjä- ja testitietokantoja. Joten aiomme perustaa uuden MySQL-käyttäjän nimeltä laravel_user ja tietokanta nimeltä laravel. Jos olet noudattanut opetusohjelmaa tähän pisteeseen asti, MySQL-konsolin pitäisi olla auki. Luodaksesi käyttäjän nimeltä laravel_user suorita seuraava kysely MySQL-konsolissa:

merkintä: Korvata testipassi alla olevassa MySQL-kyselyssä vahvalla salasanalla.

LUO KÄYTTÄJÄ 'laravel_user'@'%' TUNNISTETTU mysql_native_password 'testpass':lla;

Luo seuraavaksi tietokanta nimeltä laravel Laravel-sovelluksellemme suorittamalla tämä kysely:

LUO TIETOKANTA laravel;

Vain MySQL-juurikäyttäjällä on oikeudet juuri luotuun tietokanta laraveliin. Myönnä kaikki käyttöoikeudet laravel tietokantaan laravel_user juoksemalla:

MYÖNTÄ KAIKKI laravelille.* 'laravel_user'@'%';

Joten meillä on nyt uusi MySQL-käyttäjä ja tietokanta, poistu MySQL-konsolista suorittamalla:

POISTU;

Testaa uutta MySQL-käyttäjääsi kirjautumalla sisään MySQL-konsoliin sen kanssa suorittamalla tämä komento terminaalissa:

mysql -u laravel_user -p

Huomaa -s lippu komennossa, se pyytää sinua antamaan salasanan, jota käytit luodessasi komennon laravel_user (testipassi kyselyssä). Kun olet kirjautunut sisään MySQL-konsoliin nimellä laravel_user, varmista, että käyttäjällä on pääsy laravel tietokanta suorittamalla:

NÄYTÄ TIETOKANNAT;
Lähtö: +---------------------+ | Tietokanta | +---------------------+ | laravel | | information_schema | +--------------------+ 2 riviä sarjassa (0,01 s)

Yllä oleva tulos vahvistaa, että MySQL-käyttäjä laravel_user on oikeudet tietokantaan laravel. Poistu MySQL-konsolista käyttämällä POISTU; kyselyn, jotta voimme jatkaa DemoApp Laravel -sovelluksen luomista.

Laravelin asennus

Laravel-kehys käyttää Composeria sen riippuvuuksien lataamiseen ja hallitsemiseen. Joten meidän on asennettava Composer Ubuntu 20.04 -koneellemme ennen kuin voimme luoda Laravel-sovelluksen.

Asenna Composer

Composer on PHP:n riippuvuuden hallintatyökalu, joka tekee PHP-kehysten ja kirjastojen asentamisesta ja päivittämisestä paljon helpompaa. Aiomme tarkastella kuinka asentaa Composer nopeasti tässä opetusohjelmassa, jotta voimme käyttää sitä Laravel-kehyksen lataamiseen ja hallintaan.

Sinun on asennettava joitain lisäpaketteja, jotka Composer tarvitsee toimiakseen, kuten php-cli suorittaaksesi PHP-skriptejä päätteessä ja pura vetoketju auttaa Composeria purkamaan paketit. Asenna ne molemmat suorittamalla:

sudo apt install php-cli pura

Asenna sitten Composer maailmanlaajuisesti lataamalla Composerin asennuskomentosarja kiemura ja asenna se seuraavalla komennolla:

curl -sS //getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=säveltäjä

Varmista lopuksi, että säveltäjä on asennettu oikein suorittamalla:

säveltäjä
 ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ / /_/ / / / / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Säveltäjäversio 1.10.8 2020-06- 24 21:23:30 Käyttö: komento [valinnat] [argumentit]

Tämä tulos vahvistaa, että Composer toimii oikein Ubuntu 20.04 -palvelimellasi, voit alkaa käyttää sitä PHP-kehysten ja kirjastojen asentamiseen ja hallintaan.

Luo Laravel-sovellus

Meillä on melkein kaikki, mitä tarvitaan Laravel-sovelluksen luomiseen Ubuntu 20.04 -palvelimellamme muutamaa PHP-laajennusta lukuun ottamatta. Asenna nämä puuttuvat laajennukset käyttämällä seuraavaa komentoa:

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

Nyt voimme asentaa Laravelin ja luoda uuden Laravel-sovelluksen Composerin avulla. Varmista ensin, että olet käyttäjän kotihakemistossa:

cd ~

Luo sitten uusi Laravel-projekti Säveltäjän avulla luo-projekti komento:

säveltäjä luo-projekti --prefer-dist laravel/laravel LaravelApp

Yllä oleva komento luo uuden projektin nimeltä LaravelApp ja se myös asentaa ja määrittää Laravel Frameworkin puolestasi. Näet tämän kaltaisen tulosteen:

Lähtö: "Laravel/laravel" -projektin luominen osoitteessa "./LaravelApp" Laravel/laravel (v7.12.0) asentaminen laravel/laravel (v7.12.0): Ladataan (100%) Luotu projekti /home/ath/LaravelApp @php - r "file_exists('.env') || copy('.env.example', '.env');" Ladataan säveltäjävarastoja pakettitietojen kanssa. Riippuvuuksien päivittäminen (mukaan lukien vaativat devit) Pakettitoiminnot: 97 asennusta, 0 päivitystä, 0 poistoa. Voku/portable-ascii (1.5.2) asennus: Ladataan (100%) Symfony/polyfill-ctype (v1) asennus .17.1): Ladataan (100 %) phpooption/phpooption (1.7.4) asennus: Ladataan (100 %) vlucas/phpdotenv:n asennus (v4.1.7): Ladataan (100 %) Symfony/css-selectorin asennus (v5.1.2) : Ladataan (100%) ....

Kun asennus on valmis, siirry sovelluksen juurihakemistoon ja suorita sitten Laravel käsityöläinen komento varmistaaksesi, että kaikki komponentit on asennettu oikein:

cd LaravelApp/ php artisan
Lähtö: Laravel Framework 7.18.0 Käyttö: komento [valinnat] [argumentit] Optiot: -h, --help Näytä tämä ohjeviesti -q, --quiet Älä tulosta viestiä -V, --version Näytä tämä sovellusversio --ansi Pakota ANSI-ulostulo --no-ansi Poista ANSI-lähtö käytöstä -n, --no-interaction Älä kysy interaktiivista kysymystä --env[=ENV] Ympäristö, jonka komennon tulee suorittaa alla -v|vv|vvv, --verbose Kasvata viestien monisanaisuus: 1 normaalille ulostulolle, 2 monisanaisemmalle ulostulolle ja 3 virheenkorjaukselle ....

Tämä tulos vahvistaa, että asennus onnistui ja kaikki tiedostot ovat paikoillaan ja Laravelin komentorivityökalut toimivat oikein. Meidän on kuitenkin vielä määritettävä sovellus määrittämään tietokanta ja muutama muu asetus.

Määritä Laravel-sovellus

Laravel-määritystiedostot sijaitsevat hakemistossa nimeltä config sovelluksen juurihakemistossa. Lisäksi kun asensimme Laravelin Composerin kautta, se loi ympäristötiedoston nimeltä ".env" sovelluksen juurihakemistoon. Ympäristötiedosto sisältää ympäristökohtaiset asetukset ja se on ensisijainen asetushakemiston sisällä olevien tavallisten asetustiedostojen asetuksiin nähden.

Huomautus: Ympäristön määritystiedosto sisältää arkaluontoisia tietoja palvelimestasi, kuten tietokannan salasanoja, Laravel-sovellusavaimia jne. Siksi sitä ei tule koskaan jakaa julkisesti.

Muokkaamme nyt .env tiedosto muuttaaksesi kokoonpanoa ja lisätäksesi siihen tietokannan tunnistetiedot. Avaa tiedosto nanoeditorilla suorittamalla:

nano .env

Tässä on monia konfigurointimuuttujia .env tiedosto. Meidän ei tarvitse muuttaa jokaista niistä, koska Composer on määrittänyt useimmat asetukset automaattisesti. Joten tässä on luettelo joistakin ensisijaisista kokoonpanomuuttujista, jotka sinun on tiedettävä:

  • APP_NAME: Ilmoituksiin ja viesteihin käytetty sovelluksen nimi, joten asetamme sen arvoksi "LaravelApp".
  • APP_ENV: Tätä muuttujaa käytetään osoittamaan nykyinen sovellusympäristö. Se voidaan asettaa paikallisiin, kehitys-, testaus- tai tuotantoympäristöihin. Asetamme sen toistaiseksi kehitysympäristöön.
  • APP_KEY: Ainutlaatuinen sovellusavain, jota käytetään luomaan suolat ja tiivisteet verkkosovellukselle. Se luodaan automaattisesti, kun asennat Laravelin Composerin kautta, joten sitä ei tarvitse muuttaa.
  • APP_DEBUG: Se voidaan asettaa arvoon tosi tai epätosi sen mukaan, haluatko näyttää virheitä asiakaspuolella. Aseta se arvoon false, kun siirryt tuotantoympäristöön.
  • APP_URL: Sovelluksen perus-URL-osoite tai IP-osoite, vaihda se verkkotunnukseksi, jos sinulla on sellainen Laravel-sovelluksellesi, tai pidä se toistaiseksi koskemattomana.
  • DB_DATABASE: Sen tietokannan nimi, jota haluat käyttää Laravel-sovelluksen kanssa. Aiomme käyttää MySQL-tietokantaa "laravel", jonka loimme MySQL:n määrittämisen aikana.
  • DB_USERNAME: Käyttäjätunnus tietokantaan yhteyden muodostamiseksi. Aiomme käyttää luomaamme MySQL-käyttäjää "laravel_user".
  • DB_PASSWORD: Salasana tietokantaan yhteyden muodostamiseksi.
 APP_NAME= LaravelApp APP_ENV= kehitystä APP_KEY= base64:Ainutlaatuinen sovellusavain APP_DEBUG=tosi APP_URL= //domain_tai_IP LOG_CHANNEL=pino DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME= laravel_user DB_PASSWORD= testipassi

Tee muutoksia kohtaan .env tiedosto vastaavasti ja kun olet lopettanut muokkauksen, tallenna ja poistu tiedostosta käyttämällä CTRL+X paina sitten Y ja vahvista painamalla Enter. Nyt ei ole enää jäljellä kuin konfiguroida Apache-palvelin ja luoda virtuaalinen isäntä Laravel-sovelluksellemme.

Asetetaan Apache Web Server

Olemme asentaneet Laravelin käyttäjän kotihakemiston paikalliseen kansioon. Vaikka tämä toimii erinomaisesti paikallisessa kehittämisessä, on suositeltavaa käyttää verkkosovellushakemistoa /var/www. Syy, miksi emme asentaneet Laravelia /var/www suoraan johtuu siitä, että sen omistaa root ja Composeria ei tulisi käyttää sen kanssa sudo.

Käytä siis mv -komento siirtää Laravel-sovelluskansio ja sen sisältö /var/www:

sudo mv ~/Laravel/ /var/www

LaravelApp-hakemiston omistaa käyttäjä, joten voit silti muokata tiedostoja ja tehdä niihin muutoksia käyttämättä sudo komento. Mutta Apache-verkkopalvelin tarvitsee pääsyn sovelluksen välimuistiin ja tallennushakemistoihin, koska Laravel tallentaa sovelluksen luomat tiedostot siihen. Vaihda näiden kansioiden omistajaksi www-data käyttäjä käyttää chown komento:

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

Kun olet vaihtanut näiden hakemistojen omistajaa, ota Apache käyttöön mod_rewrite koska Laravel vaatii sen muuntamaan URL-osoitteet oikein siten, että sen reititystoiminto tulkitsee ne .htaccess tiedosto.

sudo a2enmod uudelleenkirjoitus

Seuraavaksi meidän on määritettävä virtuaalinen isäntä Laravel-sovellukselle. Virtuaaliisäntäkokoonpanot sijaitsevat osoitteessa /etc/apache2/sites-available. Aiomme muokata oletusarvoista virtuaalista isäntätiedostoa ottaaksemme Laravel-sovelluksen käyttöön. Avaa oletusarvoinen virtuaalisen isännän määritystiedosto nanoeditorilla:

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

Muuta asiakirjan juuria /var/www/html kohtaan /var/www/LaravelApp/public ja lisää seuraava katkelma DocumentRoot-rivin alle:

 SalliOverride All 

Sinun 000-default.conf sen pitäisi näyttää nyt vähän tältä muutamalla kommentilla.

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

Käynnistä Apache-verkkopalvelin uudelleen suorittamalla seuraava komento:

sudo systemctl käynnistä apache2 uudelleen

Siirry nyt selaimeesi ja kirjoita Ubuntu 20.04 -palvelimesi IP-osoite. Näet Laravel-aloitussivun oletusarvoisen Apachen tervetulosivun sijaan.

Olettaen, että olet noudattanut tätä opasta tähän mennessä, sinulla pitäisi olla toimiva Laravel-sovellus, jossa on MySQL-tietokanta nimeltä laravel sitä varten. Tästä eteenpäin voit aloittaa Laravel-sovelluksesi kehittämisen itse. Lisätietoja Laravel-kehyksestä ja sen käytöstä on Laravel-dokumenttien sivulla.