Nakahukom ko nga himoon ang akong portfolio gamit ang Laravel 7. Aron ang main page mahimong landing page, ug ang tanang impormasyon niini mahimong mausab gamit ang admin panel. Dili ang punto. Miabot kini sa deployment. Nakakita ako usa ka pares nga maayong mga panudlo kung giunsa kini buhaton sa usa ka hingpit nga server nga adunay tanan nga mga kasamok. Dili kaayo ko lig-on sa pag-deploy; Ako sa kasagaran labaw pa sa atubangan kay sa bug-os nga stack. Ug, kung makahimo pa ako pagsulat ug pagsulay sa PHP, unya sa wala pa magdumala sa server, ug uban pa. Wala pa ko nagdako. Apan kinahanglan nako nga masabtan kini.
Karon atong tun-an ang tanan nga mga lakang, sugod sa paglansad pinaagi sa SSH ug pagtapos sa nagtrabaho nga site. Atong paningkamutan nga malikayan ang tanan nga mga lit-ag.
Mahimo nimong makit-an ang parehas nga mga panudlo online. Human sa tanan, sa katapusan nakit-an ko kini. Tinuod, dili sa usa ka lugar, dili kung wala ang tabang sa StackOverflow, ug halos sa Russian. nag-antos ko. Mao to naka decide ko nga pasimplehon imong kinabuhi.
Buhaton namo ang tanan gamit ang usa ka tinulo sa DigitalOcean. Kini, siyempre, dili kinahanglan; pagpili sa bisan unsang pag-host. Kung nakaabot ka sa usa ka nagtrabaho nga server sa Ubuntu, balik. Alang sa mga nagdesisyon pa nga buhaton kini sa DigitalOcean, adunay daghang mga tip sa pag-set up sa usa ka domain. Ug
Ang tanang lakang nga espesipiko sa DigitalOcean ihatag sa mga footnote nga sama niini.
Magsugod na ta.
TL; DR (basic commands lang)
Paghimo og user
ssh root@[IP-Π°Π΄ΡΠ΅Ρ Π²Π°ΡΠ΅Π³ΠΎ Π΄ΡΠΎΠΏΠ»Π΅ΡΠ°]
adduser laravel
usermod -aG sudo laravel
su laravel
Idugang ang SSH niini
mkdir ~/.ssh
chmod 700 ~/.ssh
vim ~/.ssh/authorized_keys
- Isulod ang yawe sa publiko
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/<ΠΠ°Ρ Π΄ΠΎΠΌΠ΅Π½>
Basic setup:
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;
}
}
Lamang ang HTTP setup para sa 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;
}
}
HTTPS setting para sa 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
Paghimo og tinulo sa DigitalOcean ug magparehistro og bag-ong SSH key
Nagtuo gyud ko nga mahibal-an nimo kung giunsa ang pagparehistro sa DigitalOcean sa imong kaugalingon. Dili kini sayon, nga adunay daghang mga pag-verify ug uban pang mga butang. Kung kanunay ka nga makakuha usa ka sayup sa network kung mag-verify gamit ang mga dokumento, sulayi pagbuhat ang tanan pinaagi sa usa ka VPN, kinahanglan kini makatabang.
Sa menu sa ibabaw, i-klik Paghimo->Mga tulo. Pilia Ubuntu.
Sa diha nga ikaw magparehistro, makadawat ka og $100 sa imong account. Pero ayawg palimbong. Aduna ka lang 60 ka adlaw sa paggasto niini. Ug kini gamay ra kaayo. Mahimo nimo, sama kanako, gusto nga mogamit usa ka labi ka mahal nga plano, aron sa ulahi, kung ang tinuud nga salapi magsugod sa pagdagayday, mahimo ka magbalhin sa usa nga mas barato. Sultihan ko ikaw dayon nga dili kini molihok. Mahimo nimo kini dugangan, apan dili nimo kini mapakunhod. Mao nga kini moadto. pilion ko Standard->$5.
Gipili nako ang rehiyon nga labing duol kanamo Frankfurt. VPC Network->default-fra1
Ipahigayon dayon namo ang authentication pinaagi sa SSH. Pag-klik Bag-ong SSH Key. Kung wala kay SSH, adunay yano nga mga panudlo sa tuo. Ablihi ang bash terminal ug i-paste
ssh-keygen
. Dayon moadto kami sa file gamit ang public key/Users/<ΠΠ°ΡΠ΅ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ>/.ssh/id_rsa.pub
(o yanocat ~/.ssh/id_rsa.pub
), kopyaha ang mga sulod ug idikit kini sa bintana sa wala. Bisan unsa nga ngalan.Naghimo kami og hostname alang sa droplet.
I-klik dinhi Paghimo Droplet
Paghimo og bag-ong user
ssh root@[IP-Π°Π΄ΡΠ΅Ρ Π²Π°ΡΠ΅Π³ΠΎ Π΄ΡΠΎΠΏΠ»Π΅ΡΠ°]
- Sigurado ka ba nga gusto nimong ipadayon ang pagkonektar (oo/dili/[fingerprint])?
yes
- Pagsulod sa imong SSH password
- Paghimo og user laravel:
adduser laravel
- Pagsulod sa imong password ug uban pang impormasyon (gisulod ra nako ang Tibuok Ngalan)
- Idugang ang user sa sudo nga grupo:
usermod -aG sudo laravel
SSH para sa bag-ong user
- Pagbalhin sa bag-ong tiggamit:
su laravel
Gihimo namon ang tanan nga mga aksyon nga labi pa, hangtod sa katapusan sa artikulo, alang sa tiggamit sa laravel. Busa, kung kalit ka nga nabalda, pag-login pag-usab ug pagsulod su laravel
mkdir ~/.ssh
chmod 700 ~/.ssh
vim ~/.ssh/authorized_keys
Giablihan namo ang file sa Vim. Kung dili ka pamilyar niini, mahimo ka magtrabaho sa Nano, imong katungod.
Ang labing sukaranan nga mga sugo sa Vim
Aron magamit ang editor sa Vim sa tibuuk nga artikulo, kinahanglan nimo mahibal-an ang mosunod.
- Ang Vim adunay lain-laing mga mode: Normal mode, diin ikaw mosulod sa mga sugo ug mopili sa mga mode ug uban pa.
- Aron makagawas sa bisan unsang mode ug mobalik sa normal nga mode, pindota lang
Esc
- Lihok sa palibot: mahimo nimong gamiton ang mga pana
- Paggawas nga walay pagtipig
<Normal mode>
::q!
- Exit ug save
<Normal mode>
::wq
- Pagbalhin ngadto sa text input mode
<Normal mode>
:i
(gikan sa English. ipilit)
- Gisulod namo ang among public key (nga among gibuhat sa ibabaw)
- Kami nanalipod batok sa mga pagbag-o:
chmod 600 ~/.ssh/authorized_keys
Pag-instalar og firewall
- Atong tan-awon ang tanan nga magamit nga mga setting:
sudo ufw app list
- Tugoti ang OpenSSH (kon dili kini maka-lock kanamo):
sudo ufw allow OpenSSH
- Atong ilunsad ang firewall:
sudo ufw enable
,y
- Pagsusi:
sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Maayo ra ang tanan.
Pag-instalar sa Nginx
Atol sa pag-instalar usahay pangutan-on ka "Sigurado ka ba?" Tubag y
(Aw, kung sigurado ka).
sudo apt update
sudo apt install nginx
Pagdugang Nginx sa mga setting sa 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)
Adto sa imong IP. Kung maayo ang tanan, kinahanglan nimo nga makita ang mosunod.
Pag-instalar sa MySQL
sudo apt install mysql-server
- Paglunsad sa usa ka awtomatikong proteksyon script
sudo mysql_secure_installation
Tubaga ang mga pangutana nga gipangutana. Kung wala ka mahibal-an kung unsa ang itubag, ania ang pipila nga gisugyot nga mga kapilian:
-
I-validate ang plugin sa password -
N
-
Kuhaa ang anonymous nga tiggamit? β
Y
-
Dili tugotan ang root login sa layo? β
N
-
Kuhaa ang database sa pagsulay ug pag-access niini? β
N
-
I-reload ang mga privilege table karon? β
Y
-
Adto ta sa MySQL:
sudo mysql
-
Atong tan-awon ang mga paagi sa pag-access:
SELECT user,authentication_string,plugin,host FROM mysql.user;
-
Paghimo og password alang sa gamut:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<ΠΠ°Ρ ΠΏΠ°ΡΠΎΠ»Ρ Π΄Π»Ρ MySQL>';
-
Atong tan-awon pag-usab ang mga paagi sa pag-access:
SELECT user,authentication_string,plugin,host FROM mysql.user;
-
Ibutang ang mga pagbag-o ug paggawas sa MySQL:
FLUSH PRIVILEGES;
ΠΈexit
-
Karon, aron maka-log in sa MySQL kinahanglan nimo gamiton
mysql -u root -p
ug isulod ang password
Pag-instalar sa PHP
Gamiton nato ang usa ka third-party nga repository gikan sa
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
Karon pilion ta. Para sa Laravel 7, mahimo nimong pilion ang PHP 7.3 o 7.4. Ang bugtong kalainan anaa sa mga numero 3 ug 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
Ang PHP FastCGI Process Manager (fpm) nagtrabaho sa mga hangyo sa PHP. mysql, siyempre, alang sa pagtrabaho uban sa MySQL.
Sukad karon buhaton nako ang tanan sa 7.4.
Pag-set up sa Nginx
sudo vim /etc/nginx/sites-available/<ΠΠ°Ρ Π΄ΠΎΠΌΠ΅Π½>
Imbes nga "<Your domain>" isulod ang domain (pananglitan, mysite.ru
) nga gusto nimong gamiton sa umaabot. Kung wala ka pa, pagsulat og bisan unsa, unya balika lang ang mga lakang niini nga kapitulo alang sa imong domain kung imong pilion kini.
Pagsulod sa mosunod:
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;
}
}
Kung gipili nimo ang bersyon 7.3 sa baylo php7.4-fpm.sock
pagsulod php7.4-fpm.sock
.
Paminaw sa port 80 sa server_name
inig abot namo sa root request /var/www/html
kuhaa ang index file. Kung pagkahuman server_name
Adunay usa ka butang, kami nangita alang sa ingon nga file. Kung dili namo kini makit-an, among ilabay ang 404. Kung kini matapos sa .php
, dagan sa fpm
... Kung naa .ht
, nagdili (403).
- Paghimo og link gikan sa
sites-available
Π²sites-enabled
:sudo ln -s /etc/nginx/sites-available/<ΠΠ°Ρ Π΄ΠΎΠΌΠ΅Π½> /etc/nginx/sites-enabled/
- Pagtangtang sa link sa
default
:sudo unlink /etc/nginx/sites-enabled/default
- Pagsusi sa mga sayop:
sudo nginx -t
- Pag-reboot:
sudo systemctl reload nginx
Pagsusi sa trabaho:
sudo vim /var/www/html/info.php
- Gisulat namo:
<?php phpinfo();
- Adto ta sa
<ΠΠ°Ρ IP>/info.php
Kinahanglan nimong makita ang usa ka butang nga sama niini:
Karon kini nga file mahimong mapapas: sudo rm /var/www/html/info.php
I-install ang 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
-
Adto ta sa MySQL:
mysql -u root -p
-
Paghimo usa ka database nga adunay ngalan laravel:
CREATE DATABASE laravel DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
-
Naghatag kami og root access sa laravel:
GRANT ALL ON laravel.* TO 'root'@'localhost' IDENTIFIED BY '<ΠΠ°Ρ ΠΏΠ°ΡΠΎΠ»Ρ ΠΎΡ MySQL>';
-
FLUSH PRIVILEGES;
-
exit
-
cd /var/www/html
-
Paghimo og folder alang sa proyekto:
sudo mkdir -p <ΠΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°>
-
Gihatag namon ang tiggamit laravel katungod sa proyekto:
sudo chown laravel:laravel <ΠΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°>
Sunod kinahanglan nimo nga ibalhin ang proyekto. Pananglitan, ang pag-clone gikan sa Github.
cd ./<ΠΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°>
git clone <ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡ> .
Angayan nga hunahunaon nga kung wala nimo gitipig ang mga static nga file (pananglitan, gikan sa /public
) sa Github, nan natural nga wala ka niini. Pananglitan, naghimo ako usa ka lahi nga hilo aron masulbad kini deploy
, diin na-clone na nako: git clone -b <ΠΈΠΌΡ Π²Π΅ΡΠΊΠΈ> --single-branch <ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡ> .
.
- Pag-instalar sa mga dependency:
composer install
- Paghimo .env:
vim .env
Ang sukaranan nga bersyon niini ingon niini:
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>
Kung kopyahon nimo ang imong .env, ilisan ang APP_ENV sa produksiyon, APP_DEBUG og false ug isulod ang hustong setting para sa MySQL.
- Pagbalhin sa database:
php artisan migrate
- Paghimo sa code:
php artisan key:generate
Pag-ilis sa mga permiso:
sudo chown -R $USER:www-data storage
sudo chown -R $USER:www-data bootstrap/cache
chmod -R 775 storage
chmod -R 775 bootstrap/cache
Ang katapusan nga butang nga nahabilin mao ang pag-reconfigure sa Nginx alang sa 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;
}
}
Sama sa miaging higayon, kung gipili nimo ang bersyon 7.3 sa baylo php7.4-fpm.sock
pagsulod php7.4-fpm.sock
.
Pagbutang ug domain sa DigitalOcean
Ang tanan sa pagkatinuod yano kaayo. Mopalit ka og domain (bisan asa), switch sa DigitalOcean sa Paghimo->Mga domain/DNS... Sa uma Pagdugang og domain mosulod ka niini nga domain ug i-klik ang pagdugang. Dayon adto sa mga setting sa domain ug sa field NGALAN sa HOST pagsulod @. Pagpili og proyekto ug pag-klik Paghimo og rekord.
Karon adto sa site diin imong gipalit ang domain, pangitaa ang "DNS Servers" didto (o usa ka butang nga susama) ug pagsulod sa mga server sa DigitalOcean (nga maons1.digitalocean.com
,ns2.digitalocean.com
,ns3.digitalocean.com
). Karon kinahanglan ka maghulat gamay (o daghan) hangtod kini nga mga setting madawat. Andam na!
Ang bugtong problema mao nga ang imong site magbukas lamang isip HTTP. Aron adunay HTTPS, ipadayon ang sunod nga bahin.
Pag-set up sa HTTPS
I-install ang certbot ug ipasa ang domain name (format mysite.ru
) ug domain name nga adunay 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.<ΠΠ°Ρ Π΄ΠΎΠΌΠ΅Π½>
Karon kinahanglan nimo nga i-reconfigure ang Nginx (ayaw kalimti nga ilisan ang imong mga kantidad):
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;
}
}
Sa akong hunahuna nahibal-an na nimo kung unsa ang kinahanglan usbon para sa PHP 7.3.
Dinhi, sa tinuud, ang tanan yano ra. Gi-redirect lang namo ang tanang hangyo gikan sa HTTP (port 80) ngadto sa HTTPS (port 443). Ug didto gibuhat namo ang tanan sama sa kaniadto, apan sa pag-encrypt.
Ang nahabilin mao ang pagbutang sa mga pagtugot sa firewall:
sudo nginx -t
sudo ufw app list
sudo ufw allow 'Nginx HTTPS'
sudo ufw status
sudo systemctl reload nginx
Karon ang tanan kinahanglan nga molihok ingon nga kini kinahanglan.
[Advanced] Pag-instalar sa Node.js
Kung kalit nga kinahanglan nimo nga ipadagan ang mga npm command direkta sa server, kinahanglan nimo nga i-install ang Node.js.
sudo apt update
sudo apt install -y nodejs npm
nodejs -v
Mao to, nihunong ko ato nga stage. Sa prinsipyo, kontento ko sa resulta. Tingali mobalhin ko gikan sa DigitalOcean sa usa ka lugar nga mas duol sa Russia ug mas barato. Apan tungod kay naagian na nako ang tanan nga mga hugna sa pag-verify sa site ug gibuhat ang tanan didto, gipakita nako sila pinaagi sa panig-ingnan. Dugang pa, ang ilang pagsugod sa $100 usa ka maayo kaayo nga springboard alang sa pagbansay.
PS Espesyal nga salamat sa tagsulat
PPS Kung ikaw usa ka taas nga inhenyero nga naghunahuna sa mga mando sa bash, palihug ayaw paghukom nga mapintas. Mahimong makit-an nimo kini nga artikulo nga ubos ang lebel, apan nalipay ako nga makapangita usa kung kinahanglan nako kini. Kung adunay mga sugyot alang sa pagpauswag, ako tanan alang niini.
Source: www.habr.com