Vendosja e një aplikacioni në Laravel 7 në Ubuntu & Nginx

Vendosja e një aplikacioni në Laravel 7 në Ubuntu & Nginx

Vendosa të bëj portofolin tim duke përdorur Laravel 7. Në mënyrë që faqja kryesore të jetë një faqe uljeje dhe të gjitha informacionet në të mund të ndryshohen duke përdorur panelin e administratorit. Jo pika. Erdhi deri te vendosja. Gjeta disa mësime të mira se si ta bëj këtë në një server të plotë me të gjitha problemet. Unë nuk jam shumë i fortë në vendosje; në përgjithësi jam më shumë përpara sesa të plotë. Dhe, nëse ende mund të shkruaj dhe testoj në PHP, atëherë përpara se të menaxhoj serverin, etj. Nuk jam rritur akoma. Por duhej ta kuptoja.

Tani do të kalojmë nëpër të gjitha hapat, duke filluar nga nisja përmes SSH dhe duke përfunduar me sitin e punës. Ne do të përpiqemi të shmangim të gjitha grackat.

Ju mund të gjeni udhëzime të ngjashme në internet. Në fund të fundit, më në fund e gjeta. Vërtetë, jo në një vend, jo pa ndihmën e StackOverflow, dhe vështirë se në rusisht. kam vuajtur. Kjo është arsyeja pse vendosa të thjeshtoj jetën tuaj.

Ne do të bëjmë gjithçka me një pikëz në DigitalOcean. Kjo, natyrisht, nuk është e nevojshme; zgjidhni ndonjë hosting. Kur të arrini një server që funksionon në Ubuntu, kthehuni. Për ata që ende vendosin ta bëjnë atë në DigitalOcean, do të ketë më shumë këshilla për vendosjen e një domeni. Dhe Lidhje referimi prej 100 dollarësh.

Të gjithë hapat specifikë të DigitalOcean do të jepen në shënime si këto.

Le të fillojmë.

TL;DR (vetëm komandat bazë)

Krijo një përdorues

  • ssh root@[IP-адрес вашего дроплета]
  • adduser laravel
  • usermod -aG sudo laravel
  • su laravel

Shtoni SSH në të

  • mkdir ~/.ssh
  • chmod 700 ~/.ssh
  • vim ~/.ssh/authorized_keys
  • Fusni çelësin publik
  • chmod 600 ~/.ssh/authorized_keys

Firewall

  • sudo ufw allow OpenSSH
  • sudo ufw enable
  • sudo ufw status

nginx

  • sudo apt update
  • sudo apt install -y nginx
  • sudo ufw allow 'Nginx HTTP'
  • sudo ufw status

MySQL

  • sudo apt install -y mysql-server
  • sudo mysql_secure_installation, NYNNY
  • sudo mysql
  • ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<Ваш пароль для MySQL>';
  • SELECT user,authentication_string,plugin,host FROM mysql.user;
  • FLUSH PRIVILEGES;
  • exit

PHP

  • sudo apt update

  • sudo apt install -y curl wget gnupg2 ca-certificates lsb-release apt-transport-https

  • sudo apt-add-repository ppa:ondrej/php

  • sudo apt update

  • 7.3: sudo apt install -y php7.3-fpm php7.3-mysql

  • 7.4: sudo apt install -y php7.4-fpm php7.4-mysql

  • sudo vim /etc/nginx/sites-available/<Ваш домен>

Konfigurimi bazë:

server {
        listen 80;
        root /var/www/html;
        index index.php index.html index.htm index.nginx-debian.html;
        server_name <Ваш домен или IP>;

        location / {
                try_files $uri $uri/ =404;
        }

        location ~ .php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        }

        location ~ /.ht {
                deny all;
        }
}

Vetëm konfigurimi i HTTP për Laravel:

server {
    listen 80;
    listen [::]:80;

    root /var/www/html/<Имя проекта>/public;
    index index.php index.html index.htm index.nginx-debian.html;

    server_name <Ваш домен или IP>;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ .php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }

    location ~ /.ht {
        deny all;
    }
}

Cilësimi i HTTPS për Laravel:

server {
    listen 80;
    listen [::]:80;

    server_name <Ваш домен> www.<Ваш домен>;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name <Ваш домен> www.<Ваш домен>;
    root /var/www/html/<Имя проекта>/public;

    ssl_certificate /etc/letsencrypt/live/<Ваш домен>/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/<Ваш домен>/privkey.pem;

    ssl_protocols TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;
    ssl_prefer_server_ciphers on;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";

    index index.php index.html index.htm index.nginx-debian.html;

    charset utf-8;

    location / {
            try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ .php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }

    location ~ /.ht {
            deny all;
    }

    location ~ /.well-known {
            allow all;
    }
}

  • sudo ln -s /etc/nginx/sites-available/<Ваш домен> /etc/nginx/sites-enabled/
  • sudo unlink /etc/nginx/sites-enabled/default
  • sudo nginx -t
  • sudo systemctl reload nginx

