เชฎเซเช เชฒเชพเชฐเชพเชตเซเชฒ 7 เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชฎเชพเชฐเซ เชชเซเชฐเซเชเชซเซเชฒเชฟเชฏเซ เชฌเชจเชพเชตเชตเชพเชจเซเช เชจเชเซเชเซ เชเชฐเซเชฏเซเช. เชเซเชฅเซ เชฎเซเชเซเชฏ เชชเซเชทเซเช เชเช เชฒเซเชจเซเชกเชฟเชเช เชชเซเชทเซเช เชนเชถเซ, เช เชจเซ เชคเซเชจเชพ เชชเชฐเชจเซ เชฌเชงเซ เชฎเชพเชนเชฟเชคเซ เชเชกเชฎเชฟเชจ เชชเซเชจเชฒเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชฌเชฆเชฒเซ เชถเชเชพเชฏ เชเซ. เชฌเชฟเชเชฆเซ เชจเชฅเซ. เชคเซ เชเชฎเชพเชตเช เชฎเชพเชเซ เชเชตเซเชฏเซ เชนเชคเซ. เชฎเชจเซ เชฌเชงเซ เชฎเซเชถเซเชเซเชฒเซเช เชธเชพเชฅเซ เชธเชเชชเซเชฐเซเชฃ เชธเซเชตเชฟเชงเชพเชฏเซเชเซเชค เชธเชฐเซเชตเชฐ เชชเชฐ เช เชเซเชตเซ เชฐเซเชคเซ เชเชฐเชตเซเช เชคเซ เช เชเชเซเชจเชพ เชเซเชเชฒเชพเช เชธเชพเชฐเชพ เชเซเชฏเซเชเซเชฐเชฟเชฏเชฒเซเชธ เชฎเชณเซเชฏเชพ. เชนเซเช เชเชฎเชพเชตเชเชฎเชพเช เชเซเชฌ เชฎเชเชฌเซเชค เชจเชฅเซ; เชนเซเช เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ เชธเชเชชเซเชฐเซเชฃ เชธเซเชเซเช เชเชฐเชคเชพเช เชตเชงเซ เชเชเชณ เชเซเช. เช เชจเซ, เชเซ เชนเซเช เชนเชเซ เชชเชฃ PHP เชฎเชพเช เชฒเชเซ เช เชจเซ เชชเชฐเซเชเซเชทเชฃ เชเชฐเซ เชถเชเซเช เชเซเช, เชคเซ เชธเชฐเซเชตเชฐเชจเซเช เชธเชเชเชพเชฒเชจ เชเชฐเชคเชพ เชชเชนเซเชฒเชพ, เชตเชเซเชฐเซ. เชนเซเช เชนเชเซ เชฎเซเชเซ เชฅเชฏเซ เชจเชฅเซ. เชชเชฐเชเชคเซ เชฎเชพเชฐเซ เชคเซ เชฌเชนเชพเชฐ เชเชพเชขเชตเซเช โโโโเชนเชคเซเช.
ะกะตะนัะฐั ะฟัะพะนะดะตะผัั ะฟะพ ะฒัะตะผ ัะฐะณะฐะผ, ะฝะฐัะธะฝะฐั ั ะทะฐะฟััะบะฐ ัะตัะตะท SSH ะธ ะทะฐะบะฐะฝัะธะฒะฐั ัะฐะฑะพัะธะผ ัะฐะนัะพะผ. ะะพััะฐัะฐะตะผัั ะพะฑะพะนัะธ ะฒัะต ะฟะพะดะฒะพะดะฝัะต ะบะฐะผะฝะธ.
เชคเชฎเซ เชเชจเชฒเชพเชเชจ เชธเชฎเชพเชจ เชธเซเชเชจเชพเช เชถเซเชงเซ เชถเชเชถเซ. เชเซเชตเชเซ, เชฎเชจเซ เชคเซ เชฎเชณเซ เชเชฏเซเช. เชธเชพเชเซเช, เชเช เชเชเซเชฏเชพเช เชจเชนเซเช, เชธเซเชเซเชเชเชตเชฐเชซเซเชฒเซเชจเซ เชฎเชฆเชฆ เชตเชฟเชจเชพ เชจเชนเซเช, เช เชจเซ เชญเชพเชเซเชฏเซ เช เชฐเชถเชฟเชฏเชจเชฎเชพเช. เชฎเซเช เชธเชนเชจ เชเชฐเซเชฏเซเช. เชคเซเชฅเซ เช เชฎเซเช เชคเชฎเชพเชฐเซเช เชเซเชตเชจ เชธเชฐเชณ เชฌเชจเชพเชตเชตเชพเชจเซเช เชจเชเซเชเซ เชเชฐเซเชฏเซเช เชเซ.
เช
เชฎเซ DigitalOcean เชชเชฐ เชเช เชเซเชชเซเช เชธเชพเชฅเซ เชฌเชงเซเช เชเชฐเซเชถเซเช. เช, เช
เชฒเชฌเชคเซเชค, เชเชฐเซเชฐเซ เชจเชฅเซ; เชเซเชเชชเชฃ เชนเซเชธเซเชเชฟเชเช เชชเชธเชเชฆ เชเชฐเซ. เชเซเชฏเชพเชฐเซ เชคเชฎเซ เชเชฌเซเชจเซเชเซ เชชเชฐ เชเชพเชฐเซเชฏเชฐเชค เชธเชฐเซเชตเชฐ เชชเชฐ เชชเชนเซเชเชเซ, เชคเซเชฏเชพเชฐเซ เชชเชพเชเชพ เชเชตเซ. เชเซเช เชนเชเซ เชชเชฃ DigitalOcean เชชเชฐ เชเชฐเชตเชพเชจเซเช เชจเชเซเชเซ เชเชฐเซ เชเซ, เชคเซเชฎเชจเชพ เชฎเชพเชเซ เชกเซเชฎเซเชจ เชธเซเช เชเชฐเชตเชพ เชฎเชพเชเซ เชตเชงเซ เชเชฟเชชเซเชธ เชนเชถเซ. เช
เชจเซ
เชคเชฎเชพเชฎ DigitalOcean-เชตเชฟเชถเชฟเชทเซเช เชชเชเชฒเชพเช เชเชจเชพ เชเซเชตเซ เชซเซเชเชจเซเชเซเชธเชฎเชพเช เชเชชเชตเชพเชฎเชพเช เชเชตเชถเซ.
เชเชพเชฒเซ เชถเชฐเซ เชเชฐเซเช.
TL;DR (เชฎเชพเชคเซเชฐ เชฎเซเชณเชญเซเชค เชเชฆเซเชถเซ)
เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชฌเชจเชพเชตเซ
ssh root@[IP-ะฐะดัะตั ะฒะฐัะตะณะพ ะดัะพะฟะปะตัะฐ]
adduser laravel
usermod -aG sudo laravel
su laravel
เชคเซเชฎเชพเช SSH เชเชฎเซเชฐเซ
mkdir ~/.ssh
chmod 700 ~/.ssh
vim ~/.ssh/authorized_keys
- เชธเชพเชฐเซเชตเชเชจเชฟเช เชเซ เชฆเชพเชเชฒ เชเชฐเซ
chmod 600 ~/.ssh/authorized_keys
เชซเชพเชฏเชฐเชตเซเชฒ
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/<ะะฐั ะดะพะผะตะฝ>
เชฎเซเชณเชญเซเชค เชธเซเชเช เชช:
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;
}
}
Laravel เชฎเชพเชเซ เชฎเชพเชคเซเชฐ HTTP เชธเซเชเช เชช:
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;
}
}
Laravel เชฎเชพเชเซ HTTPS เชธเซเชเชฟเชเช:
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
DigitalOcean เชชเชฐ เชเช เชเซเชชเซเช เชฌเชจเชพเชตเซ เช เชจเซ เชจเชตเซ SSH เชเซ เชฐเชเซเชธเซเชเชฐ เชเชฐเซ
เชนเซเช เชเชฐเซเชเชฐ เชฎเชพเชจเซเช เชเซเช เชเซ เชคเชฎเซ เชเชพเชคเซ เช DigitalOcean เชธเชพเชฅเซ เชเซเชตเซ เชฐเซเชคเซ เชจเซเชเชงเชฃเซ เชเชฐเชตเซ เชคเซ เชธเชฎเชเซ เชถเชเชถเซ. เชเชฃเซ เชฌเชงเซ เชเชเชพเชธเชฃเซเช เช เชจเซ เช เชจเซเชฏ เชตเชธเซเชคเซเช เชธเชพเชฅเซ เชคเซ เชธเชฐเชณ เชจเชฅเซ. เชเซ เชฆเชธเซเชคเชพเชตเซเชเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเชเชพเชธเชฃเซ เชเชฐเชคเซ เชตเชเชคเซ เชคเชฎเชจเซ เชธเชคเชค เชจเซเชเชตเชฐเซเช เชญเซเชฒ เชเชตเซ เชเซ, เชคเซ VPN เชฆเซเชตเชพเชฐเชพ เชฌเชงเซเช เชเชฐเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซ, เชคเซ เชฎเชฆเชฆ เชเชฐเชถเซ.
เชเซเช เชชเชฐเชจเชพ เชฎเซเชจเซเชฎเชพเช, เชเซเชฒเชฟเช เชเชฐเซ เชฌเชจเชพเชตเซ->เชเซเชชเชพเช. เชชเชธเชเชฆ เชเชฐเซ เชเชฌเซเชจเซเชเซ.
เชเชฒเชฆเซ เชคเชฎเซ เชจเซเชเชงเชฃเซ เชเชฐเชพเชตเชถเซ, เชคเชฎเชจเซ เชคเชฎเชพเชฐเชพ เชเชเชพเชเชจเซเชเชฎเชพเช $100 เชชเซเชฐเชพเชชเซเชค เชฅเชถเซ. เชชเชฐเชเชคเซ เชฎเซเชฐเซเช เชฌเชจเชถเซ เชจเชนเซเช. เชคเซเชจเซ เชเชพเชณเชตเชพ เชฎเชพเชเซ เชคเชฎเชพเชฐเซ เชชเชพเชธเซ เชฎเชพเชคเซเชฐ 60 เชฆเชฟเชตเชธ เชเซ. เช เชจเซ เช เชฌเชนเซ เชเชเซเช เชเซ. เชคเชฎเซ, เชฎเชพเชฐเซ เชเซเชฎ, เชตเชงเซ เชเชฐเซเชเชพเชณ เชฏเซเชเชจเชพเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพ เชฎเชพเชเซ เชเซ, เชเซเชฅเซ เชชเชเซเชฅเซ, เชเซเชฏเชพเชฐเซ เชตเชพเชธเซเชคเชตเชฟเช เชจเชพเชฃเชพเช เชตเชนเซเชตเชพ เชฒเชพเชเซ, เชคเซเชฏเชพเชฐเซ เชคเชฎเซ เชธเชธเซเชคเซ เชฏเซเชเชจเชพ เชชเชฐ เชธเซเชตเชฟเช เชเชฐเซ เชถเชเซ. เชนเซเช เชคเชฎเชจเซ เชคเชฐเชค เช เชเชนเซเชถ เชเซ เชคเซ เชเชพเชฎ เชเชฐเชถเซ เชจเชนเซเช. เชคเชฎเซ เชคเซเชจเซ เชตเชงเชพเชฐเซ เชถเชเซ เชเซ, เชชเชฃ เชเชเชพเชกเซ เชถเชเชคเชพ เชจเชฅเซ. เชคเซเชฅเซ เชคเซ เชเชพเชฏ เชเซ. เชนเซเช เชชเชธเชเชฆ เชเชฐเซเช เชเซเช เชธเซเชเชพเชจเซเชกเชฐเซเชก->$5.
เชนเซเช เช เชฎเชพเชฐเซ เชธเซเชฅเซ เชจเชเซเชเชจเซ เชชเซเชฐเชฆเซเชถ เชชเชธเชเชฆ เชเชฐเซเช เชเซเช เชซเซเชฐเซเชจเซเชเชซเชฐเซเช. VPC เชจเซเชเชตเชฐเซเช->default-fra1
เช เชฎเซ เชคเชฐเชค เช SSH เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเชฎเชพเชฃเซเชเชฐเชฃ เชเชฐเซเชถเซเช. เชเซเชฒเชฟเช เชเชฐเซ เชจเชตเซ SSH เชเซ. เชเซ เชคเชฎเชพเชฐเซ เชชเชพเชธเซ SSH เชจเชฅเซ, เชคเซ เชเชฎเชฃเซ เชฌเชพเชเซเช เชเซเชฌ เช เชธเชฐเชณ เชธเซเชเชจเชพเช เชเซ. เชฌเซเชถ เชเชฐเซเชฎเชฟเชจเชฒ เชเซเชฒเซ เช เชจเซ เชชเซเชธเซเช เชเชฐเซ
ssh-keygen
. เชชเชเซ เชเชชเชฃเซ เชธเชพเชฐเซเชตเชเชจเชฟเช เชเซ เชธเชพเชฅเซ เชซเชพเชเชฒ เชชเชฐ เชเชเช เชเซเช/Users/<ะะฐัะต ะธะผั ะฟะพะปัะทะพะฒะฐัะตะปั>/.ssh/id_rsa.pub
(เช เชฅเชตเชพ เชซเชเซเชคcat ~/.ssh/id_rsa.pub
), เชธเชฎเชพเชตเชฟเชทเซเชเซเชจเซ เชจเชเชฒ เชเชฐเซ เช เชจเซ เชคเซเชจเซ เชกเชพเชฌเซ เชฌเชพเชเซเชจเซ เชตเชฟเชเชกเซเชฎเชพเช เชชเซเชธเซเช เชเชฐเซ. เชเซเชเชชเชฃ เชจเชพเชฎ.เช เชฎเซ เชเซเชชเซเช เชฎเชพเชเซ เชฏเชเชฎเชพเชจเชจเชพเชฎ เชธเชพเชฅเซ เชเชตเซเช เชเซเช.
เชฆเชฌเชพเชฃ Create Droplet
เชจเชตเซ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชฌเชจเชพเชตเซ
ssh root@[IP-ะฐะดัะตั ะฒะฐัะตะณะพ ะดัะพะฟะปะตัะฐ]
- เชถเซเช เชคเชฎเซ เชเชฐเซเชเชฐ เชเชจเซเชเซเช เชเชฐเชตเชพเชจเซเช เชเชพเชฒเซ เชฐเชพเชเชตเชพ เชฎเชพเชเชเซ เชเซ (เชนเชพ/เชจเชพ/[เชซเชฟเชเชเชฐเชชเซเชฐเชฟเชจเซเช])?
yes
- เชคเชฎเชพเชฐเซ SSH เชชเชพเชธเชตเชฐเซเชก เชฆเชพเชเชฒ เชเชฐเซ
- เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชฌเชจเชพเชตเซ Laravel:
adduser laravel
- เชคเชฎเชพเชฐเซ เชชเชพเชธเชตเชฐเซเชก เช เชจเซ เช เชจเซเชฏ เชฎเชพเชนเชฟเชคเซ เชฆเชพเชเชฒ เชเชฐเซ (เชนเซเช เชซเชเซเชค เชธเชเชชเซเชฐเซเชฃ เชจเชพเชฎ เชฆเชพเชเชฒ เชเชฐเซเช เชเซเช)
- ะะพะฑะฐะฒะปัะตะผ ะฟะพะปัะทะพะฒะฐัะตะปั ะฒ ะณััะฟะฟั sudo:
usermod -aG sudo laravel
เชจเชตเชพ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชฎเชพเชเซ SSH
- เชจเชตเชพ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชชเชฐ เชธเซเชตเชฟเช เชเชฐเซ:
su laravel
เช
เชฎเซ laravel เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชตเชคเซ เชฒเซเชเชจเชพ เช
เชเชค เชธเซเชงเซ เชเชเชณ เชฌเชงเซ เชเซเชฐเชฟเชฏเชพเช เชเชฐเซเช เชเซเช. เชคเซเชฅเซ, เชเซ เชคเชฎเชจเซ เช
เชเชพเชจเช เชตเชฟเชเซเชทเซเชช เชเชตเซ, เชคเซ เชซเชฐเซเชฅเซ เชฒเซเชเชฟเชจ เชเชฐเซ เช
เชจเซ เชฆเชพเชเชฒ เชเชฐเซ su laravel
mkdir ~/.ssh
chmod 700 ~/.ssh
vim ~/.ssh/authorized_keys
เช เชฎเซ เชตเชฟเชฎเชฎเชพเช เชซเชพเชเชฒ เชเซเชฒเซ. เชเซ เชคเชฎเซ เชคเซเชจเชพเชฅเซ เชฌเชฟเชฒเชเซเชฒ เชชเชฐเชฟเชเชฟเชค เชจเชฅเซ, เชคเซ เชคเชฎเซ เชจเซเชจเซเชฎเชพเช เชเชพเชฎ เชเชฐเซ เชถเชเซ เชเซ, เชเซ เชคเชฎเชพเชฐเซ เช เชงเชฟเชเชพเชฐ เชเซ.
เชธเซเชฅเซ เชฎเซเชณเชญเซเชค Vim เชเชฆเซเชถเซ
เชธเชฎเชเซเชฐ เชฒเซเชเชฎเชพเช เชตเชฟเชฎ เชธเชเชชเชพเชฆเชเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพ เชฎเชพเชเซ, เชคเชฎเชพเชฐเซ เชซเชเซเชค เชจเซเชเซเชจเชพ เชเชพเชฃเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ.
- เชตเชฟเชฎเชฎเชพเช เชตเชฟเชตเชฟเชง เชฎเซเชกเซเชธ เชเซ: เชธเชพเชฎเชพเชจเซเชฏ เชฎเซเชก, เชเซเชฎเชพเช เชคเชฎเซ เชเชฆเซเชถเซ เชฆเชพเชเชฒ เชเชฐเซ เชเซ เช เชจเซ เชฎเซเชกเซเชธ เช เชจเซ เช เชจเซเชฏ เชชเชธเชเชฆ เชเชฐเซ เชเซ.
- เชเซเชเชชเชฃ เชฎเซเชกเชฎเชพเชเชฅเซ เชฌเชนเชพเชฐ เชจเซเชเชณเชตเชพ เช
เชจเซ เชธเชพเชฎเชพเชจเซเชฏ เชฎเซเชก เชชเชฐ เชชเชพเชเชพ เชเชตเชตเชพ เชฎเชพเชเซ, เชซเชเซเชค เชฆเชฌเชพเชตเซ
Esc
- เชเชธเชชเชพเชธ เชเชธเซเชกเซ: เชคเชฎเซ เชซเชเซเชค เชคเซเชฐเชจเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเซ เชเซ
- เชธเชพเชเชตเซเชฏเชพ เชตเชฟเชจเชพ เชฌเชนเชพเชฐ เชจเซเชเชณเซ
<Normal mode>
::q!
- เชฌเชนเชพเชฐ เชจเซเชเชณเซ เช
เชจเซ เชธเชพเชเชตเซ
<Normal mode>
::wq
- ะะตัะตะนัะธ ะฒ ัะตะถะธะผ ะฒะฒะพะดะฐ ัะตะบััะฐ
<Normal mode>
:i
(เช เชเชเซเชฐเซเชเซเชฎเชพเชเชฅเซ. เชถเชพเชฎเซเชฒ เชเชฐเซ)
- ะััะฐะฒะปัะตะผ ะฝะฐั ะฟัะฑะปะธัะฝัะน ะบะปัั (ะบะพัะพััะน ะผั ะดะตะปะฐะปะธ ะฒััะต)
- เช
เชฎเซ เชซเซเชฐเชซเชพเชฐเซ เชธเชพเชฎเซ เชฐเชเซเชทเชฃ เชเชฐเซเช เชเซเช:
chmod 600 ~/.ssh/authorized_keys
เชซเชพเชฏเชฐเชตเซเชฒ เชเชจเซเชธเซเชเซเชฒ เชเชฐเซ เชฐเชนเซเชฏเซเช เชเซ
- เชเชพเชฒเซ เชฌเชงเซ เชเชชเชฒเชฌเซเชง เชธเซเชเชฟเชเชเซเชธ เชเซเชเช:
sudo ufw app list
- OpenSSH เชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ (เช
เชจเซเชฏเชฅเชพ เชคเซ เช
เชฎเชจเซ เชฒเซเช เชเชฐเชถเซ):
sudo ufw allow OpenSSH
- ะะฐะฟััะบะฐะตะผ ัะฐะตัะฒะพะป:
sudo ufw enable
,y
- เชคเชชเชพเชธ เชเชฐเซ เชฐเชนเซเชฏเซเช เชเซ:
sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
เชฌเชงเซเช เชฌเชฐเชพเชฌเชฐ เชเซ.
Nginx เชเชจเซเชธเซเชเซเชฒ เชเชฐเซ เชฐเชนเซเชฏเซเช เชเซ
เชเชจเซเชธเซเชเซเชฒเซเชถเชจ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชคเชฎเชจเซ เชเซเชฏเชพเชฐเซเช เชชเซเชเชตเชพเชฎเชพเช เชเชตเชถเซ "เชถเซเช เชคเชฎเชจเซ เชเชพเชคเชฐเซ เชเซ?" เชเชตเชพเชฌ เชเชชเซ y
(เชธเชพเชฐเซเช, เชเซ เชคเชฎเชจเซ เชเชพเชคเชฐเซ เชนเซเชฏ เชคเซ เช).
sudo apt update
sudo apt install nginx
เชซเชพเชฏเชฐเชตเซเชฒ เชธเซเชเชฟเชเชเซเชธเชฎเชพเช Nginx เชเชฎเซเชฐเซ เชฐเชนเซเชฏเชพ เชเซเช
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)
เชคเชฎเชพเชฐเชพ IP เชชเชฐ เชเชพเช. เชเซ เชฌเชงเซเช เชฌเชฐเชพเชฌเชฐ เชเชพเชฒเซ เชเซ, เชคเซ เชคเชฎเชพเชฐเซ เชจเซเชเซเชจเชพ เชเซเชตเซเช เชเซเชเช.
MySQL เชเชจเซเชธเซเชเซเชฒ เชเชฐเซ เชฐเชนเซเชฏเซเช เชเซ
sudo apt install mysql-server
- เชธเซเชตเชเชพเชฒเชฟเชค เชธเซเชฐเชเซเชทเชพ เชธเซเชเซเชฐเชฟเชชเซเช เชฒเซเชเช เชเชฐเซ เชฐเชนเซเชฏเซเช เชเซ
sudo mysql_secure_installation
เชชเซเชเซเชฒเชพ เชชเซเชฐเชถเซเชจเซเชจเชพ เชเชตเชพเชฌ เชเชชเซ. เชเซ เชคเชฎเชจเซ เชเชฌเชฐ เชจ เชนเซเชฏ เชเซ เชถเซเช เชเชตเชพเชฌ เชเชชเชตเซ, เชคเซ เช เชนเซเช เชเซเชเชฒเชพเช เชธเซเชเชตเซเชฒเชพ เชตเชฟเชเชฒเซเชชเซ เชเซ:
-
Validate password plugin โ
N
-
Remove anonymous users? โ
Y
-
เชฐเซเช เชฒเซเชเชฟเชจ เชฐเชฟเชฎเซเชเชฒเซ เชจเชพเชฎเชเชเซเชฐ เชเชฐเซเช? -
N
-
Remove test database and access to it? โ
N
-
เชตเชฟเชถเซเชทเชพเชงเชฟเชเชพเชฐ เชเซเชทเซเชเชเซ เชนเชตเซ เชซเชฐเซเชฅเซ เชฒเซเชก เชเชฐเซเช? -
Y
-
เชเชพเชฒเซ MySQL เชชเชฐ เชเชเช:
sudo mysql
-
เชเชพเชฒเซ เชเชเซเชธเซเชธ เชชเชฆเซเชงเชคเชฟเช เชเซเชเช:
SELECT user,authentication_string,plugin,host FROM mysql.user;
-
ะฃััะฐะฝะฐะฒะปะธะฒะฐะตะผ ะฟะฐัะพะปั ะดะปั root:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<ะะฐั ะฟะฐัะพะปั ะดะปั MySQL>';
-
เชเชพเชฒเซ เชซเชฐเซเชฅเซ เชเชเซเชธเซเชธ เชชเชฆเซเชงเชคเชฟเช เชเซเชเช:
SELECT user,authentication_string,plugin,host FROM mysql.user;
-
เชซเซเชฐเชซเชพเชฐเซ เชฒเชพเชเซ เชเชฐเซ เช เชจเซ MySQL เชฅเซ เชฌเชนเชพเชฐ เชจเซเชเชณเซ:
FLUSH PRIVILEGES;
ะธexit
-
เชนเชตเซ, MySQL เชฎเชพเช เชฒเซเช เชเชจ เชเชฐเชตเชพ เชฎเชพเชเซ เชคเชฎเชพเชฐเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ
mysql -u root -p
ะธ ะฒะฒะพะดะธัั ะฟะฐัะพะปั
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
ะขะตะฟะตัั ะฒัะฑะธัะฐะตะผ. ะะปั Laravel 7 ะผะพะถะฝะพ ะฒัะฑัะฐัั PHP 7.3 ะธะปะธ 7.4. ะัะปะธัะธะต ะฑัะดะตั ะปะธัั ะฒ ัะธััะฐั 3 ะธ 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 เชชเซเชฐเซเชธเซเชธ เชฎเซเชจเซเชเชฐ (fpm) PHP เชตเชฟเชจเชเชคเซเช เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเซ เชเซ. mysql, เช เชฒเชฌเชคเซเชค, MySQL เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพ เชฎเชพเชเซ.
เชนเชตเซเชฅเซ เชนเซเช 7.4 เชจเชพ เชฐเซเช เชฌเชงเซเช เชเชฐเซเชถ.
Nginx เชธเซเช เชเชฐเซ เชฐเชนเซเชฏเซเช เชเซ
sudo vim /etc/nginx/sites-available/<ะะฐั ะดะพะผะตะฝ>
"<Your domain>" เชจเซ เชฌเชฆเชฒเซ เชกเซเชฎเซเชจ เชฆเชพเชเชฒ เชเชฐเซ (เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, mysite.ru
) เชเซเชจเซ เชคเชฎเซ เชญเชตเชฟเชทเซเชฏเชฎเชพเช เชเชชเชฏเซเช เชเชฐเชตเชพ เชฎเชพเชเชเซ เชเซ. เชเซ เชคเชฎเชพเชฐเซ เชชเชพเชธเซ เชนเชเซ เชธเซเชงเซ เชเช เชจเชฅเซ, เชคเซ เชเซเชเชชเชฃ เชฒเชเซ, เชชเชเซ เชเซเชฏเชพเชฐเซ เชคเชฎเซ เชคเซเชจเซ เชชเชธเชเชฆ เชเชฐเซ เชคเซเชฏเชพเชฐเซ เชคเชฎเชพเชฐเชพ เชกเซเชฎเซเชจ เชฎเชพเชเซ เช เชชเซเชฐเชเชฐเชฃเชฎเชพเชเชจเชพ เชชเชเชฒเชพเชเชเชจเซเช เชชเซเชจเชฐเชพเชตเชฐเซเชคเชจ เชเชฐเซ.
เชจเซเชเซเชจเชพ เชฆเชพเชเชฒ เชเชฐเซ:
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;
}
}
เชเซ เชคเชฎเซ เชคเซเชจเชพ เชฌเชฆเชฒเซ เชธเชเชธเซเชเชฐเชฃ 7.3 เชชเชธเชเชฆ เชเชฐเซเชฏเซเช เชนเซเชฏ php7.4-fpm.sock
เชฆเชพเชเชฒ เชเชฐเซ php7.4-fpm.sock
.
เชชเซเชฐเซเช 80 เชชเชฐ เชธเชพเชเชญเชณเซ server_name
เชเซเชฏเชพเชฐเซ เช
เชฎเซ เชฐเซเช เชตเชฟเชจเชเชคเซ เชชเชฐ เชชเชนเซเชเชเซเช เชเซเช /var/www/html
เชเชจเซเชกเซเชเซเชธ เชซเชพเชเชฒ เชฒเซ. เชเซ เชชเชเซ server_name
ััะพ-ัะพ ะตััั, ะธัะตะผ ัะฐะบะพะน ัะฐะนะป. ะะต ะฝะฐั
ะพะดะธะผ, ะฒัะฑัะฐััะฒะฐะตะผ 404. ะัะปะธ ะทะฐะบะฐะฝัะธะฒะฐะตััั ะฝะฐ .php
, เชฎเชพเชฐเชซเชคเซ เชเชฒเชพเชตเซ fpm
... เชเซ เชคเซเชฏเชพเช .ht
, เชชเซเชฐเชคเชฟเชฌเชเชงเชฟเชค เชเชฐเซ (403).
- เชฅเซ เชฒเชฟเชเช เชฌเชจเชพเชตเซ เชฐเชนเซเชฏเชพ เชเซเช
sites-available
ะฒsites-enabled
:sudo ln -s /etc/nginx/sites-available/<ะะฐั ะดะพะผะตะฝ> /etc/nginx/sites-enabled/
- เชจเซ เชฒเชฟเชเช เชฆเซเชฐ เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซเช
default
:sudo unlink /etc/nginx/sites-enabled/default
- เชญเซเชฒเซ เชฎเชพเชเซ เชคเชชเชพเชธเซ เชฐเชนเซเชฏเซเช เชเซ:
sudo nginx -t
- เชฐเซเชฌเซเช เชเชฐเซ:
sudo systemctl reload nginx
เชเชพเชฐเซเชฏ เชคเชชเชพเชธเซ เชฐเชนเซเชฏเซเช เชเซ:
sudo vim /var/www/html/info.php
- เช
เชฎเซ เชฒเชเซเช:
<?php phpinfo();
- เชเชพเชฒเซ เชเชเช
<ะะฐั IP>/info.php
เชคเชฎเชพเชฐเซ เชเชจเชพ เชเซเชตเซเช เชเชเชเช เชเซเชตเซเช เชเซเชเช:
เชนเชตเซ เช เชซเชพเชเชฒ เชเชพเชขเซ เชถเชเชพเชฏ เชเซ: sudo rm /var/www/html/info.php
เชฒเชพเชฐเชพเชตเซเชฒ เชเชจเซเชธเซเชเซเชฒ เชเชฐเซ
-
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
-
เชเชพเชฒเซ MySQL เชชเชฐ เชเชเช:
mysql -u root -p
-
เชจเชพเชฎ เชธเชพเชฅเซ เชกเซเชเชพเชฌเซเช เชฌเชจเชพเชตเซ Laravel:
CREATE DATABASE laravel DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
-
ะัะตะดะพััะฐะฒะปัะตะผ root ะดะพัััะฟ ะบ Laravel:
GRANT ALL ON laravel.* TO 'root'@'localhost' IDENTIFIED BY '<ะะฐั ะฟะฐัะพะปั ะพั MySQL>';
-
FLUSH PRIVILEGES;
-
exit
-
cd /var/www/html
-
เชชเซเชฐเซเชเซเชเซเช เชฎเชพเชเซ เชซเซเชฒเซเชกเชฐ เชฌเชจเชพเชตเซ:
sudo mkdir -p <ะะผั ะฟัะพะตะบัะฐ>
-
เช เชฎเซ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชจเซ เชชเซเชฐเชฆเชพเชจ เชเชฐเซเช เชเซเช Laravel เชชเซเชฐเซเชเซเชเซเชเชจเชพ เช เชงเชฟเชเชพเชฐเซ:
sudo chown laravel:laravel <ะะผั ะฟัะพะตะบัะฐ>
เชเชเชณ เชคเชฎเชพเชฐเซ เชชเซเชฐเซเชเซเชเซเชเชจเซ เชธเซเชฅเชพเชจเชพเชเชคเชฐเชฟเชค เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชเซเชฅเชฌเชฅเซ เชเซเชฒเซเชจเชฟเชเช.
cd ./<ะะผั ะฟัะพะตะบัะฐ>
git clone <ัััะปะบะฐ ะฝะฐ ะฟัะพะตะบั> .
เชคเซ เชงเซเชฏเชพเชจเชฎเชพเช เชฒเซเชตเซเช เชฏเซเชเซเชฏ เชเซ เชเซ เชเซ เชคเชฎเซ เชธเซเชฅเชฟเชฐ เชซเชพเชเชฒเซเชจเซ เชธเชพเชเชตเซ เชจเชฅเซ (เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชฅเซ /public
) เชเซเชฅเชฌ เชชเชฐ, เชชเชเซ เชธเซเชตเชพเชญเชพเชตเชฟเช เชฐเซเชคเซ เชคเชฎเชพเชฐเซ เชชเชพเชธเซ เชคเซ เชจเชนเซเช เชนเซเชฏ. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชฎเซเช เชเชจเซ เชเชเซเชฒเชตเชพ เชฎเชพเชเซ เชเช เช
เชฒเช เชฅเซเชฐเซเชก เชฌเชจเชพเชตเซเชฏเซ เชเซ deploy
, เชเซเชฎเชพเชเชฅเซ เชฎเซเช เชชเชนเซเชฒเซเชฅเซ เช เชเซเชฒเซเชจ เชเชฐเซเชฏเซเช เชเซ: git clone -b <ะธะผั ะฒะตัะบะธ> --single-branch <ัััะปะบะฐ ะฝะฐ ะฟัะพะตะบั> .
.
- เชจเชฟเชฐเซเชญเชฐเชคเชพ เชธเซเชฅเชพเชชเชฟเชค เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซเช:
composer install
- env เชฌเชจเชพเชตเซ:
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>
ะัะปะธ ะฒั ะบะพะฟะธััะตัะต ัะฒะพะน .env, ะทะฐะผะตะฝะธัะต APP_ENV ะฝะฐ production, APP_DEBUG ะฝะฐ false ะธ ะฒะฟะธัะธัะต ะฟัะฐะฒะธะปัะฝัะต ะฝะฐัััะพะนะบะธ ะดะปั 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
เชเซเชฒเซเชฒเซ เชตเชธเซเชคเซ เชฒเชพเชฐเชพเชตเซเชฒ เชฎเชพเชเซ Nginx เชจเซ เชซเชฐเซเชฅเซ เชเซเช เชตเชตเชพเชจเซเช เชฌเชพเชเซ เชเซ:
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;
}
}
ะะฐะบ ะธ ะฒ ะฟัะพัะปัะน ัะฐะท, ะตัะปะธ ะั ะฒัะฑัะฐะปะธ ะฒะตััะธั 7.3 ะฒะผะตััะพ php7.4-fpm.sock
เชฆเชพเชเชฒ เชเชฐเซ php7.4-fpm.sock
.
DigitalOcean เชชเชฐ เชกเซเชฎเซเชจ เชธเซเช เชเชฐเซ เชฐเชนเซเชฏเซเช เชเซ
ะัั, ะฝะฐ ัะฐะผะพะผ ะดะตะปะต, ะพัะตะฝั ะฟัะพััะพ. ะั ะฟะพะบัะฟะฐะตัะต ะดะพะผะตะฝ (ะณะดะต ัะณะพะดะฝะพ), ะฟะตัะตั ะพะดะธัะต ะฝะฐ DigitalOcean ะฒ เชฌเชจเชพเชตเซ->เชกเซเชฎเซเชจเซเชธ/DNS... เชเซเชทเซเชคเซเชฐเชฎเชพเช เชเช เชกเซเชฎเซเชจ เชเชฎเซเชฐเซ เชคเชฎเซ เช เชกเซเชฎเซเชจ เชฆเชพเชเชฒ เชเชฐเซ เช เชจเซ เชเชฎเซเชฐเซ เชชเชฐ เชเซเชฒเชฟเช เชเชฐเซ. เชชเชเซ เชกเซเชฎเซเชจ เชธเซเชเชฟเชเชเซเชธ เช เชจเซ เชซเซเชฒเซเชก เชชเชฐ เชเชพเช เชนเซเชธเซเชเชจเชพเชฎ เชฆเชพเชเชฒ เชเชฐเซ @. เชชเซเชฐเซเชเซเชเซเช เชชเชธเชเชฆ เชเชฐเซ เช เชจเซ เชเซเชฒเชฟเช เชเชฐเซ เชฐเซเชเซเชฐเซเชก เชฌเชจเชพเชตเซ.
ะขะตะฟะตัั ะฟะตัะตั ะพะดะธัะต ะฝะฐ ัะฐะนั, ะณะดะต ะฟะพะบัะฟะฐะปะธ ะดะพะผะตะฝ, ะฝะฐั ะพะดะธัะต ัะฐะผ "DNS ะกะตัะฒะตัั" (ะธะปะธ ััะพ-ัะพ ะฟะพะดะพะฑะฝะพะต) ะธ ะฒะฟะธััะฒะฐะตัะต ัะตัะฒะตัั DigitalOcean (ะฐ ะธะผะตะฝะฝะพns1.digitalocean.com
,ns2.digitalocean.com
,ns3.digitalocean.com
). ะขะตะฟะตัั ะฝะฐะดะพ ะฝะตะผะฝะพะณะพ (ะธะปะธ ะผะฝะพะณะพ) ะฟะพะดะพะถะดะฐัั, ะฟะพะบะฐ ััะธ ะฝะฐัััะพะนะบะธ ะฑัะดัั ะฟัะธะฝััั. ะะพัะพะฒะพ!
เชเชเชฎเชพเชคเซเชฐ เชธเชฎเชธเซเชฏเชพ เช เชเซ เชเซ เชคเชฎเชพเชฐเซ เชธเชพเชเช เชซเชเซเชค HTTP เชคเชฐเซเชเซ เช เชเซเชฒเชถเซ. HTTPS เชฐเชพเชเชตเชพ เชฎเชพเชเซ, เชเชเชณเชจเชพ เชญเชพเช เชชเชฐ เชเชพเช.
HTTPS เชธเซเช เชเชฐเซ เชฐเชนเซเชฏเซเช เชเซ
certbot เชเชจเซเชธเซเชเซเชฒ เชเชฐเซ เช
เชจเซ เชคเซเชจเซ เชกเซเชฎเซเชจ เชจเชพเชฎ เชชเชพเชธ เชเชฐเซ (เชซเซเชฐเซเชฎเซเช mysite.ru
) เช
เชจเซ เชกเซเชฎเซเชจ เชจเชพเชฎ 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.<ะะฐั ะดะพะผะตะฝ>
เชนเชตเซ เชคเชฎเชพเชฐเซ Nginx เชจเซ เชซเชฐเซเชฅเซ เชเซเช เชตเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ (เชคเชฎเชพเชฐเชพ เชฎเซเชฒเซเชฏเซเชจเซ เชฌเชฆเชฒเชตเชพเชจเซเช เชญเซเชฒเชถเซ เชจเชนเซเช):
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;
}
}
ะัะผะฐั, ะฒั ัะถะต ะฟะพะฝัะปะธ, ััะพ ะฝัะถะฝะพ ะฟะพะผะตะฝััั ะดะปั PHP 7.3.
เช เชนเซเช, เชนเชเซเชเชคเชฎเชพเช, เชฌเชงเซเช เชธเชฐเชณ เชเซ. เช เชฎเซ เชซเชเซเชค HTTP (เชชเซเชฐเซเช 80) เชฅเซ HTTPS (เชชเซเชฐเซเช 443) เชชเชฐ เชฌเชงเซ เชตเชฟเชจเชเชคเซเช เชฐเซเชกเชพเชฏเชฐเซเชเซเช เชเชฐเซเช เชเซเช. เช เชจเซ เชคเซเชฏเชพเช เชเชชเชฃเซ เชฌเชงเซเช เชชเชนเซเชฒเชพ เชเซเชตเซเช เช เชเชฐเซเช เชเซเช, เชชเชฐเชเชคเซ เชเชจเซเชเซเชฐเชฟเชชเซเชถเชจ เชธเชพเชฅเซ.
เชเซ เชฌเชพเชเซ เชเซ เชคเซ เชซเชพเชฏเชฐเชตเซเชฒเชฎเชพเช เชชเชฐเชตเชพเชจเชเซเช เชธเซเช เชเชฐเชตเชพเชจเซเช เชเซ:
sudo nginx -t
sudo ufw app list
sudo ufw allow 'Nginx HTTPS'
sudo ufw status
sudo systemctl reload nginx
เชนเชตเซ เชฌเชงเซเช เชเซเชฎ เชเซเชเช เชคเซเชฎ เชเชพเชฎ เชเชฐเชตเซเช เชเซเชเช.
[เชเชจเซเชจเชค] Node.js เชเชจเซเชธเซเชเซเชฒ เชเชฐเซ เชฐเชนเซเชฏเซเช เชเซ
เชเซ เชคเชฎเชพเชฐเซ เช เชเชพเชจเช เชธเชฐเซเชตเชฐ เชชเชฐ เชธเซเชงเชพ เช npm เชเชฆเซเชถเซ เชเชฒเชพเชตเชตเชพเชจเซ เชเชฐเซเชฐ เชนเซเชฏ, เชคเซ เชคเชฎเชพเชฐเซ Node.js เชเชจเซเชธเซเชเซเชฒ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ.
sudo apt update
sudo apt install -y nodejs npm
nodejs -v
ะัั, ั ะพััะฐะฝะพะฒะธะปัั ะฝะฐ ััะพะผ ััะฐะฟะต. ะ ะฟัะธะฝัะธะฟะต, ัะตะทัะปััะฐั ะผะตะฝั ััััะฐะธะฒะฐะตั. ะะพะทะผะพะถะฝะพ, ั ะฟะตัะตะนะดั ั DigitalOcean ะบัะดะฐ-ะฝะธะฑัะดั ะฟะพะฑะปะธะถะต ะบ ะ ะพััะธะธ ะธ ะฟะพะดะตัะตะฒะปะต. ะะพ ัะฐะบ ะบะฐะบ ั ัะถะต ะฟัะพัะตะป ะฒัะต ะบััะณะธ ะฒะตัะธัะธะบะฐัะธะธ ะฝะฐ ัะฐะนัะต ะธ ะฒัั ะดะตะปะฐะป ัะฐะผ, ั ะฟะพะบะฐะทัะฒะฐะป ะฝะฐ ะธั ะฟัะธะผะตัะต. ะ ัะพะผั ะถะต ะธั ััะฐััะพะฒัะต 100 ะดะพะปะปะฐัะพะฒ โ ะพัะปะธัะฝัะน ะฟะปะฐัะดะฐัะผ ะดะปั ััะตะฝะธัะพะฒะพะบ.
เชชเซเชเชธ เชฒเซเชเชเชจเซ เชตเชฟเชถเซเชท เชเชญเชพเชฐ
PPS เชเซ เชคเชฎเซ เชเซเชเชจเชพ เชเชจเซเชเชฟเชจเชฟเชฏเชฐ เชฌเชจเซ เชเซ เชเซ เชฌเซเชถ เชเชฎเชพเชจเซเชกเชฎเชพเช เชตเชฟเชเชพเชฐเซ เชเซ, เชคเซ เชเซเชชเชพ เชเชฐเซเชจเซ เชเช เซเชฐเชคเชพเชฅเซ เชจเชฟเชฐเซเชฃเชฏ เชเชฐเชถเซ เชจเชนเซเช. เชคเชฎเชจเซ เช เชฒเซเช เชจเซเชเชพ เชธเซเชคเชฐเชจเซ เชฒเชพเชเชถเซ, เชชเชฐเชเชคเซ เชเซเชฏเชพเชฐเซ เชฎเชจเซ เชคเซเชจเซ เชเชฐเซเชฐ เชนเซเชฏ เชคเซเชฏเชพเชฐเซ เชฎเชจเซ เชคเซ เชถเซเชงเซเชจเซ เชเชจเชเชฆ เชฅเชฏเซ เชนเซเชค. เชเซ เชธเซเชงเชพเชฐเชฃเชพ เชฎเชพเชเซ เชธเซเชเชจเซ เชนเซเชฏ, เชคเซ เชนเซเช เชคเซเชจเชพ เชฎเชพเชเซ เชเซเช.
เชธเซเชฐเซเชธ: www.habr.com