Nyebarkeun aplikasi ka Laravel 7 dina Ubuntu & Nginx

Nyebarkeun aplikasi ka Laravel 7 dina Ubuntu & Nginx

Kuring mutuskeun nyieun portopolio kuring maké Laravel 7. Ku kituna kaca utama bakal kaca badarat, sarta sakabeh informasi dina eta bisa dirobah ngagunakeun panel admin. Henteu titik. Ieu sumping ka deployment. Kuring mendakan sababaraha tutorial anu saé ngeunaan cara ngalakukeun ieu dina server anu lengkep sareng sadaya kasulitan. Abdi henteu kuat pisan dina panyebaran; Abdi umumna langkung payun tibatan tumpukan pinuh. Sareng, upami kuring masih tiasa nyerat sareng nguji dina PHP, teras sateuacan ngatur server, jsb. Abdi henteu acan dewasa. Tapi kuring kungsi angka eta kaluar.

Ayeuna urang bakal ngaliwat sadaya léngkah, dimimitian ku peluncuran via SSH sareng ditungtungan ku situs damel. Urang bakal coba pikeun nyegah sagala pitfalls.

Anjeun tiasa mendakan petunjuk anu sami sacara online. Barina ogé, kuring tungtungna kapanggih eta. Leres, teu di hiji tempat, teu tanpa bantuan StackOverflow, sarta boro di Rusia. Kuring sangsara. Éta sababna kuring mutuskeun pikeun nyederhanakeun kahirupan anjeun.

Urang bakal ngalakukeun sagalana ku droplet on DigitalOcean. Ieu, tangtosna, henteu diperyogikeun; pilih hosting naon waé. Nalika anjeun ngahontal server anu tiasa dianggo dina Ubuntu, uih deui. Pikeun anu masih mutuskeun pikeun ngalakukeunana dina DigitalOcean, bakal aya langkung seueur tip pikeun nyetél domain. Jeung $ 100 link rujukan.

Sadaya léngkah-léngkah khusus DigitalOcean bakal dipasihkeun dina catetan kaki sapertos kieu.

Hayu urang mimitian.

TL; DR (paréntah dasar wungkul)

Jieun pamaké

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

Tambahkeun SSH kana éta

  • mkdir ~/.ssh
  • chmod 700 ~/.ssh
  • vim ~/.ssh/authorized_keys
  • Selapkeun konci umum
  • 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/<Ваш домен>

Setélan dasar:

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;
        }
}

Ngan setelan HTTP pikeun 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;
    }
}

Setélan HTTPS pikeun 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

Jieun titisan dina DigitalOcean tur ngadaptar konci SSH anyar

Kuring leres-leres yakin yén anjeun bakal terang kumaha carana ngadaptar sareng DigitalOcean nyalira. Éta henteu gampang, kalayan seueur verifikasi sareng hal-hal sanés. Upami anjeun teras-terasan kéngingkeun kasalahan jaringan nalika pariksa nganggo dokumén, cobian sadayana ngalangkungan VPN, éta kedah ngabantosan.

Dina ménu di luhur, klik nyiptakeun->ogé titik-titik. Milih Ubuntu.

Pas anjeun ngadaptar, anjeun bakal nampa $100 kana akun anjeun. Tapi ulah dibobodo. Anjeun ngan boga 60 poé méakkeun eta. Sareng ieu sakedik pisan. Anjeun tiasa, sapertos abdi, hoyong nganggo rencana anu langkung mahal, supados engké, nalika artos nyata mimiti ngalir, anjeun tiasa ngalih ka anu langkung mirah. Kuring gé ngabejaan Anjeun langsung yén éta moal jalan. Anjeun tiasa ningkatkeun, tapi anjeun teu tiasa ngirangan. Kitu deui. Kuring milih standar->$5.

Kuring milih daérah anu pangdeukeutna sareng urang Frankfurt. Jaringan VPC->standar-fra1