Laravel

  • 7.3: sudo apt install -y php7.3-mbstring php7.3-xml composer unzip

  • 7.4: sudo apt install -y php7.4-mbstring php7.4-xml composer unzip

  • mysql -u root -p

  • CREATE DATABASE laravel DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

  • GRANT ALL ON laravel.* TO 'root'@'localhost' IDENTIFIED BY '<Ваш пароль от MySQL>';

  • FLUSH PRIVILEGES;

  • exit

  • cd /var/www/html

  • sudo mkdir -p <Имя проекта>

  • sudo chown laravel:laravel <Имя проекта>

  • cd ./<Имя проекта>

  • git clone <ссылка на проект> . / git clone -b <имя ветки> --single-branch <ссылка на проект> .

  • composer install

  • vim .env

APP_NAME=Laravel
APP_ENV=production
APP_KEY=
APP_DEBUG=false
APP_URL=http://<Ваш домен>

LOG_CHANNEL=stack

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=<Ваш пароль от MySQL>

  • php artisan migrate

  • php artisan key:generate

  • sudo chown -R $USER:www-data storage

  • sudo chown -R $USER:www-data bootstrap/cache

  • chmod -R 775 storage

  • chmod -R 775 bootstrap/cache

HTTPS

  • sudo add-apt-repository ppa:certbot/certbot

  • sudo apt install -y python-certbot-nginx

  • sudo certbot certonly --webroot --webroot-path=/var/www/html/<Имя проекта>/public -d <Ваш домен> -d www.<Ваш домен>

  • sudo nginx -t

  • sudo ufw allow 'Nginx HTTPS'

  • sudo ufw status

  • sudo systemctl reload nginx

Krijoni një pikëz në DigitalOcean dhe regjistroni një çelës të ri SSH

Unë me të vërtetë besoj se ju do të kuptoni se si të regjistroheni në DigitalOcean vetë. Nuk është e lehtë, me shumë verifikime e të tjera. Nëse vazhdimisht merrni një gabim rrjeti kur verifikoni përdorimin e dokumenteve, provoni të bëni gjithçka përmes një VPN, duhet të ndihmojë.

Në menunë në krye, klikoni Krijo->pikëza. Zgjedhja Ubuntu.

Sapo të regjistroheni, do të merrni 100 dollarë në llogarinë tuaj. Por mos u mashtroni. Keni vetëm 60 ditë për ta shpenzuar. Dhe kjo është shumë pak. Ju, si unë, mund të dëshironi të përdorni një plan më të shtrenjtë, në mënyrë që më vonë, kur paratë e vërteta të fillojnë të rrjedhin, të mund të kaloni në një plan më të lirë. Unë do t'ju them menjëherë se nuk do të funksionojë. Mund ta rrisni, por nuk mund ta zvogëloni. Ashtu shkon. zgjedh standard->$5.

Unë zgjedh rajonin më të afërt me ne Frankfurt. Rrjeti VPC->default-fra1

Ne do të kryejmë menjëherë vërtetimin nëpërmjet SSH. Klikoni Çelësi i ri SSH. Nëse nuk keni SSH, ka udhëzime shumë të thjeshta në të djathtë. Hapni një terminal bash dhe ngjiteni ssh-keygen. Pastaj shkojmë te skedari me çelësin publik /Users/<Ваше имя пользователя>/.ssh/id_rsa.pub (ose thjesht cat ~/.ssh/id_rsa.pub), kopjoni përmbajtjen dhe ngjisni në dritaren në të majtë. Çdo emër.

Ne dalim me një emër pritës për pikën.

shtyp Krijo Droplet

Krijo një përdorues të ri

  • ssh root@[IP-адрес вашего дроплета]
  • Jeni i sigurt që dëshironi të vazhdoni lidhjen (po/jo/[gjurmë gishti])? yes
  • Futni fjalëkalimin tuaj SSH
  • Krijo një përdorues laravel: adduser laravel
  • Futni fjalëkalimin tuaj dhe informacione të tjera (fut vetëm emrin e plotë)
  • Shtoni përdoruesin në grupin sudo: usermod -aG sudo laravel

