Wéi Installéiere Laravel PHP Framework mat Nginx op Ubuntu 20.04


Laravel ass de beléifsten, gratis, an Open-Source PHP Kader op der Welt, bekannt fir seng expressiv an elegant Syntax. Laravel ass zougänglech, mächteg, a bitt e puer vun de beschten Webentwécklungsinstrumenter erfuerderlech fir grouss, robust a modern Uwendungen.

An dësem Artikel léiert Dir wéi Dir de Laravel PHP Framework op Ubuntu 20.04 Server installéiert deen um Nginx Webserver leeft.

  • Wéi installéiert ech LEMP Stack mat PhpMyAdmin an Ubuntu 20.04

Schrëtt 1: Erfuerderlech PHP Moduler installéieren

Nodeems Dir de LEMP-Stack op Ärem Ubuntu 20.04-Server opgeriicht hutt, wéi am Guide am Link hei uewen beschriwwen, musst Dir zousätzlech PHP-Extensiounen installéieren, déi vum Laravel erfuerderlech sinn:

$ sudo apt update
$ sudo apt php-common php-json php-mbstring php-zip php-xml php-tokenizer

Schrëtt 2: Erstellt eng Datebank fir Laravel

Als nächst musst Dir eng MySQL Datebank fir Är Laravel Applikatioun erstellen. Also, loggt Iech an Är mysql Shell a erstellt d'Datebank wéi follegt.

$ sudo mysql
MariaDB [(none)]> CREATE DATABASE laraveldb;
MariaDB [(none)]> GRANT ALL ON laraveldb.* to 'webmaster'@'localhost' IDENTIFIED BY 'tecmint';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> quit

Schrëtt 3: Installéiere Composer an Ubuntu 20.04

Laravel benotzt de Komponist (en Ofhängegkeetsmanager fir PHP) fir seng Ofhängegkeeten ze managen. Dofir, ier Dir Laravel benotzt, gitt sécher datt Dir Composer op Ärem System installéiert hutt wéi gewisen.

$ curl -sS https://getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer
$ sudo chmod +x /usr/local/bin/composer

Schrëtt 4: Laravel an Ubuntu 20.04 installéieren

Nodeems Dir de Komponist installéiert hutt, benotzt se fir d'Laravel Dateien z'installéieren. Gitt an Äre /var/www/html Verzeichnis wou Webdateien gespäichert sinn, installéiert dann Laravel mam Komponist wéi gewisen. Denkt drun example.com ze ersetzen mam Numm vum Verzeichnis wou d'Laravel Dateien gespäichert ginn.

$ cd /var/www/html
$ composer create-project --prefer-dist laravel/laravel example.com

Schrëtt 5: Laravel an Ubuntu 20.04 konfiguréieren

Fir den Inhalt vun der neier Laravel Installatioun ze lëschten, fuert de folgenden ls Kommando. Dir wäert feststellen datt eng .env Datei automatesch erstallt gouf, déi an der Vergaangenheet manuell muss erstallt ginn.

$ ls -la /var/www/html/example.com/

Als nächst setzt déi entspriechend Permissiounen am Laravel Verzeechnes wéi follegt.

$ sudo chown -R :www-data /var/www/html/example.com/storage/
$ sudo chown -R :www-data /var/www/html/example.com/bootstrap/cache/
$ sudo chmod -R 0777 /var/www/html/example.com/storage/
$ sudo chmod -R 0775 /var/www/html/example.com/bootstrap/cache/

Als nächst benotzt Laravel en Applikatiounsschlëssel fir Benotzersessiounen an aner verschlësselte Donnéeën ze sécheren. De Standard .env enthält e Standardapplikatiounsschlëssel, awer Dir musst en neie generéieren fir Är Laravel-Deployment fir Sécherheetszwecker.

$ sudo php artisan key:generate

De generéierte Schlëssel gëtt an der .env Datei als Wäert vum APP_KEY bäigefüügt. Dir kënnt den ugeschlossene Schlëssel mat grep Kommando kucken.

$ grep -i APP_Key /var/www/html/example.com/.env

Dir musst och d'Laravel-Datebankverbindungsdetailer an .env konfiguréieren wéi am folgenden Screenshot.

$ sudo nano /var/www/html/example.com/.env

Schrëtt 6: NGINX konfiguréieren fir Laravel Applikatioun ze servéieren

Fir NGINX fir Är nei Applikatioun ze déngen, musst Dir e Serverblock dofir an der NGINX Konfiguratioun erstellen, ënner dem /etc/nginx/sites-available/ Verzeichnis.

$ sudo nano /etc/nginx/sites-available/example.com.conf

An der Konfiguratioun hei drënner, aktualiséieren d'Root-Direktiv an den ëffentleche Verzeechnes vun der Laravel Applikatioun a gitt sécher datt www.example.com mam Domain Numm vun Ärer Websäit ersat gëtt wéi gewisen.

Setzt och d'fastcgi_pass Direktiv soll op de Medium weisen PHP-FPM lauschtert no Ufroen (zum Beispill fastcgi_pass unix:/run/php/php7.4-fpm.sock>):

server{
        server_name www.example.com;
        root        /var/www/html/example.com/public;
        index       index.php;

        charset utf-8;
        gzip on;
        gzip_types text/css application/javascript text/javascript application/x-javascript  image/svg+xml text/plain text/xsd text/xsl text/xml image/x-icon;
        location / {
                try_files $uri $uri/ /index.php?$query_string;
        }

        location ~ \.php {
                include fastcgi.conf;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        }
        location ~ /\.ht {
                deny all;
        }
}

Späichert d'Datei an aktivéiert dann d'Laravel Site Konfiguratioun andeems Dir e Link erstellt vun /etc/nginx/sites-available/example.com.conf op /etc/nginx/sites-enabled/ Verzeechnes. Zousätzlech, ewechzehuelen der Standard Server Block Konfiguratioun.

$ sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/
$ sudo rm /etc/nginx/sites-enabled/default

Als nächst, kontrolléiert ob d'NGINX Konfiguratiounssyntax richteg ass andeems Dir de folgende Kommando ausféiert ier Dir de Service nei start.

$ sudo nginx -t
$ sudo systemctl restart nginx

Schrëtt 7: Zougang zu Laravel Applikatioun vun engem Webbrowser

Op dëser Etapp musst Dir testen ob Är Laravel Deployment gutt funktionnéiert an ob et aus engem Browser zougänglech ass. Fir den Dummy Domain ze benotzen, example.com, loosst eis d'/etc/hosts Datei op Ärem lokalen Computer benotzen fir lokal DNS ze kreéieren.

Fëllt déi folgend Befehle fir d'IP Adress vum Laravel-Server ze kréien a füügt se an d'/etc/hosts Datei derbäi (ersetzt de Wäert no Ären Astellungen).
$ip ad
$echo 192.168.56.11 example.com | sudo tee -a /etc/hosts

Elo öffnen e Webbrowser um lokalen Computer a benotzt déi folgend Adress fir ze navigéieren.

http://www.example.com/

Elo datt Dir Laravel installéiert hutt, kënnt Dir ufänken Är Webapplikatioun oder Site ze bauen. Fir méi Informatioun, kuckt d'Laravel Dokumentatioun.