Nyebarake aplikasi menyang Laravel 7 ing Ubuntu & Nginx

Nyebarake aplikasi menyang Laravel 7 ing Ubuntu & Nginx

Aku mutusake kanggo nggawe portofolio nggunakake Laravel 7. Supaya kaca utama dadi kaca kebangkrutan, lan kabeh informasi babagan iki bisa diganti nggunakake panel admin. Ora titik. Iku teka kanggo penyebaran. Aku nemokake sawetara tutorial sing apik babagan carane nindakake iki ing server lengkap kanthi kabeh masalah. Aku ora kuwat banget ing panyebaran; Aku umume luwih ngarep tinimbang tumpukan lengkap. Lan, yen aku isih bisa nulis lan nyoba ing PHP, banjur sadurunge ngatur server, etc. Aku durung gedhe. Nanging aku kudu ngerteni.

Saiki kita bakal ngliwati kabeh langkah, diwiwiti kanthi diluncurake liwat SSH lan diakhiri karo situs kerja. Kita bakal nyoba supaya kabeh pitfalls.

Sampeyan bisa uga bisa nemokake instruksi sing padha online. Sawise kabeh, aku ketemu. Bener, ora ing sak panggonan, ora tanpa bantuan saka StackOverflow, lan meh ora ing basa Rusia. Aku nandhang sangsara. Mulane aku mutusake kanggo nyederhanakake uripmu.

Kita bakal nindakake kabeh kanthi droplet ing DigitalOcean. Iki, mesthi, ora perlu; pilih hosting apa wae. Nalika sampeyan tekan server sing digunakake ing Ubuntu, bali. Kanggo sing isih mutusake kanggo nindakake ing DigitalOcean, bakal ana tips liyane babagan nyetel domain. lan $100 ngubungake link.

Kabeh langkah khusus DigitalOcean bakal diwenehi ing cathetan kaki kaya iki.

Ayo miwiti.

TL; DR (mung printah dhasar)

Nggawe pangguna

  • ssh root@[IP-адрСс вашСго Π΄Ρ€ΠΎΠΏΠ»Π΅Ρ‚Π°]
  • adduser laravel
  • usermod -aG sudo laravel
  • su laravel

Tambah SSH menyang

  • mkdir ~/.ssh
  • chmod 700 ~/.ssh
  • vim ~/.ssh/authorized_keys
  • Lebokake kunci 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/<Π’Π°Ρˆ Π΄ΠΎΠΌΠ΅Π½>

Setelan dhasar:

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

Mung persiyapan HTTP kanggo 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;
    }
}

Setelan HTTPS kanggo 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

Gawe droplet ing DigitalOcean lan ndhaptar kunci SSH anyar

Aku pancen percaya yen sampeyan bakal ngerti carane ndhaptar DigitalOcean dhewe. Ora gampang, kanthi akeh verifikasi lan liya-liyane. Yen sampeyan terus-terusan ngalami kesalahan jaringan nalika verifikasi nggunakake dokumen, coba tindakake kabeh liwat VPN, mesthine bisa mbantu.

Ing menu ing sisih ndhuwur, klik nggawe->Tetes. milih ubuntu.

Sanalika sampeyan ndhaptar, sampeyan bakal nampa $100 menyang akun. Nanging aja nganti kesasar. Sampeyan mung duwe 60 dina kanggo nglampahi. Lan iki sithik banget. Sampeyan bisa uga, kaya aku, pengin nggunakake rencana sing luwih larang, supaya mengko, nalika dhuwit nyata wiwit mili, sampeyan bisa ngalih menyang sing luwih murah. Aku bakal ngomong langsung yen ora bakal bisa. Sampeyan bisa nambah, nanging ora bisa nyuda. Dadi dadi. Aku milih Standard->$5.

Aku milih wilayah sing paling cedhak karo kita Frankfurt. Jaringan VPC->gawan-fra1