SSH për përdorues të ri

  • Kalo te përdoruesi i ri: su laravel

Ne kryejmë të gjitha veprimet më tej, deri në fund të artikullit, në emër të përdoruesit të laravel. Prandaj, nëse ndërpriteni papritmas, identifikohuni përsëri dhe hyni su laravel

  • mkdir ~/.ssh
  • chmod 700 ~/.ssh
  • vim ~/.ssh/authorized_keys

Ne hapëm skedarin në Vim. Nëse nuk e njihni fare, mund të punoni në Nano, e drejta juaj.

Komandat më themelore të Vim

Për të përdorur redaktorin Vim gjatë gjithë artikullit, thjesht duhet të dini sa vijon.

  • Vim ka mënyra të ndryshme: modaliteti normal, në të cilin futni komanda dhe zgjidhni mënyra dhe të tjera.
  • Për të dalë nga çdo modalitet dhe për t'u kthyer në modalitetin normal, thjesht shtypni Esc
  • Lëvizni përreth: mund të përdorni vetëm shigjeta
  • Dilni pa ruajtur <Normal mode>: :q!
  • Dilni dhe ruajeni <Normal mode>: :wq
  • Kalo në modalitetin e futjes së tekstit <Normal mode>: i (nga anglishtja. fut)
  • Fusim çelësin tonë publik (që bëmë më lart)
  • Ne mbrohemi nga ndryshimet: chmod 600 ~/.ssh/authorized_keys

Instalimi i një muri zjarri

  • Le të shohim të gjitha cilësimet e disponueshme: sudo ufw app list
  • Lejo OpenSSH (përndryshe do të na bllokojë): sudo ufw allow OpenSSH
  • Le të hapim murin e zjarrit: sudo ufw enable, y
  • kontrolloni: sudo ufw status

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

Cdo gje eshte ne rregull.

Instalimi i Nginx

Gjatë instalimit ndonjëherë do të pyeteni "A jeni i sigurt?" Përgjigju y (epo, vetëm nëse jeni i sigurt).

  • sudo apt update
  • sudo apt install nginx

Shtimi i Nginx në cilësimet e murit të zjarrit

  • sudo ufw app list
  • sudo ufw allow 'Nginx HTTP'
  • sudo ufw status

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
Nginx HTTP                 ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
Nginx HTTP (v6)            ALLOW       Anywhere (v6)

Shkoni në IP-në tuaj. Nëse gjithçka shkon mirë, duhet të shihni sa vijon.

Vendosja e një aplikacioni në Laravel 7 në Ubuntu & Nginx

Instalimi i MySQL

  • sudo apt install mysql-server
  • Nisja e një skripti automatik të mbrojtjes sudo mysql_secure_installation

Përgjigjuni pyetjeve të bëra. Nëse nuk dini çfarë të përgjigjeni, këtu janë disa opsione të sugjeruara:

  • Vërteto shtojcën e fjalëkalimit - N

  • Të hiqen përdoruesit anonimë? - Y

  • Të mos lejohet identifikimi i rrënjës nga distanca? - N

  • Të hiqet baza e të dhënave të testimit dhe qasja në të? - N

  • Rifresko tabelat e privilegjeve tani? - Y

  • Le të shkojmë në MySQL: sudo mysql

  • Le të shohim metodat e hyrjes: SELECT user,authentication_string,plugin,host FROM mysql.user;

  • Vendosni një fjalëkalim për root: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<Ваш пароль для MySQL>';

  • Le të shohim përsëri metodat e hyrjes: SELECT user,authentication_string,plugin,host FROM mysql.user;

  • Aplikoni ndryshimet dhe dilni nga MySQL: FLUSH PRIVILEGES; и exit

  • Tani, për të hyrë në MySQL duhet të përdorni mysql -u root -p dhe futni fjalëkalimin

Instalimi i PHP

Le të përdorim një depo të palëve të treta nga Ondrej Surý

  • sudo apt update
  • sudo apt install -y curl wget gnupg2 ca-certificates lsb-release apt-transport-https
  • sudo apt-add-repository ppa:ondrej/php
  • sudo apt update

Tani le të zgjedhim. Për Laravel 7, ju mund të zgjidhni PHP 7.3 ose 7.4. Dallimi i vetëm do të jetë në numrat 3 dhe 4.

  • 7.3: sudo apt install -y php7.3-fpm php7.3-mysql
  • 7.4: sudo apt install -y php7.4-fpm php7.4-mysql

PHP FastCGI Process Manager (fpm) punon me kërkesat PHP. mysql, natyrisht, për të punuar me MySQL.

