Ubuntu 20.04-de Nginx bilen Laravel PHP çarçuwasyny nädip gurmaly


Laravel, iň meşhur, erkin we açyk çeşme PHP çarçuwasy bolup, täsirli we ajaýyp sintaksis bilen tanalýar. “Laravel” elýeterli, güýçli we uly, ygtybarly we döwrebap programmalar üçin zerur bolan iň oňat web ösüş gurallaryny hödürleýär.

Bu makalada, Nginx web serwerinde işleýän Ubuntu 20.04 serwerinde Laravel PHP çarçuwasyny nädip gurmalydygyny öwrenersiňiz.

  • Ubuntu 20.04-de PhpMyAdmin bilen LEMP Stack nädip gurmaly

1-nji ädim: Gerekli PHP modullaryny gurmak

Ubuntu 20.04 serweriňizde ýokardaky baglanyşykdaky gollanmada görkezilişi ýaly LEMP ýygyndysyny guranyňyzdan soň, Laravel tarapyndan talap edilýän goşmaça PHP giňeltmelerini aşakdaky ýaly gurmaly:

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

2-nji ädim: Laravel üçin maglumat bazasyny döretmek

Ondan soň, Laravel programmaňyz üçin MySQL maglumat bazasyny döretmeli. Şeýlelik bilen, mysql gabygyňyza giriň we maglumat bazasyny aşakdaky ýaly dörediň.

$ 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

3-nji ädim: Ubuntu 20.04-de kompozitor gurmak

Laravel, garaşlylygy dolandyrmak üçin kompozitordan (PHP üçin garaşlylyk dolandyryjysy) peýdalanýar. Şonuň üçin “Laravel” -i ulanmazdan ozal ulgamyňyzda görkezilişi ýaly Kompozitoryň gurnalandygyna göz ýetiriň.

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

4-nji ädim: Ubuntu 20.04-de Laravel gurmak

Kompozitor guranyňyzdan soň, Laravel faýllaryny gurmak üçin ulanyň. Web faýllary saklanýan /var/www/html katalogyňyza geçiň, soňra görkezilişi ýaly kompozitor ulanyp Laravel guruň. example.com Laravel faýllarynyň saklanjak katalogynyň ady bilen çalyşmagy ýatdan çykarmaň.

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

5-nji ädim: Ubuntu 20.04-de Laravel-i sazlamak

Täze “Laravel” gurnamagynyň mazmunyny sanawlamak üçin aşakdaky ls buýrugyny işlediň. Geçmişde el bilen döredilmeli .env faýly awtomatiki döredilendigini görersiňiz.

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

Ondan soň, Laravel katalogyna degişli rugsatlary aşakdaky ýaly düzüň.

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

Ondan soň, Laravel ulanyjy sessiýalaryny we beýleki şifrlenen maglumatlary goramak üçin programma açaryny ulanýar. Dymmaklyk .env deslapky programma açaryny öz içine alýar, ýöne howpsuzlyk maksatly laravel ýerleşdirmek üçin täzesini döretmeli.

$ sudo php artisan key:generate

Döredilen açar, APP_KEY bahasy hökmünde .env faýlyna goşular. Goşulan düwmäni grep buýrugyny ulanyp görüp bilersiňiz.

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

Şeýle hem, Laravel maglumat bazasynyň birikdiriş jikme-jikliklerini aşakdaky skrinshotda görkezilişi ýaly .env görnüşinde düzmeli.

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

6-njy ädim: Laravel programmasyna hyzmat etmek üçin NGINX sazlamak

NGINX täze programmaňyza hyzmat etmek üçin, /etc/nginx/sites-available/ katalogynyň aşagynda NGINX konfigurasiýasynyň içinde serwer blokuny döretmeli.

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

Aşakdaky konfigurasiýada kök direktiwasyny Laravel programmasynyň umumy katalogyna täzeläň we görkezilişi ýaly www.example.com web sahypaňyzyň domen ady bilen çalşyň.

Şeýle hem, fastcgi_pass direktiwasyny düzüň, ortaça PHP-FPM haýyşlary diňleýär (mysal üçin 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;
        }
}

Faýly ýazdyryň we soňra /etc/nginx/sites-available/example.com.conf dan /etc/nginx/sites -abled/-e baglanyşyk döredip, Laravel sahypasynyň konfigurasiýasyny işlediň. katalogy. Mundan başga-da, deslapky serwer blok konfigurasiýasyny aýyryň.

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

Ondan soň, hyzmaty täzeden açmazdan ozal aşakdaky buýrugy işledip, NGINX konfigurasiýa sintaksisiniň dogrudygyny barlaň.

$ sudo nginx -t
$ sudo systemctl restart nginx

7-nji ädim: Web brauzerinden Laravel programmasyna girmek

Bu etapda, Laravel enjamyňyzyň gowy işleýändigini ýa-da brauzerden girip boljakdygyny barlamaly. mysal.com domenini ulanmak üçin ýerli DNS döretmek üçin ýerli kompýuteriňizdäki /etc/host faýlyny ulanalyň.

Laravel serweriniň IP adresini almak we ony /etc/host faýlyna goşmak üçin aşakdaky buýruklary işlediň (sazlamalaryňyza görä bahany çalşyň).
$ip mahabaty
$echo “192.168.56.11 example.com” | sudo tee -a/etc/öý eýeleri

Indi ýerli kompýuterde web brauzerini açyň we gezmek üçin aşakdaky adresi ulanyň.

http://www.example.com/

“Laravel” gurnanyňyzdan soň, web programmaňyzy ýa-da sahypaňyzy gurup bilersiňiz. Has giňişleýin maglumat üçin Laravel resminamalaryna serediň.