Urang bakal langsung ngalakukeun auténtikasi via SSH. Pencét SSH Key anyar. Mun anjeun teu mibanda SSH, aya parentah basajan pisan di katuhu. Buka terminal bash sareng témpél ssh-keygen. Teras we angkat ka file nganggo konci umum /Users/<Ваше имя пользователя>/.ssh/id_rsa.pub (atawa ngan saukur cat ~/.ssh/id_rsa.pub), salin eusi sareng témpél kana jandela di kénca. Sakur ngaran.

Urang datang nepi ka hostname pikeun titisan.

Teken Jieun Droplet

Jieun pamaké anyar

  • ssh root@[IP-адрес вашего дроплета]
  • Naha anjeun yakin yén anjeun badé neraskeun sambungan (enya / henteu / [sidik sidik])? yes
  • Lebetkeun sandi SSH anjeun
  • Jieun pamaké laravel: adduser laravel
  • Lebetkeun kecap akses anjeun sareng inpormasi anu sanés (abdi ngan ukur ngalebetkeun nami lengkep)
  • Tambahkeun pamaké kana grup sudo: usermod -aG sudo laravel

SSH pikeun pamaké anyar

  • Pindah ka pangguna anyar: su laravel

Urang ngalaksanakeun sagala lampah salajengna, nepi ka ahir artikel, atas nama pamaké laravel. Ku alatan éta, lamun ujug-ujug interrupted, asup deui jeung asupkeun su laravel

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

Kami muka file dina Vim. Mun anjeun teu wawuh jeung eta pisan, anjeun tiasa dianggo dina Nano, katuhu anjeun.

Paréntah Vim anu paling dasar

Pikeun nganggo pangropéa Vim sapanjang tulisan, anjeun kedah terang ieu di handap.

  • Vim gaduh modeu anu béda: Modeu normal, dimana anjeun ngalebetkeun paréntah sareng milih modeu sareng anu sanésna.
  • Pikeun kaluar tina mode naon waé sareng uih deui ka modeu normal, pencét waé Esc
  • Mindahkeun sabudeureun: Anjeun ngan bisa make panah
  • Kaluar tanpa nyimpen <Normal mode>: :q!
  • Kaluar jeung simpen <Normal mode>: :wq
  • Pindah ka modeu input téks <Normal mode>: i (tina basa inggris. ngasupkeun)
  • Urang selapkeun konci publik urang (anu kami lakukeun di luhur)
  • Urang ngajaga tina parobahan: chmod 600 ~/.ssh/authorized_keys

Masang firewall

  • Hayu urang tingali sadaya setélan anu sayogi: sudo ufw app list
  • Ngidinan OpenSSH (lain éta bakal ngonci kami): sudo ufw allow OpenSSH
  • Hayu urang ngajalankeun firewall: sudo ufw enable, y
  • Kami cek: sudo ufw status

Status: active

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

Sagalana geus rupa.

Masang Nginx

Salila instalasi anjeun bakal kadang ditanya "Naha anjeun yakin?" Waleran y (Muhun, ngan lamun anjeun yakin).

  • sudo apt update
  • sudo apt install nginx

Nambahkeun Nginx kana setélan firewall

  • 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)

Pindah ka IP anjeun. Lamun sagalana mana ogé, Anjeun kudu ningali handap.

Nyebarkeun aplikasi ka Laravel 7 dina Ubuntu & Nginx

Masang MySQL

  • sudo apt install mysql-server
  • Ngajalankeun skrip panyalindungan otomatis sudo mysql_secure_installation