Tani e tutje do të bëj gjithçka në 7.4.

Konfigurimi i Nginx

  • sudo vim /etc/nginx/sites-available/<Ваш домен>

Në vend të "<Domeni juaj>" futni domenin (për shembull, mysite.ru) që dëshironi të përdorni në të ardhmen. Nëse nuk keni ende një të tillë, shkruani ndonjë, pastaj thjesht përsëritni hapat në këtë kapitull për domenin tuaj kur ta zgjidhni atë.

Futni sa vijon:

server {
        listen 80;
        root /var/www/html;
        index index.php index.html index.htm index.nginx-debian.html;
        server_name <Ваш домен или IP>;

        location / {
                try_files $uri $uri/ =404;
        }

        location ~ .php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        }

        location ~ /.ht {
                deny all;
        }
}

Nëse në vend të kësaj zgjodhe versionin 7.3 php7.4-fpm.sock shkruani në php7.4-fpm.sock.

Dëgjoni portin 80 në server_namekur arrijmë në kërkesën rrënjësore /var/www/html merrni skedarin e indeksit. Nëse pas server_name Ka diçka, ne po kërkojmë një dosje të tillë. Nëse nuk e gjejmë, hedhim 404. Nëse mbaron me .php, vrapo permes fpm... Nëse ka .ht, ndaloj (403).

  • Krijimi i një lidhjeje nga sites-available в sites-enabled: sudo ln -s /etc/nginx/sites-available/<Ваш домен> /etc/nginx/sites-enabled/
  • Heqja e lidhjes për default: sudo unlink /etc/nginx/sites-enabled/default
  • Kontrollimi për gabime: sudo nginx -t
  • Rinisja: sudo systemctl reload nginx

Kontrollimi i punës:

  • sudo vim /var/www/html/info.php
  • Ne shkruajmë: <?php phpinfo();
  • Shkojmë <Ваш IP>/info.php

Ju duhet të shihni diçka të tillë:

Vendosja e një aplikacioni në Laravel 7 në Ubuntu & Nginx

Tani ky skedar mund të fshihet: sudo rm /var/www/html/info.php

Instaloni Laravel

  • 7.3: sudo apt install php7.3-mbstring php7.3-xml composer unzip

  • 7.4: sudo apt install php7.4-mbstring php7.4-xml composer unzip

  • Le të shkojmë në MySQL: mysql -u root -p

  • Krijo një bazë të dhënash me emrin laravel: CREATE DATABASE laravel DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

  • Ne ofrojmë qasje rrënjësore në laravel: GRANT ALL ON laravel.* TO 'root'@'localhost' IDENTIFIED BY '<Ваш пароль от MySQL>';

  • FLUSH PRIVILEGES;

  • exit

  • cd /var/www/html

  • Krijo një dosje për projektin: sudo mkdir -p <Имя проекта>

  • Ne i ofrojmë përdoruesit laravel të drejtat për projektin: sudo chown laravel:laravel <Имя проекта>

Tjetra ju duhet të transferoni projektin. Për shembull, klonimi nga Github.

  • cd ./<Имя проекта>
  • git clone <ссылка на проект> .

Vlen të merret parasysh që nëse nuk keni ruajtur skedarë statikë (për shembull, nga /public) në Github, atëherë natyrisht që nuk do t'i keni ato. Për shembull, kam krijuar një temë të veçantë për ta zgjidhur këtë deploy, nga e cila kam klonuar tashmë: git clone -b <имя ветки> --single-branch <ссылка на проект> ..

  • Instalimi i varësive: composer install
  • Krijo .env: vim .env

Versioni bazë i tij duket si ky:

APP_NAME=Laravel
APP_ENV=production
APP_KEY=
APP_DEBUG=false
APP_URL=http://<Ваш домен>

LOG_CHANNEL=stack

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=<Ваш пароль от MySQL>

Nëse kopjoni .env tuaj, zëvendësoni APP_ENV me prodhimin, APP_DEBUG me false dhe futni cilësimet e sakta për MySQL.

  • Migrimi i bazës së të dhënave: php artisan migrate
  • Gjenerimi i kodit: php artisan key:generate

Ndryshimi i lejeve:

  • sudo chown -R $USER:www-data storage
  • sudo chown -R $USER:www-data bootstrap/cache
  • chmod -R 775 storage
  • chmod -R 775 bootstrap/cache

Gjëja e fundit që mbetet është të rikonfiguroni Nginx për Laravel:

sudo vim /etc/nginx/sites-available/<Ваш домен>