Kita bakal langsung nindakake otentikasi liwat SSH. Klik Kunci SSH anyar. Yen sampeyan ora duwe SSH, ana instruksi sing gampang banget ing sisih tengen. Bukak terminal bash lan tempel ssh-keygen. Banjur pindhah menyang file kanthi kunci umum /Users/<Π’Π°ΡˆΠ΅ имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ>/.ssh/id_rsa.pub (utawa kanthi gampang cat ~/.ssh/id_rsa.pub), nyalin isi lan tempel menyang jendhela ing sisih kiwa. Sembarang jeneng.

Kita teka karo jeneng host kanggo droplet.

Tekan Nggawe Droplet

Nggawe pangguna anyar

  • ssh root@[IP-адрСс вашСго Π΄Ρ€ΠΎΠΏΠ»Π΅Ρ‚Π°]
  • Apa sampeyan yakin arep terus nyambung (ya/ora/[sidik jari])? yes
  • Ketik sandhi SSH sampeyan
  • Nggawe pangguna laravel: adduser laravel
  • Ketik sandhi lan informasi liyane (aku mung ngetik Jeneng Lengkap)
  • Tambah pangguna menyang grup sudo: usermod -aG sudo laravel

SSH kanggo pangguna anyar

  • Ngalih menyang pangguna anyar: su laravel

Kita nindakake kabeh tumindak luwih lanjut, nganti pungkasan artikel, atas jenenge pangguna laravel. Mulane, yen sampeyan tiba-tiba diselani, login maneh lan ketik su laravel

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

Kita mbukak file ing Vim. Yen sampeyan ora ngerti kabeh, sampeyan bisa kerja ing Nano, tengen.

Perintah Vim paling dhasar

Kanggo nggunakake editor Vim ing saindhenging artikel, sampeyan mung kudu ngerti ing ngisor iki.

  • Vim duwe macem-macem mode: Mode normal, ing ngendi sampeyan ngetik printah lan milih mode lan liya-liyane.
  • Kanggo metu saka mode apa wae lan bali menyang mode normal, mung pencet Esc
  • Ngalih: sampeyan mung bisa nggunakake panah
  • Metu tanpa nyimpen <Normal mode>: :q!
  • Metu lan nyimpen <Normal mode>: :wq
  • Ngalih menyang mode input teks <Normal mode>: i (saka basa Inggris. insert)
  • Kita nglebokake kunci umum (sing ditindakake ing ndhuwur)
  • Kita nglindhungi saka owah-owahan: chmod 600 ~/.ssh/authorized_keys

Nginstal firewall

  • Ayo ndeleng kabeh setelan sing kasedhiya: sudo ufw app list
  • Allow OpenSSH (yen ora bakal ngunci kita): sudo ufw allow OpenSSH
  • Ayo miwiti firewall: sudo ufw enable, y
  • Priksa: sudo ufw status

Status: active

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

Kabeh apik.

Nginstal Nginx

Sajrone instalasi sampeyan bakal sok-sok takon "Apa sampeyan yakin?" Wangsulan y (Inggih, mung yen sampeyan yakin).

  • sudo apt update
  • sudo apt install nginx

Nambahake Nginx menyang setelan 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)

Pindhah menyang IP sampeyan. Yen kabeh dadi apik, sampeyan kudu ndeleng ing ngisor iki.

Nyebarake aplikasi menyang Laravel 7 ing Ubuntu & Nginx

Nginstal MySQL

  • sudo apt install mysql-server
  • Miwiti skrip perlindungan otomatis sudo mysql_secure_installation