Ngajawab patarosan ditanya. Upami anjeun henteu terang naon anu kedah dijawab, ieu sababaraha pilihan anu disarankeun:

  • Validasi sandi plugin - N

  • Hapus pamaké anonim? — Y

  • Disallow root login jarak jauh? — N

  • Hapus database tés sareng aksés kana éta? — N

  • Muat ulang tabel hak istimewa ayeuna? — Y

  • Hayu urang ka MySQL: sudo mysql

  • Hayu urang tingali metodeu aksés: SELECT user,authentication_string,plugin,host FROM mysql.user;

  • Setel kecap akses pikeun root: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<Ваш пароль для MySQL>';

  • Hayu urang tingali deui metode aksés: SELECT user,authentication_string,plugin,host FROM mysql.user;

  • Larapkeun perobahan sareng kaluar MySQL: FLUSH PRIVILEGES; и exit

  • Ayeuna, pikeun asup kana MySQL anjeun kedah nganggo mysql -u root -p jeung asupkeun kecap akses

Masang PHP

Hayu urang nganggo Repository pihak katilu ti 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

Ayeuna hayu urang milih. Pikeun Laravel 7, anjeun tiasa milih PHP 7.3 atanapi 7.4. Hiji-hijina bédana bakal aya dina nomer 3 sareng 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 Prosés Manajer (fpm) jalan kalawan requests PHP. mysql, tangtosna, pikeun gawé bareng MySQL.

Ti ayeuna kuring bakal ngalakukeun sagalana dina 7.4.

Nyetél Nginx

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

Gantina "<domain anjeun>" lebetkeun domain (contona, mysite.ru) nu Anjeun hoyong pake dina mangsa nu bakal datang. Upami anjeun teu acan gaduh, nyerat naon waé, teras malikan deui léngkah-léngkah dina bab ieu pikeun domain anjeun nalika anjeun milih.

Lebetkeun ieu:

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;
        }
}

Upami anjeun milih versi 7.3 tibatan php7.4-fpm.sock nulis dina php7.4-fpm.sock.

Dengekeun port 80 on server_namelamun urang anjog kana pamundut root /var/www/html nyandak file indéks. Lamun sanggeus server_name Aya hiji hal, urang pilari file sapertos. Lamun urang teu manggihan eta, urang buang kaluar 404. Lamun ditungtungan make .php, ngajalankeun ngaliwatan fpm... Lamun aya .ht, ngalarang (403).

  • Nyieun link ti sites-available в sites-enabled: sudo ln -s /etc/nginx/sites-available/<Ваш домен> /etc/nginx/sites-enabled/
  • Nyoplokkeun link ka default: sudo unlink /etc/nginx/sites-enabled/default
  • Mariksa kasalahan: sudo nginx -t
  • Reboot: sudo systemctl reload nginx

Mariksa karya:

  • sudo vim /var/www/html/info.php
  • Urang nulis: <?php phpinfo();
  • Hayu urang ka <Ваш IP>/info.php

Anjeun kedah ningali sapertos kieu:

Nyebarkeun aplikasi ka Laravel 7 dina Ubuntu & Nginx

Ayeuna file ieu tiasa dihapus: sudo rm /var/www/html/info.php

Pasang 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

  • Hayu urang ka MySQL: mysql -u root -p

  • Jieun database kalawan ngaran laravel: CREATE DATABASE laravel DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

  • Urang nyadiakeun aksés root ka laravel: GRANT ALL ON laravel.* TO 'root'@'localhost' IDENTIFIED BY '<Ваш пароль от MySQL>';

  • FLUSH PRIVILEGES;

  • exit

  • cd /var/www/html

  • Jieun folder pikeun proyék: sudo mkdir -p <Имя проекта>

  • Urang nyadiakeun pamaké laravel hak pikeun proyék: sudo chown laravel:laravel <Имя проекта>

Satuluyna anjeun perlu mindahkeun proyék. Contona, kloning tina Github.

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

Éta patut mertimbangkeun yén upami anjeun henteu nyimpen file statik (contona, tina /public) dina Github, maka sacara alami anjeun moal gaduh aranjeunna. Contona, kuring dijieun thread misah pikeun ngajawab ieu deploy, ti mana kuring parantos diklon: git clone -b <имя ветки> --single-branch <ссылка на проект> ..

  • Masang dependensi: composer install
  • Jieun .env: vim .env