server {
    listen 80;
    listen [::]:80;

    root /var/www/html/<Имя проекта>/public;
    index index.php index.html index.htm index.nginx-debian.html;

    server_name <Ваш домен или IP>;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ .php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }

    location ~ /.ht {
        deny all;
    }
}

Ashtu si herën e kaluar, nëse në vend të kësaj zgjodhe versionin 7.3 php7.4-fpm.sock shkruani në php7.4-fpm.sock.

Vendosja e një domeni në DigitalOcean

Gjithçka është në fakt shumë e thjeshtë. Ju blini një domen (kudo), kaloni në DigitalOcean në Krijo->Domenet/DNSMe Në fushë Shtoni një domen ju hyni në këtë domen dhe klikoni "Shto". Pastaj shkoni te cilësimet e domenit dhe te fusha EMRI hyjnë @. Zgjidhni një projekt dhe klikoni Krijo rekord.
Tani shkoni te faqja ku keni blerë domenin, gjeni "Serverët DNS" atje (ose diçka të ngjashme) dhe futni serverët DigitalOcean (domethënë ns1.digitalocean.com, ns2.digitalocean.com, ns3.digitalocean.com). Tani duhet të prisni pak (ose shumë) derisa këto cilësime të pranohen. Gati!
Problemi i vetëm është se faqja juaj do të hapet vetëm si HTTP. Për të pasur HTTPS, kaloni në pjesën tjetër.

Konfigurimi i HTTPS

Instaloni certbot dhe kaloni emrin e domenit (format mysite.ru) dhe emri i domenit me www (www.mysite.ru).

  • sudo add-apt-repository ppa:certbot/certbot
  • sudo apt install python-certbot-nginx
  • sudo certbot certonly --webroot --webroot-path=/var/www/html/<Имя проекта>/public -d <Ваш домен> -d www.<Ваш домен>

Tani ju duhet të rikonfiguroni Nginx (mos harroni të zëvendësoni vlerat tuaja):

server {
    listen 80;
    listen [::]:80;

    server_name <Ваш домен> www.<Ваш домен>;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name <Ваш домен> www.<Ваш домен>;
    root /var/www/html/<Имя проекта>/public;

    ssl_certificate /etc/letsencrypt/live/<Ваш домен>/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/<Ваш домен>/privkey.pem;

    ssl_protocols TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;
    ssl_prefer_server_ciphers on;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";

    index index.php index.html index.htm index.nginx-debian.html;

    charset utf-8;

    location / {
            try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ .php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }

    location ~ /.ht {
            deny all;
    }

    location ~ /.well-known {
            allow all;
    }
}

Unë mendoj se ju tashmë e kuptoni se çfarë duhet ndryshuar për PHP 7.3.

Këtu, në fakt, gjithçka është e thjeshtë. Ne thjesht i ridrejtojmë të gjitha kërkesat nga HTTP (porti 80) në HTTPS (porti 443). Dhe atje bëjmë gjithçka njësoj si më parë, por me enkriptim.

Gjithçka që mbetet është të vendosni lejet në murin e zjarrit:

  • sudo nginx -t
  • sudo ufw app list
  • sudo ufw allow 'Nginx HTTPS'
  • sudo ufw status
  • sudo systemctl reload nginx

Tani gjithçka duhet të funksionojë siç duhet.

[I avancuar] Instalimi i Node.js

Nëse papritur ju duhet të ekzekutoni komandat npm direkt në server, duhet të instaloni Node.js.

  • sudo apt update
  • sudo apt install -y nodejs npm
  • nodejs -v

Kjo është ajo, unë u ndal në këtë fazë. Në parim, jam i kënaqur me rezultatin. Ndoshta do të kaloj nga DigitalOcean diku më afër Rusisë dhe më lirë. Por duke qenë se kisha kaluar tashmë nëpër të gjitha raundet e verifikimit në faqe dhe bëra gjithçka atje, i tregova me shembull. Për më tepër, 100 dollarët e tyre fillestarë janë një trampolinë e shkëlqyer për stërvitje.

PS Falenderim i vecante per autorin këtë thelb, e cila shërbeu si bazë për të gjitha veprimet e mësipërme. Në disa raste nuk funksionon për Laravel 7, e rregullova.

PPS Nëse ju ndodh të jeni një inxhinier i lartë që mendon në komandat bash, ju lutemi mos gjykoni ashpër. Ju mund ta gjeni këtë artikull të një standardi të ulët, por do të kisha qenë i lumtur ta gjeja një të tillë kur të kisha nevojë. Nëse ka sugjerime për përmirësim, unë jam i gjithi për të.

Burimi: www.habr.com

Shto një koment