рдореИрдВрдиреЗ рд▓рд╛рд░рд╡реЗрд▓ 7 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдирд╛ рдкреЛрд░реНрдЯрдлреЛрд▓рд┐рдпреЛ рдмрдирд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рддрд╛рдХрд┐ рдореБрдЦреНрдп рдкреГрд╖реНрда рдПрдХ рд▓реИрдВрдбрд┐рдВрдЧ рдкреГрд╖реНрда рд╣реЛ, рдФрд░ рдЙрд╕ рдкрд░ рдореМрдЬреВрдж рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкреИрдирд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХреЗред рдмрд╛рдд рдпрд╣ рдирд╣реАрдВ рд╣реИ. рдмрд╛рдд рддреИрдирд╛рддреА рдХреА рдЖ рдЧрдИ. рдореБрдЭреЗ рд╕рднреА рдкрд░реЗрд╢рд╛рдирд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдкреВрд░реНрдг рд╕рд░реНрд╡рд░ рдкрд░ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд░реЗрдВ, рдЗрд╕ рдкрд░ рдХреБрдЫ рдЕрдЪреНрдЫреЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдорд┐рд▓реЗред рдореИрдВ рддреИрдирд╛рддреА рдореЗрдВ рдмрд╣реБрдд рдордЬрдмреВрдд рдирд╣реАрдВ рд╣реВрдВ; рдореИрдВ рдЖрдо рддреМрд░ рдкрд░ рдкреВрд░реНрдг рд╕реНрдЯреИрдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдЖрдЧреЗ рд╣реВрдВред рдФрд░, рдЕрдЧрд░ рдореИрдВ рдЕрднреА рднреА PHP рдореЗрдВ рд▓рд┐рдЦ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рддреЛ рд╕рд░реНрд╡рд░ рдЖрджрд┐ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗред рдореИрдВ рдЕрднреА рдмрдбрд╝рд╛ рдирд╣реАрдВ рд╣реБрдЖ рд╣реВрдВ. рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЗрд╕рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдерд╛.
рдЕрдм рд╣рдо рд╕рднреА рдЪрд░рдгреЛрдВ рд╕реЗ рдЧреБрдЬрд░реЗрдВрдЧреЗ, рдПрд╕рдПрд╕рдПрдЪ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЙрдиреНрдЪ рд╕реЗ рд▓реЗрдХрд░ рдХрд╛рд░реНрдп рд╕реНрдерд▓ рддрдХред рд╣рдо рд╕рднреА рдиреБрдХрд╕рд╛рдиреЛрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ.
рдЖрдк рдЗрд╕реА рддрд░рд╣ рдХреЗ рдирд┐рд░реНрджреЗрд╢ рдСрдирд▓рд╛рдЗрди рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдЦрд╝рд┐рд░рдХрд╛рд░, рдЖрдЦрд╝рд┐рд░рдХрд╛рд░ рдореБрдЭреЗ рдпрд╣ рдорд┐рд▓ рд╣реА рдЧрдпрд╛ред рд╕рдЪ рд╣реИ, рдПрдХ рдЬрдЧрд╣ рдкрд░ рдирд╣реАрдВ, рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдХреА рдорджрдж рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ, рдФрд░ рд╢рд╛рдпрдж рд╣реА рд░реВрд╕реА рдореЗрдВред рдореБрдЭреЗ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЖрдкрдХреЗ рдЬреАрд╡рди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред
рд╣рдо DigitalOcean рдкрд░ рдПрдХ рдмреВрдВрдж рд╕реЗ рд╕рдм рдХреБрдЫ рдХрд░реЗрдВрдЧреЗред рдирд┐рдГрд╕рдВрджреЗрд╣, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ; рдХреЛрдИ рднреА рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдЪреБрдиреЗрдВред рдЬрдм рдЖрдк рдЙрдмрдВрдЯреВ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╕рд░реНрд╡рд░ рдкрд░ рдкрд╣реБрдВрдЪ рдЬрд╛рдПрдВ, рддреЛ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдВред рдЬреЛ рд▓реЛрдЧ рдЕрднреА рднреА DigitalOcean рдкрд░ рдЗрд╕реЗ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рдбреЛрдореЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рднреА рдпреБрдХреНрддрд┐рдпрд╛рдБ рд╣реЛрдВрдЧреАред рдФрд░
рд╕рднреА DigitalOcean-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЪрд░рдг рдЗрд╕ рддрд░рд╣ рдХреЗ рдлрд╝реБрдЯрдиреЛрдЯ рдореЗрдВ рджрд┐рдП рдЬрд╛рдПрдВрдЧреЗред
рдЪрд▓реЛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рдЯреАрдПрд▓;рдбреАрдЖрд░ (рдХреЗрд╡рд▓ рдореВрд▓ рдЖрджреЗрд╢)
рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдПрдВ
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;
}
}
рд▓рд╛рд░рд╡реЗрд▓ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ 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;
}
}
рд▓рд╛рд░рд╡реЗрд▓ рдХреЗ рд▓рд┐рдП 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 рдХреЗ рд╕рд╛рде рдкрдВрдЬреАрдХрд░рдг рдХреИрд╕реЗ рдХрд░реЗрдВред рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рддреНрдпрд╛рдкрди рдФрд░ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рд╕рд╛рде рдпрд╣ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рддреНрдпрд╛рдкрди рдХрд░рддреЗ рд╕рдордп рдЖрдкрдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдиреЗрдЯрд╡рд░реНрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ, рддреЛ рд╡реАрдкреАрдПрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдм рдХреБрдЫ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдЗрд╕рд╕реЗ рдорджрдж рдорд┐рд▓реЗрдЧреАред
рд╢реАрд░реНрд╖ рдкрд░ рдореЗрдиреВ рдореЗрдВ, рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдмрдирд╛рдПрдВ->рдмреВрдВрджреЛрдВ. рдЪреБрдирдирд╛ Ubuntu.
рдЬреИрд╕реЗ рд╣реА рдЖрдк рдкрдВрдЬреАрдХрд░рдг рдХрд░реЗрдВрдЧреЗ, рдЖрдкрдХреЗ рдЦрд╛рддреЗ рдореЗрдВ $100 рдкреНрд░рд╛рдкреНрдд рд╣реЛ рдЬрд╛рдпреЗрдВрдЧреЗред рд▓реЗрдХрд┐рди рдореВрд░реНрдЦ рдордд рдмрдиреЛ. рдЗрд╕реЗ рдЦрд░реНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ 60 рджрд┐рди рд╣реИрдВред рдФрд░ рдпреЗ рдмрд╣реБрдд рдХрдо рд╣реИ. рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рднреА рдореЗрд░реА рддрд░рд╣ рдЕрдзрд┐рдХ рдорд╣рдВрдЧреЗ рдкреНрд▓рд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВ, рддрд╛рдХрд┐ рдмрд╛рдж рдореЗрдВ, рдЬрдм рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреИрд╕рд╛ рдЖрдиреЗ рд▓рдЧреЗ, рддреЛ рдЖрдк рд╕рд╕реНрддреЗ рдкреНрд▓рд╛рди рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХреЗрдВред рдореИрдВ рдЖрдкрдХреЛ рддреБрд░рдВрдд рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдЖрдк рдЗрд╕реЗ рдмрдврд╝рд╛ рддреЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдШрдЯрд╛ рдирд╣реАрдВ рд╕рдХрддреЗред рддреЛ рдпрд╣ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВ рдЪрдпрди рдХрд░рддрд╛ рд╣реВрдВ рдорд╛рдирдХ->$5.
рдореИрдВ рдЕрдкрдиреЗ рдирд┐рдХрдЯрддрдо рдХреНрд╖реЗрддреНрд░ рдХреЛ рдЪреБрдирддрд╛ рд╣реВрдВ рдлреНрд░реИрдВрдХрдлрд░реНрдЯ. рд╡реАрдкреАрд╕реА рдиреЗрдЯрд╡рд░реНрдХ->рдбрд┐рдлрд╝реЙрд▓реНрдЯ-fra1
рд╣рдо рддреБрд░рдВрдд рдПрд╕рдПрд╕рдПрдЪ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд░реЗрдВрдЧреЗред рдХреНрд▓рд┐рдХ рдирдИ SSH рдХреБрдВрдЬреА. рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ SSH рдирд╣реАрдВ рд╣реИ, рддреЛ рджрд╛рдИрдВ рдУрд░ рдмрд╣реБрдд рд╕рд░рд▓ рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВред рдПрдХ рдмреИрд╢ рдЯрд░реНрдорд┐рдирд▓ рдЦреЛрд▓реЗрдВ рдФрд░ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ
ssh-keygen
. рдлрд┐рд░ рд╣рдо рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ/Users/<╨Т╨░╤И╨╡ ╨╕╨╝╤П ╨┐╨╛╨╗╤М╨╖╨╛╨▓╨░╤В╨╡╨╗╤П>/.ssh/id_rsa.pub
(рдпрд╛ рдХреЗрд╡рд▓cat ~/.ssh/id_rsa.pub
), рд╕рд╛рдордЧреНрд░реА рдХреЛ рдХреЙрдкреА рдХрд░реЗрдВ рдФрд░ рдмрд╛рдИрдВ рдУрд░ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВред рдХреЛрдИ рднреА рдирд╛рдоредрд╣рдо рдЫреЛрдЯреА рдмреВрдВрдж рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реЛрд╕реНрдЯрдирд╛рдо рд▓реЗрдХрд░ рдЖрдП рд╣реИрдВред
рдХреНрд▓рд┐рдХ рдбреНрд░реЙрдкрд▓реЗрдЯ рдмрдирд╛рдПрдВ
рдПрдХ рдирдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдПрдБ
ssh root@[IP-╨░╨┤╤А╨╡╤Б ╨▓╨░╤И╨╡╨│╨╛ ╨┤╤А╨╛╨┐╨╗╨╡╤В╨░]
- рдХреНрдпрд╛ рдЖрдк рд╡рд╛рдХрдИ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рд╣рд╛рдВ/рдирд╣реАрдВ/[рдлрд╝рд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ])?
yes
- рдЕрдкрдирд╛ рдПрд╕рдПрд╕рдПрдЪ рдкрд╛рд╕рд╡рд░реНрдб рджрд░реНрдЬ рдХрд░реЗрдВ
- рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдПрдВ Laravel:
adduser laravel
- рдЕрдкрдирд╛ рдкрд╛рд╕рд╡рд░реНрдб рдФрд░ рдЕрдиреНрдп рдЬрд╛рдирдХрд╛рд░реА рджрд░реНрдЬ рдХрд░реЗрдВ (рдореИрдВ рдХреЗрд╡рд▓ рдкреВрд░рд╛ рдирд╛рдо рджрд░реНрдЬ рдХрд░рддрд╛ рд╣реВрдВ)
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ sudo рд╕рдореВрд╣ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
usermod -aG sudo laravel
рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП SSH
- рдирдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ:
su laravel
рд╣рдо рд▓рд╛рд░рд╡реЗрд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдУрд░ рд╕реЗ, рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рддрдХ рдЖрдЧреЗ рдХреА рд╕рднреА рдХрд╛рд░реНрд░рд╡рд╛рдЗрдпрд╛рдВ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдЕрдЪрд╛рдирдХ рдмрд╛рдзрд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ рдкреБрдирдГ рд▓реЙрдЧрд┐рди рдХрд░реЗрдВ рдФрд░ рдкреНрд░рд╡реЗрд╢ рдХрд░реЗрдВ su laravel
mkdir ~/.ssh
chmod 700 ~/.ssh
vim ~/.ssh/authorized_keys
рд╣рдордиреЗ рд╡рд┐рдо рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реАред рдЕрдЧрд░ рдЖрдк рдЗрд╕рд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ рддреЛ рдЖрдк рдиреИрдиреЛ рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдкрдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╣реИ.
рд╕рдмрд╕реЗ рдмреБрдирд┐рдпрд╛рджреА рд╡рд┐рдо рдХрдорд╛рдВрдб
рдкреВрд░реЗ рд▓реЗрдЦ рдореЗрдВ рд╡рд┐рдо рд╕рдВрдкрд╛рджрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмрд╕ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
- рд╡рд┐рдо рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдореЛрдб рд╣реИрдВ: рд╕рд╛рдорд╛рдиреНрдп рдореЛрдб, рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдХрдорд╛рдВрдб рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдореЛрдб рдФрд░ рдЕрдиреНрдп рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВред
- рдХрд┐рд╕реА рднреА рдореЛрдб рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдореЛрдб рдкрд░ рд▓реМрдЯрдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рджрдмрд╛рдПрдВ
Esc
- рдЪрд╛рд░реЛрдВ рдУрд░ рдШреВрдореЗрдВ: рдЖрдк рдХреЗрд╡рд▓ рддреАрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
- рдмрдЪрдд рдХреЗ рдмрд┐рдирд╛ рдмрд╛рд╣рд░ рд╣реБрдпреЗ
<Normal mode>
::q!
- рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ рдФрд░ рд╕рд╣реЗрдЬреЗрдВ
<Normal mode>
::wq
- рдЯреЗрдХреНрд╕реНрдЯ рдЗрдирдкреБрдЯ рдореЛрдб рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ
<Normal mode>
:i
(рдЕрдВрдЧреНрд░реЗрдЬрд╝реА рд╕реЗред рдбрд╛рд▓рдиреЗ рдХреЗ)
- рд╣рдо рдЕрдкрдиреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рдбрд╛рд▓рддреЗ рд╣реИрдВ (рдЬреЛ рд╣рдордиреЗ рдКрдкрд░ рдХрд┐рдпрд╛ рдерд╛)
- рд╣рдо рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рд╕реЗ рд░рдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ:
chmod 600 ~/.ssh/authorized_keys
рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛
- рдЖрдЗрдП рд╕рднреА рдЙрдкрд▓рдмреНрдз рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рджреЗрдЦреЗрдВ:
sudo ufw app list
- рдУрдкрдирдПрд╕рдПрд╕рдПрдЪ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрдВ (рдЕрдиреНрдпрдерд╛ рдпрд╣ рд╣рдореЗрдВ рд▓реЙрдХ рдХрд░ рджреЗрдЧрд╛):
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)
рдЕрдкрдиреЗ рдЖрдИрдкреА рдкрд░ рдЬрд╛рдПрдВ. рдпрджрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд░рд╣рд╛, рддреЛ рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред
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
рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдбрд╛рд▓реЗрдВ
рдкреАрдПрдЪрдкреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛
рдЖрдЗрдП рдХрд┐рд╕реА рддреГрддреАрдп-рдкрдХреНрд╖ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
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 рдХреЗ рд▓рд┐рдП, рдЖрдк 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 рдлрд╛рд╕реНрдЯрд╕реАрдЬреАрдЖрдИ рдкреНрд░реЛрд╕реЗрд╕ рдореИрдиреЗрдЬрд░ (fpm) PHP рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдмреЗрд╢рдХ, MySQL рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП mysqlред
рдЕрдм рд╕реЗ рдореИрдВ рд╕рдм рдХреБрдЫ 7.4 рдкрд░ рдХрд░реВрдБрдЧрд╛ред
Nginx рдХреА рд╕реНрдерд╛рдкрдирд╛
sudo vim /etc/nginx/sites-available/<╨Т╨░╤И ╨┤╨╛╨╝╨╡╨╜>
"<рдЖрдкрдХрд╛ рдбреЛрдореЗрди>" рдХреЗ рдмрдЬрд╛рдп рдбреЛрдореЗрди рджрд░реНрдЬ рдХрд░реЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 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;
-
рд╣рдо рд░реВрдЯ рдПрдХреНрд╕реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ 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 рдХреЛ рдкреНрд░реЛрдбрдХреНрд╢рди рд╕реЗ, 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
рдЖрдЦрд┐рд░реА рдЪреАрдЬрд╝ рдЬреЛ рдмрдЪреА рд╣реИ рд╡рд╣ рд╣реИ рд▓рд╛рд░рд╡реЗрд▓ рдХреЗ рд▓рд┐рдП 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 рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ рдмрдирд╛рдПрдВ->рдбреЛрдореЗрди/рдбреАрдПрдирдПрд╕. ╨╛╨╗╨╡ рдПрдХ рдбреЛрдореЗрди рдЬреЛрдбрд╝реЗрдВ рдЖрдк рдЗрд╕ рдбреЛрдореЗрди рдХреЛ рджрд░реНрдЬ рдХрд░реЗрдВ рдФрд░ рдРрдб рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдлрд┐рд░ рдбреЛрдореЗрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдФрд░ рдлреАрд▓реНрдб рдкрд░ рдЬрд╛рдПрдВ HOSTNAME рдкреНрд░рд╡реЗрд╢ рдХрд░рдирд╛ @. рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЪреБрдиреЗрдВ рдФрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛рдПрдВ.
рдЕрдм рдЙрд╕ рд╕рд╛рдЗрдЯ рдкрд░ рдЬрд╛рдПрдВ рдЬрд╣рд╛рдВ рдЖрдкрдиреЗ рдбреЛрдореЗрди рдЦрд░реАрджрд╛ рдерд╛, рд╡рд╣рд╛рдВ "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 рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рд╕реНрдкреНрд░рд┐рдВрдЧрдмреЛрд░реНрдб рд╣реИред
рдкреБрдирд╢реНрдЪ рд▓реЗрдЦрдХ рдХреЛ рд╡рд┐рд╢реЗрд╖ рдзрдиреНрдпрд╡рд╛рдж
рдкреАрдкреАрдПрд╕ рдпрджрд┐ рдЖрдк рдПрдХ рд╢реАрд░реНрд╖ рдЗрдВрдЬреАрдирд┐рдпрд░ рд╣реИрдВ рдЬреЛ рдмреИрд╢ рдХрдорд╛рдВрдб рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдХрдареЛрд░рддрд╛ рд╕реЗ рдирд┐рд░реНрдгрдп рди рд▓реЗрдВред рдЖрдкрдХреЛ рдпрд╣ рд▓реЗрдЦ рдирд┐рдореНрди рд╕реНрддрд░ рдХрд╛ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдореБрдЭреЗ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рддреЛ рдореБрдЭреЗ рдЗрд╕реЗ рдкрд╛рдХрд░ рдЦреБрд╢реА рд╣реЛрдЧреАред рдпрджрд┐ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реБрдЭрд╛рд╡ рд╣реИрдВ рддреЛ рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВред
рд╕реНрд░реЛрдд: www.habr.com