рдореИрд▓реЗ Laravel 7 рдХреЛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдореЗрд░реЛ рдкреЛрд░реНрдЯрдлреЛрд▓рд┐рдпреЛ рдмрдирд╛рдЙрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реЗрдВред рддрд╛рдХрд┐ рдореБрдЦреНрдп рдкреГрд╖реНрда рдПрдХ рд▓реНрдпрд╛рдиреНрдбрд┐рдЩ рдкреГрд╖реНрда рд╣реБрдиреЗрдЫ, рд░ рдпрд╕рдорд╛ рд╕рдмреИ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╢рд╛рд╕рдХ рдкреНрдпрд╛рдирд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдмрд┐рдиреНрджреБ рд╣реЛрдЗрдиред рдбрд┐рдкреНрд▓реЛрдЗрдореЗрдиреНрдЯрдорд╛ рдЖрдпреЛ ред рдореИрд▓реЗ рд╕рдмреИ рд╕рдорд╕реНрдпрд╛рд╣рд░реВрдХреЛ рд╕рд╛рде рдкреВрд░реНрдг рд╕рд░реНрднрд░рдорд╛ рдпреЛ рдХрд╕рд░реА рдЧрд░реНрдиреЗ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рдХреЗрд╣реА рд░рд╛рдореНрд░реЛ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓рд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реЗред рдо рддреИрдирд╛рддреАрдорд╛ рдзреЗрд░реИ рдмрд▓рд┐рдпреЛ рдЫреИрди; рдо рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдкреВрд░реНрдг рд╕реНрдЯреНрдпрд╛рдХ рднрдиреНрджрд╛ рдЕрдЧрд╛рдбрд┐ рдЫреБред рд░, рдпрджрд┐ рдо рдЕрдЭреИ рдкрдирд┐ PHP рдорд╛ рд▓реЗрдЦреНрди рд░ рдкрд░реАрдХреНрд╖рдг рдЧрд░реНрди рд╕рдХреНрдЫреБ, рд╕рд░реНрднрд░ рдкреНрд░рдмрдиреНрдз рдЧрд░реНрдиреБ рдЕрдШрд┐, рдЖрджрд┐ред рдо рдЕрдЭреИ рд╣реБрд░реНрдХреЗрдХреЛ рдЫреИрди ред рддрд░ рдореИрд▓реЗ рдмреБрдЭреНрдиреБрдкрд░реНрдиреЗ рднрдпреЛ ред
рдЕрдм рд╣рд╛рдореА рд╕рдмреИ рдЪрд░рдгрд╣рд░реВ рдкрд╛рд░ рдЧрд░реНрдиреЗрдЫреМрдВ, SSH рдорд╛рд░реНрдлрдд рд▓рдиреНрдЪ рдЧрд░реЗрд░ рд░ рдХрд╛рдо рдЧрд░реНрдиреЗ рд╕рд╛рдЗрдЯрдХреЛ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реБрдБрджреИред рд╣рд╛рдореА рд╕рдмреИ рдЦрд░рд╛рдмреАрд╣рд░реВ рдЬреЛрдЧрд┐рди рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреЗрдЫреМрдВред
рддрдкрд╛рдЗрдБ рд╕рдорд╛рди рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдЕрдирд▓рд╛рдЗрди рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХреНрд╖рдо рд╣реБрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдЖрдЦрд┐рд░, рдореИрд▓реЗ рдЕрдиреНрддрддрдГ рдлреЗрд▓рд╛ рдкрд╛рд░реЗред рд╕рд╛рдБрдЪреЛ, рдПрдХ рдард╛рдЙрдБрдорд╛ рд╣реЛрдЗрди, StackOverflow рдХреЛ рдорджреНрджрдд рдмрд┐рдирд╛, рд░ рд╢рд╛рдпрдж рд░реВрд╕реА рдорд╛ред рдореИрд▓реЗ рднреЛрдЧреЗ ред рддреНрдпрд╕реИрд▓реЗ рдореИрд▓реЗ рддрд┐рдореНрд░реЛ рдЬреАрд╡рдирд▓рд╛рдИ рд╕рд░рд▓ рдмрдирд╛рдЙрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реЗрдХреЛ рдЫреБред
рд╣рд╛рдореА DigitalOcean рдорд╛ рдПрдХ рдереЛрдкрд╛рдХреЛ рд╕рд╛рде рд╕рдмреИ рдХрд╛рдо рдЧрд░реНрдиреЗрдЫреМрдВред рдпреЛ, рдЕрд╡рд╢реНрдп рдкрдирд┐, рдЖрд╡рд╢реНрдпрдХ рдЫреИрди; рдХреБрдиреИ рдкрдирд┐ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдЫрдиреМрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдЬрдм рддрдкрд╛рдИрдВ Ubuntu рдорд╛ рдХрд╛рдо рдЧрд░реНрдиреЗ рд╕рд░реНрднрд░рдорд╛ рдкреБрдЧреНрдиреБрд╣реБрдиреНрдЫ, рдлрд┐рд░реНрддрд╛ рдЖрдЙрдиреБрд╣реЛрд╕реНред рдЕрдЭреИ рдкрдирд┐ 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
рдирд┐рдЬрд┐рдирдХреНрд╕
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 рдХреБрдЮреНрдЬреА рджрд░реНрддрд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН
рдо рд╕рд╛рдБрдЪреНрдЪреИ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЧрд░реНрдЫреБ рдХрд┐ рддрдкрд╛рдИрд▓реЗ рдбрд┐рдЬрд┐рдЯрд▓рдУрд╢рдирд╕рдБрдЧ рдХрд╕рд░реА рджрд░реНрддрд╛ рдЧрд░реНрдиреЗ рднрдиреЗрд░ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрдиреБрд╣реБрдиреЗрдЫред рдпреЛ рд╕рдЬрд┐рд▓реЛ рдЫреИрди, рдзреЗрд░реИ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд░ рдЕрдиреНрдп рдЪреАрдЬрд╣рд░реВрдХреЛ рд╕рд╛рдеред рдпрджрд┐ рддрдкрд╛рдЗрдБ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреНрд░рдорд╛рдгрд┐рдд рдЧрд░реНрджрд╛ рд▓рдЧрд╛рддрд╛рд░ рдиреЗрдЯрд╡рд░реНрдХ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, VPN рдорд╛рд░реНрдлрдд рд╕рдмреИ рдХрд╛рдо рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдпрд╕рд▓реЗ рдорджреНрджрдд рдЧрд░реНрдиреБрдкрд░реНрдЫред
рдорд╛рдерд┐рдХреЛ рдореЗрдиреБрдорд╛ рдХреНрд▓рд┐рдХ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд╕рд┐рд░реНрдЬрдирд╛->рдШрдЯреНрджреИред рдЫрд╛рдиреНрдиреБрд╣реЛрд╕реН Ubuntu.
рддрдкрд╛рдИрдВрд▓реЗ рджрд░реНрддрд╛ рдЧрд░реНрдиреЗ рдмрд┐рддреНрддрд┐рдХреИ, рддрдкрд╛рдИрдВрд▓реЗ рдЖрдлреНрдиреЛ рдЦрд╛рддрд╛рдорд╛ $ 100 рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реБрдиреЗрдЫред рддрд░ рдореВрд░реНрдЦ рдирд╣реБрдиреБрд╣реЛрд╕реНред рддрдкрд╛рдИрдВрд╕рдБрдЧ рдпреЛ рдЦрд░реНрдЪ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдорд╛рддреНрд░ 60 рджрд┐рди рдЫред рд░ рдпреЛ рдзреЗрд░реИ рдереЛрд░реИ рдЫред рддрдкрд╛рдИрдВ, рдо рдЬрд╕реНрддреИ, рдЕрдЭ рдорд╣рдБрдЧреЛ рдпреЛрдЬрдирд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ, рддрд╛рдХрд┐ рдкрдЫрд┐, рдЬрдм рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреИрд╕рд╛ рдкреНрд░рд╡рд╛рд╣ рд╕реБрд░реБ рд╣реБрдиреНрдЫ, рддрдкрд╛рдИрдВ рд╕рд╕реНрддреЛ рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрд╕реНрд╡рд┐рдЪ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдо рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╕рд┐рдзреИ рднрдиреНрдЫреБ рдХрд┐ рдпрд╕рд▓реЗ рдХрд╛рдо рдЧрд░реНрджреИрдиред рддрдкрд╛рдИрдВ рдпрд╕рд▓рд╛рдИ рдмрдврд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рддрд░ рддрдкрд╛рдИрдВ рдпрд╕рд▓рд╛рдИ рдШрдЯрд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдиред рддреНрдпрд╕реИрд▓реЗ рдпреЛ рдЬрд╛рдиреНрдЫред рдо рд░реЛрдЬреНрдЫреБ рдорд╛рдирдХ->$5.
рдо рд╣рд╛рдореНрд░реЛ рдирдЬрд┐рдХрдХреЛ рдХреНрд╖реЗрддреНрд░ рд░реЛрдЬреНрдЫреБ рдлреНрд░реИрдВрдХрдлрд░реНрдЯ. VPC рдиреЗрдЯрд╡рд░реНрдХ->рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд-fra1
рд╣рд╛рдореА рддреБрд░реБрдиреНрддреИ SSH рдорд╛рд░реНрдлрдд рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЧрд░реНрдиреЗрдЫреМрдВред рдХреНрд▓рд┐рдХ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдирдпрд╛рдБ SSH рдХреБрдЮреНрдЬреАред рдпрджрд┐ рддрдкрд╛рдИрдВрд╕рдБрдЧ SSH рдЫреИрди рднрдиреЗ, рджрд╛рдпрд╛рдБрдорд╛ рдзреЗрд░реИ рд╕рд░рд▓ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдЫрдиреНред рдмрд╛рд╕ рдЯрд░реНрдорд┐рдирд▓ рдЦреЛрд▓реНрдиреБрд╣реЛрд╕реН рд░ рдЯрд╛рдБрд╕реНрдиреБрд╣реЛрд╕реН
ssh-keygen
ред рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдЮреНрдЬреАрдХреЛ рд╕рд╛рде рдлрд╛рдЗрд▓рдорд╛ рдЬрд╛рдиреНрдЫреМрдВ/Users/<╨Т╨░╤И╨╡ ╨╕╨╝╤П ╨┐╨╛╨╗╤М╨╖╨╛╨▓╨░╤В╨╡╨╗╤П>/.ssh/id_rsa.pub
(рд╡рд╛ рд╕рд╛рдзрд╛рд░рдг рд░реВрдкрдорд╛cat ~/.ssh/id_rsa.pub
), рд╕рд╛рдордЧреНрд░реАрд╣рд░реВ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдпрд╕рд▓рд╛рдИ рдмрд╛рдБрдпрд╛рдорд╛ рд░рд╣реЗрдХреЛ рд╕рдЮреНрдЭреНрдпрд╛рд▓рдорд╛ рдЯрд╛рдБрд╕реНрдиреБрд╣реЛрд╕реНред рдХреБрдиреИ рдкрдирд┐ рдирд╛рдоредрд╣рд╛рдореА рдбреНрд░рдкрд▓реЗрдЯрдХреЛ рд▓рд╛рдЧрд┐ рд╣реЛрд╕реНрдЯрдирд╛рдо рд▓рд┐рдПрд░ рдЖрдЙрдБрдЫреМрдВред
Push рдбреНрд░рдкрд▓реЗрдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН
рдирдпрд╛рдБ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН
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 рдорд╛ рдлрд╛рдЗрд▓ рдЦреЛрд▓реНрдпреМрдВред рдпрджрд┐ рддрдкрд╛рдЗрдБ рдпрд╕рд╕рдБрдЧ рдкрд░рд┐рдЪрд┐рдд рд╣реБрдиреБрд╣реБрдиреНрди рднрдиреЗ, рддрдкрд╛рдЗрдБ рдирд╛рдиреЛрдорд╛ рдХрд╛рдо рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рддрдкрд╛рдЗрдБрдХреЛ рдЕрдзрд┐рдХрд╛рд░.
рд╕рдмреИрднрдиреНрджрд╛ рдЖрдзрд╛рд░рднреВрдд Vim рдЖрджреЗрд╢рд╣рд░реВ
рд▓реЗрдЦ рднрд░ Vim рд╕рдореНрдкрд╛рджрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА, рддрдкрд╛рдЗрдБ рдХреЗрд╡рд▓ рдирд┐рдореНрди рдЬрд╛рдиреНрди рдЖрд╡рд╢реНрдпрдХ рдЫред
- Vim рдорд╛ рд╡рд┐рднрд┐рдиреНрди рдореЛрдбрд╣рд░реВ рдЫрдиреН: рд╕рд╛рдорд╛рдиреНрдп рдореЛрдб, рдЬрд╕рдорд╛ рддрдкрд╛рдЗрдБ рдЖрджреЗрд╢рд╣рд░реВ рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рд░ рдореЛрдбрд╣рд░реВ рд░ рдЕрдиреНрдпрд╣рд░реВ рдЪрдпрди рдЧрд░реНрдиреБрд╣реБрдиреНрдЫред
- рдХреБрдиреИ рдкрдирд┐ рдореЛрдбрдмрд╛рдЯ рдмрд╛рд╣рд┐рд░ рдирд┐рд╕реНрдХрди рд░ рд╕рд╛рдорд╛рдиреНрдп рдореЛрдбрдорд╛ рдлрд░реНрдХрди, рдорд╛рддреНрд░ рдерд┐рдЪреНрдиреБрд╣реЛрд╕реН
Esc
- рд╡рд░рд┐рдкрд░рд┐ рд╕рд╛рд░реНрдиреБрд╣реЛрд╕реН: рддрдкрд╛рдИрдВ рдХреЗрд╡рд▓ рддреАрд░рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ
- рдмрдЪрдд рдирдЧрд░реА рдмрд╛рд╣рд┐рд░ рдирд┐рд╕реНрдХрдиреБрд╣реЛрд╕реН
<Normal mode>
::q!
- рдмрд╛рд╣рд┐рд░ рдирд┐рд╕реНрдХрдиреБрд╣реЛрд╕реН рд░ рдмрдЪрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН
<Normal mode>
::wq
- рдкрд╛рда рдЗрдирдкреБрдЯ рдореЛрдбрдорд╛ рд╕реНрд╡рд┐рдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реН
<Normal mode>
:i
(рдЕ fromреНрдЧреНрд░реЗрдЬреАрдмрд╛рдЯ)ред рд╕рдореНрдорд┐рд▓рд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реН)
- рд╣рд╛рдореА рд╣рд╛рдореНрд░реЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдЮреНрдЬреА рдШреБрд╕рд╛рдЙрдБрдЫреМрдВ (рдЬреБрди рд╣рд╛рдореАрд▓реЗ рдорд╛рдерд┐ рдЧрд░реНрдпреМрдВ)
- рд╣рд╛рдореА рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рд╡рд┐рд░реБрджреНрдз рд╕реБрд░рдХреНрд╖рд╛ рдЧрд░реНрдЫреМрдВ:
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
рд╕реЛрдзрд┐рдПрдХрд╛ рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдЬрд╡рд╛рдл рджрд┐рдиреБрд╣реЛрд╕реНред рдпрджрд┐ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдХреЗ рдЬрд╡рд╛рдл рджрд┐рдиреЗ рдерд╛рд╣рд╛ рдЫреИрди рднрдиреЗ, рдпрд╣рд╛рдБ рдХреЗрд╣реА рд╕реБрдЭрд╛рд╡ рдЧрд░рд┐рдПрдХрд╛ рд╡рд┐рдХрд▓реНрдкрд╣рд░реВ рдЫрдиреН:
-
рдкрд╛рд╕рд╡рд░реНрдб рдкреНрд▓рдЧрдЗрди рдкреНрд░рдорд╛рдгрд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реН -
N
-
рдмреЗрдирд╛рдореА рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВ рд╣рдЯрд╛рдЙрдиреЗ рд╣реЛ? -
Y
-
рдЯрд╛рдвреИрдмрд╛рдЯ рд░реВрдЯ рд▓рдЧрдЗрди рдЕрд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрдиреЗ рд╣реЛ? -
N
-
рдкрд░реАрдХреНрд╖рдг рдбрд╛рдЯрд╛рдмреЗрд╕ рд░ рдкрд╣реБрдБрдЪ рд╣рдЯрд╛рдЙрдиреБрд╣реЛрд╕реН? -
N
-
рдЕрдм рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ рдкреБрди: рд▓реЛрдб рдЧрд░реНрдиреЗ? -
Y
-
MySQL рдорд╛ рдЬрд╛рдФрдВ:
sudo mysql
-
рдкрд╣реБрдБрдЪ рд╡рд┐рдзрд┐рд╣рд░реВ рд╣реЗрд░реМрдВ:
SELECT user,authentication_string,plugin,host FROM mysql.user;
-
рд░реВрдЯрдХреЛ рд▓рд╛рдЧрд┐ рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН:
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
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
-
MySQL рдорд╛ рдЬрд╛рдФрдВ:
mysql -u root -p
-
рдирд╛рдордХреЛ рд╕рд╛рде рдбрд╛рдЯрд╛рдмреЗрд╕ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН laravel:
CREATE DATABASE laravel DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
-
рд╣рд╛рдореА рд░реВрдЯ рдкрд╣реБрдБрдЪ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫреМрдВ 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 <╨Ш╨╝╤П ╨┐╤А╨╛╨╡╨║╤В╨░>
рдЕрд░реНрдХреЛ рддрдкрд╛рдИрдВрд▓реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, Github рдмрд╛рдЯ рдХреНрд▓реЛрдирд┐рдВрдЧред
cd ./<╨Ш╨╝╤П ╨┐╤А╨╛╨╡╨║╤В╨░>
git clone <╤Б╤Б╤Л╨╗╨║╨░ ╨╜╨░ ╨┐╤А╨╛╨╡╨║╤В> .
рдпреЛ рд╡рд┐рдЪрд╛рд░ рдЧрд░реНрди рд▓рд╛рдпрдХ рдЫ рдХрд┐ рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рд╕реНрдерд┐рд░ рдлрд╛рдЗрд▓рд╣рд░реВ рдмрдЪрдд рдЧрд░реНрдиреБрднрдПрди (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдмрд╛рдЯ /public
) Github рдорд╛, рддреНрдпрд╕рдкрдЫрд┐ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдкрдорд╛ рддрдкрд╛рдИрдВрд╕рдБрдЧ рддрд┐рдиреАрд╣рд░реВ рд╣реБрдиреЗрдЫреИрдиред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдореИрд▓реЗ рдпрд╕рд▓рд╛рдИ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рдЫреБрдЯреНрдЯреИ рдереНрд░реЗрдб рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реЗрдХреЛ рдЫреБ 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 рд▓рд╛рдИ рдЙрддреНрдкрд╛рджрди, APP_DEBUG рд▓рд╛рдИ рдЧрд▓рддрд╕рдБрдЧ рдмрджрд▓реНрдиреБрд╣реЛрд╕реН рд░ 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
Laravel рдХреЛ рд▓рд╛рдЧреА 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 рдорд╛ рдбреЛрдореЗрди рд╕реЗрдЯрдЕрдк рдЧрд░реНрджреИ
рд╕рдмреИ рдХреБрд░рд╛ рд╡рд╛рд╕реНрддрд╡рдорд╛ рдзреЗрд░реИ рд╕рд░рд▓ рдЫред рддрдкрд╛рдИрдВрд▓реЗ рдбреЛрдореЗрди (рдХрд╣реАрдБ рдкрдирд┐) рдХрд┐рдиреНрдиреБрд╣реБрдиреНрдЫ, рдбрд┐рдЬрд┐рдЯрд▓рдУрд╢рдирдорд╛ рд╕реНрд╡рд┐рдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд╕рд┐рд░реНрдЬрдирд╛->рдбреЛрдореЗрди/DNSред ╨Т ╨┐╨╛╨╗╨╡ рдПрдЙрдЯрд╛ рдбреЛрдореЗрди рдЬреЛрдбреНрдиреБрд╣реЛрд╕реН рддрдкрд╛рдИрдВрд▓реЗ рдпреЛ рдбреЛрдореЗрди рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдердкреНрдиреБрд╣реЛрд╕реН рдХреНрд▓рд┐рдХ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рддреНрдпрд╕рдкрдЫрд┐ рдбреЛрдореЗрди рд╕реЗрдЯрд┐рдЩ рд░ рдлрд┐рд▓реНрдбрдорд╛ рдЬрд╛рдиреБрд╣реЛрд╕реН HOST NAME рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН @ред рдПрдЙрдЯрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЪрдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдХреНрд▓рд┐рдХ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░реЗрдХрд░реНрдб рдмрдирд╛рдЙрдиреБрд╣реЛрд╕реН.
рдЕрдм рддрдкрд╛рдИрд▓реЗ рдбреЛрдореЗрди рдХрд┐рдиреНрдиреБ рднрдПрдХреЛ рд╕рд╛рдЗрдЯрдорд╛ рдЬрд╛рдиреБрд╣реЛрд╕реН, рддреНрдпрд╣рд╛рдБ "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 рдкреНрд░рд╢рд┐рдХреНрд╖рдгрдХреЛ рд▓рд╛рдЧрд┐ рдЙрддреНрдХреГрд╖реНрдЯ рд╕реНрдкреНрд░рд┐рдВрдЧрдмреЛрд░реНрдб рд╣реЛред
PS рд╡рд┐рд╢реЗрд╖ рдзрдиреНрдпрд╡рд╛рдж рд▓реЗрдЦрдХрд▓рд╛рдИ
PPS рдпрджрд┐ рддрдкрд╛рдИрдВ bash рдЖрджреЗрд╢рд╣рд░реВрдорд╛ рд╕реЛрдЪреНрдиреЗ рд╢реАрд░реНрд╖ рдЗрдиреНрдЬрд┐рдирд┐рдпрд░ рд╣реБрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рдХреГрдкрдпрд╛ рдХрдареЛрд░ рд░реВрдкрдорд╛ рдиреНрдпрд╛рдп рдирдЧрд░реНрдиреБрд╣реЛрд╕реНред рддрдкрд╛рдИрд▓рд╛рдИ рдпреЛ рд▓реЗрдЦ рддрд▓реНрд▓реЛ рд╕реНрддрд░рдХреЛ рд▓рд╛рдЧреНрди рд╕рдХреНрдЫ, рддрд░ рдорд▓рд╛рдИ рдЖрд╡рд╢реНрдпрдХ рдкрд░реЗрдХреЛ рдмреЗрд▓рд╛рдорд╛ рдПрдЙрдЯрд╛ рднреЗрдЯреНрдЯрд╛рдЙрди рдкрд╛рдЙрдБрджрд╛ рдЦреБрд╕реА рд╣реБрдиреЗ рдерд┐рдПрдБред рдпрджрд┐ рддреНрдпрд╣рд╛рдБ рд╕реБрдзрд╛рд░рдХреЛ рд▓рд╛рдЧрд┐ рд╕реБрдЭрд╛рд╡рд╣рд░реВ рдЫрдиреН рднрдиреЗ, рдо рдпрд╕рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдмреИ рдЫреБред
рд╕реНрд░реЛрдд: www.habr.com