Versi dasarna sapertos kieu:

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>

Upami anjeun nyalin .env anjeun, ganti APP_ENV sareng produksi, APP_DEBUG sareng palsu sareng lebetkeun setélan anu leres pikeun MySQL.

  • Migrasi database: php artisan migrate
  • Ngahasilkeun kodeu: php artisan key:generate

Ngarobah idin:

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

Hal terakhir anu tinggaleun nyaéta ngonpigurasikeun Nginx pikeun 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;
    }
}

Kawas panungtungan waktu, lamun milih versi 7.3 gantina php7.4-fpm.sock nulis dina php7.4-fpm.sock.

Nyetél domain dina DigitalOcean

Sagalana sabenerna basajan pisan. Anjeun meuli domain a (dimana wae), pindah ka DigitalOcean di nyiptakeun->Domain / DNS... Di lapang Tambihkeun domain anjeun ngasupkeun domain ieu teras klik nambahkeun. Teras angkat ka setélan domain sareng ka lapangan NAMA Host asupkeun @. Pilih proyék teras klik Jieun rékaman.
Ayeuna angkat ka situs dimana anjeun mésér domain, panggihan "DNS Server" di dinya (atanapi anu sami) sareng lebetkeun server DigitalOcean (nyaéta ns1.digitalocean.com, ns2.digitalocean.com, ns3.digitalocean.com). Ayeuna anjeun kedah ngantosan sakedik (atanapi seueur) dugi ka setélan ieu ditampi. Siap!
Hiji-hijina masalah nyaéta situs anjeun ngan ukur muka salaku HTTP. Pikeun gaduh HTTPS, teraskeun kana bagian salajengna.

Nyetél HTTPS

Pasang certbot sareng lebetkeun nami domain (format mysite.ru) jeung ngaran domain kalawan 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.<Ваш домен>

Ayeuna anjeun kedah ngonpigurasikeun deui Nginx (tong hilap ngagentos nilai anjeun):

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;
    }
}

Jigana anjeun geus ngarti naon nu kudu dirobah pikeun PHP 7.3.

Di dieu, kanyataanna, sagalana basajan. Urang ngan saukur alihan sadaya pamundut ti HTTP (port 80) ka HTTPS (port 443). Tur aya urang ngalakukeun sagalana sarua jeung saméméhna, tapi kalawan enkripsi.

Sadaya anu tetep nyaéta nyetél idin dina firewall:

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

Ayeuna sagalana kudu jalan sakumaha sakuduna.

[Canggih] Masang Node.js

Lamun ujug-ujug kudu ngajalankeun paréntah npm langsung dina server, Anjeun kudu masang Node.js.

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

Tuh, kuring lirén dina tahap ieu. Sacara prinsip, kuring wareg jeung hasilna. Panginten kuring bakal ngalih ti DigitalOcean tempat anu langkung caket ka Rusia sareng langkung mirah. Tapi saprak kuring geus geus ngaliwatan sagala rounds verifikasi dina situs jeung ngalakukeun sagalana aya, Kuring némbongkeun aranjeunna ku conto. Salaku tambahan, mimitina $ 100 mangrupikeun springboard anu saé pikeun latihan.

PS Husus hatur nuhun ka pangarang intina ieu, anu dijadikeun dadasar pikeun sakabéh tindakan di luhur. Dina sababaraha kasus eta teu dianggo pikeun Laravel 7, Kuring dibereskeun eta.

PPS Upami anjeun janten insinyur top anu mikir dina paréntah bash, punten ulah nangtoskeun sacara kasar. Anjeun tiasa mendakan tulisan ieu dina tingkat anu rendah, tapi kuring bakal resep mendakanana nalika kuring peryogina. Upami aya bongbolongan pikeun perbaikan, abdi sadaya pikeun eta.

sumber: www.habr.com

Tambahkeun komentar