Kif Tinstalla Laravel PHP Framework b'Nginx fuq Ubuntu 20.04


Laravel huwa l-aktar qafas PHP popolari, ħieles u open-source fid-dinja, magħruf għas-sintassi espressiva u eleganti tiegħu. Laravel huwa aċċessibbli, b'saħħtu, u joffri wħud mill-aqwa għodod għall-iżvilupp tal-web meħtieġa għal applikazzjonijiet kbar, robusti u moderni.

F'dan l-artikolu, titgħallem kif tinstalla l-Laravel PHP Framework fuq is-server Ubuntu 20.04 li jaħdem fuq is-server tal-web Nginx.

  • Kif Tinstalla LEMP Stack ma' PhpMyAdmin f'Ubuntu 20.04

Pass 1: Installazzjoni tal-Moduli PHP Meħtieġa

Wara li waqqaf il-munzell LEMP fuq is-server Ubuntu 20.04 tiegħek kif deskritt fil-gwida fil-link hawn fuq, għandek bżonn tinstalla estensjonijiet PHP addizzjonali meħtieġa minn Laravel kif ġej:

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

Pass 2: Ħolqien ta 'Database għal Laravel

Sussegwentement, għandek bżonn toħloq database MySQL għall-applikazzjoni Laravel tiegħek. Allura, idħol fil-qoxra tal-mysql tiegħek u oħloq id-database kif ġej.

$ 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

Pass 3: Installazzjoni tal-Kompożitur f'Ubuntu 20.04

Laravel juża l-kompożitur (maniġer tad-dipendenza għall-PHP) biex jimmaniġġja d-dipendenzi tiegħu. Għalhekk, qabel ma tuża Laravel, kun żgur li għandek Composer installat fis-sistema tiegħek kif muri.

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

Pass 4: Installazzjoni ta 'Laravel f'Ubuntu 20.04

Wara li tinstalla l-kompożitur, użaha biex tinstalla l-fajls Laravel. Imxi fid-direttorju /var/www/html tiegħek fejn huma maħżuna l-fajls tal-web, imbagħad installa Laravel billi tuża l-kompożitur kif muri. Ftakar li tissostitwixxi example.com bl-isem tad-direttorju fejn se jinħażnu l-fajls Laravel.

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

Pass 5: Konfigurazzjoni ta 'Laravel f'Ubuntu 20.04

Biex telenka l-kontenut tal-installazzjoni l-ġdida ta 'Laravel, ħaddem il-kmand ls li ġej. Tinduna li fajl .env inħoloq awtomatikament, li fil-passat, kien ikollu jinħoloq manwalment.

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

Sussegwentement, issettja l-permessi xierqa fuq id-direttorju Laravel kif ġej.

$ 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/

Sussegwentement, Laravel juża ċavetta ta 'applikazzjoni biex jiżgura sessjonijiet ta' l-utent u data oħra kriptata. Il-default .env fih ċavetta ta' applikazzjoni default imma għandek bżonn tiġġenera waħda ġdida għall-iskjerament tal-laravel tiegħek għal skopijiet ta' sigurtà.

$ sudo php artisan key:generate

Iċ-ċavetta ġġenerata se tkun mehmuża fil-fajl .env bħala l-valur tal-APP_KEY. Tista' tara ċ-ċavetta mehmuża billi tuża l-kmand grep.

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

Għandek bżonn ukoll tikkonfigura d-dettalji tal-konnessjoni tad-database Laravel f'.env kif muri fil-screenshot li ġej.

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

Pass 6: Konfigurazzjoni ta 'NGINX biex Iservi l-Applikazzjoni Laravel

Biex NGINX iservi l-applikazzjoni l-ġdida tiegħek, għandek bżonn toħloq blokk tas-server għaliha fi ħdan il-konfigurazzjoni NGINX, taħt id-direttorju /etc/nginx/sites-available/.

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

Fil-konfigurazzjoni ta’ hawn taħt, aġġorna d-direttiva tal-għeruq għad-direttorju pubbliku tal-applikazzjoni Laravel u kun żgur li tissostitwixxi www.example.com bl-isem tad-dominju tal-websajt tiegħek kif muri.

Ukoll, issettja d-direttiva fastcgi_pass għandha tindika l-mezz li PHP-FPM qed jisma' għal talbiet (per eżempju 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;
        }
}

Issejvja l-fajl u mbagħad ippermetti l-konfigurazzjoni tas-sit Laravel billi toħloq link minn /etc/nginx/sites-available/example.com.conf għall-/etc/nginx/sites-enabled/ direttorju. Barra minn hekk, neħħi l-konfigurazzjoni default tal-blokk tas-server.

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

Sussegwentement, iċċekkja jekk is-sintassi tal-konfigurazzjoni NGINX hijiex korretta billi tħaddem il-kmand li ġej qabel ma terġa 'tibda s-servizz.

$ sudo nginx -t
$ sudo systemctl restart nginx

Pass 7: Aċċess għall-Applikazzjoni Laravel minn Web Browser

F'dan l-istadju, għandek bżonn tittestja jekk l-iskjerament Laravel tiegħek hux qed jaħdem tajjeb u jekk jistax jiġi aċċessat minn browser. Biex tuża d-dominju finta, example.com, ejja nużaw il-fajl /etc/hosts fuq il-kompjuter lokali tiegħek biex noħolqu DNS lokali.

Mexxi l-kmandi li ġejjin biex tikseb l-indirizz IP tas-server Laravel u żidu mal-fajl /etc/hosts (ibdel il-valur skont is-settings tiegħek).
$ip ad
$eku “192.168.56.11 example.com” | sudo tee -a /etc/hosts

Issa tiftaħ web browser fuq il-kompjuter lokali u uża l-indirizz li ġej biex tinnaviga.

http://www.example.com/

Issa li għandek Laravel installat, tista 'tibda tibni l-applikazzjoni tal-web jew is-sit tiegħek. Għal aktar informazzjoni, ara d-dokumentazzjoni Laravel.