Wangsulana pitakon-pitakon. Yen sampeyan ora ngerti apa sing kudu dijawab, ana sawetara opsi sing disaranake:

  • Validasi sandhi plugin - N

  • Mbusak pangguna anonim? β€” Y

  • Larang login root saka jarak jauh? β€” N

  • Mbusak database test lan akses menyang? β€” N

  • Muat maneh tabel hak istimewa saiki? β€” Y

  • Ayo menyang MySQL: sudo mysql

  • Ayo ndeleng cara akses: SELECT user,authentication_string,plugin,host FROM mysql.user;

  • Setel sandhi kanggo root: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<Π’Π°Ρˆ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ для MySQL>';

  • Ayo ndeleng maneh cara akses: SELECT user,authentication_string,plugin,host FROM mysql.user;

  • Gunakake owah-owahan lan metu saka MySQL: FLUSH PRIVILEGES; ΠΈ exit

  • Saiki, kanggo mlebu menyang MySQL sampeyan kudu nggunakake mysql -u root -p lan ketik sandhi

Nginstal PHP

Ayo nggunakake repositori pihak katelu saka 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

Saiki ayo milih. Kanggo Laravel 7, sampeyan bisa milih PHP 7.3 utawa 7.4. Bentenipun mung ing nomer 3 lan 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) dianggo karo panjalukan PHP. mysql, mesthi, kanggo nggarap MySQL.

Wiwit saiki aku bakal nindakake kabeh ing 7.4.

Nyetel Nginx

  • sudo vim /etc/nginx/sites-available/<Π’Π°Ρˆ Π΄ΠΎΠΌΠ΅Π½>

Tinimbang "<Domain sampeyan>" ketik domain (contone, mysite.ru) sing pengin digunakake ing mangsa ngarep. Yen sampeyan durung duwe, tulis wae, banjur baleni langkah-langkah ing bab iki kanggo domain nalika sampeyan milih.

Ketik ing ngisor iki:

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

Yen sampeyan milih versi 7.3 tinimbang php7.4-fpm.sock mlebu php7.4-fpm.sock.

Rungokake port 80 ing server_namenalika kita teka ing request ROOT /var/www/html njupuk file indeks. Yen sawise server_name Ana sing, kita nggoleki file kasebut. Yen kita ora nemokake iku, kita uncalan metu 404. Yen ends karo .php, mlayu liwat fpm... Yen ana .ht, nglarang (403).

  • Nggawe link saka sites-available Π² sites-enabled: sudo ln -s /etc/nginx/sites-available/<Π’Π°Ρˆ Π΄ΠΎΠΌΠ΅Π½> /etc/nginx/sites-enabled/
  • Mbusak link menyang default: sudo unlink /etc/nginx/sites-enabled/default
  • Priksa kesalahan: sudo nginx -t
  • Urip maneh: sudo systemctl reload nginx

Priksa karya:

  • sudo vim /var/www/html/info.php
  • Kita nulis: <?php phpinfo();
  • Ayo menyang <Π’Π°Ρˆ IP>/info.php

Sampeyan kudu ndeleng kaya iki:

Nyebarake aplikasi menyang Laravel 7 ing Ubuntu & Nginx

Saiki file iki bisa dibusak: sudo rm /var/www/html/info.php

Instal 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

  • Ayo menyang MySQL: mysql -u root -p

  • Nggawe database kanthi jeneng laravel: CREATE DATABASE laravel DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

  • We nyedhiyani akses ROOT kanggo laravel: GRANT ALL ON laravel.* TO 'root'@'localhost' IDENTIFIED BY '<Π’Π°Ρˆ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΎΡ‚ MySQL>';

  • FLUSH PRIVILEGES;

  • exit

  • cd /var/www/html

  • Nggawe folder kanggo proyek kasebut: sudo mkdir -p <Имя ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°>

  • We nyedhiyani pangguna laravel hak kanggo proyek: sudo chown laravel:laravel <Имя ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°>

Sabanjure sampeyan kudu nransfer project. Contone, kloning saka Github.

  • cd ./<Имя ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°>
  • git clone <ссылка Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚> .

Iku worth considering yen sampeyan ora nyimpen file statis (contone, saka /public) ing Github, mula sampeyan ora bakal duwe. Contone, aku nggawe thread kapisah kanggo ngatasi iki deploy, sing wis dakkloning: git clone -b <имя Π²Π΅Ρ‚ΠΊΠΈ> --single-branch <ссылка Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚> ..

  • Nginstal dependensi: composer install
  • Nggawe .env: vim .env

Versi dhasar katon kaya iki:

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>

Yen sampeyan nyalin .env, ganti APP_ENV karo produksi, APP_DEBUG karo palsu lan ketik setelan sing bener kanggo MySQL.

  • Migrasi database: php artisan migrate
  • Nggawe kode: php artisan key:generate

Ngganti ijin:

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

Sing terakhir yaiku konfigurasi ulang Nginx kanggo 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;
    }
}

Kaya pungkasan, yen sampeyan milih versi 7.3 tinimbang php7.4-fpm.sock mlebu php7.4-fpm.sock.

Nggawe domain ing DigitalOcean

Kabeh iku bener banget prasaja. Sampeyan tuku domain (ngendi wae), ngalih menyang DigitalOcean ing nggawe->Domain / DNS... Ing lapangan Tambah domain sampeyan ngetik domain iki banjur klik nambah. Banjur pindhah menyang setelan domain lan menyang lapangan Jeneng host mlebu @. Pilih proyek banjur klik Nggawe rekaman.
Saiki pindhah menyang situs sing sampeyan tuku domain kasebut, golek "Server DNS" ing kana (utawa sing padha) lan ketik server DigitalOcean (yaiku ns1.digitalocean.com, ns2.digitalocean.com, ns3.digitalocean.com). Saiki sampeyan kudu ngenteni sethithik (utawa akeh) nganti setelan kasebut ditampa. siyap!
Masalah mung yaiku situs sampeyan bakal mbukak mung minangka HTTP. Kanggo duwe HTTPS, pindhah menyang bagean sabanjure.

Nyetel HTTPS

Instal certbot lan pass jeneng domain (format mysite.ru) lan jeneng domain nganggo 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.<Π’Π°Ρˆ Π΄ΠΎΠΌΠ΅Π½>

Saiki sampeyan kudu ngonfigurasi ulang Nginx (aja lali ngganti nilai sampeyan):

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

Aku sampeyan wis ngerti apa sing kudu diganti kanggo PHP 7.3.

Kene, ing kasunyatan, kabeh iku prasaja. Kita mung ngarahake kabeh panjalukan saka HTTP (port 80) menyang HTTPS (port 443). Lan ing kana kita nindakake kabeh padha kaya sadurunge, nanging kanthi enkripsi.

Kabeh sing isih ana yaiku nyetel ijin ing firewall:

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

Saiki kabeh kudu kerja kaya sing dikarepake.

[Lanjutan] Nginstal Node.js

Yen dumadakan sampeyan kudu mbukak printah npm langsung ing server, sampeyan kudu nginstal Node.js.

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

Ya wis, aku mandheg ing tahap iki. Ing asas, aku wareg karo asil. Mungkin aku bakal ngalih saka DigitalOcean nang endi wae sing luwih cedhak karo Rusia lan luwih murah. Nanging amarga aku wis ngliwati kabeh babak verifikasi ing situs kasebut lan nindakake kabeh ing kana, aku nuduhake kanthi conto. Kajaba iku, wiwitan $ 100 minangka springboard sing apik kanggo latihan.

PS Matur nuwun khusus kanggo penulis inti iki, sing dadi dhasar kanggo kabeh tumindak ing ndhuwur. Ing sawetara kasus ora bisa digunakake kanggo Laravel 7, aku ndandani.

PPS Yen sampeyan dadi insinyur top sing mikir babagan perintah bash, aja ngadili kanthi kasar. Sampeyan bisa uga nemokake artikel iki minangka standar sing kurang, nanging aku bakal seneng nemokake yen aku butuh. Yen ana saran kanggo perbaikan, aku kabeh.

Source: www.habr.com

Add a comment