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
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 gampangcat ~/.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.
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
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_name
nalika 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:
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 (yaikuns1.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
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