
แแ แแแแแแฌแงแแแขแ แจแแแแฅแแแ แฉแแแ แแแ แขแคแแแแ Laravel 7-แแก แแแแแงแแแแแแ. แแกแ, แ แแ แแแแแแ แ แแแแ แแ แงแแคแแแแงแ แกแแแแกแแแขแ แแแแ แแ แแ แแแกแแ แแ แกแแแฃแแ แงแแแแ แแแคแแ แแแชแแ แจแแแชแแแแแก แแแแแแแกแขแ แแชแแฃแแ แแแแแแแก แแแแแงแแแแแแ. แแ แแ แแก แฌแแ แขแแแ. แกแแฅแแ แแแแแแแแแแแแ แแแแแแ. แแ แแแแแแ แ แแแแแแแแ แแแ แแ แแแแแแแแแ, แแฃ แ แแแแ แฃแแแ แแแแแแแแแ แแก แกแ แฃแแคแแกแแแแ แกแแ แแแ แแ แงแแแแ แฃแกแแแแแแแแแแ. แแ แแ แแแ แซแแแแแ แซแแแแ แ แแแแแแแแแแจแ; แแ แแแแแแแ แฃแคแ แ แฌแแ แแแ , แแแแ แ แกแ แฃแแ แกแขแแแ. แแ แแฃ แแแแแช แจแแแแซแแแ PHP-แจแ แฌแแ แ แแ แขแแกแขแแ แแแ, แแแจแแ แกแแ แแแ แแก แแแ แแแแแแ แแ แ.แจ. แฏแแ แแ แแแแแ แแแแแแ . แแแแ แแ แแ แฃแแแ แแแแแ แแแแ.
แแฎแแ แฉแแแ แแแแแแแแ แงแแแแ แกแแคแแฎแฃแ แก, แแแฌแงแแแฃแแ SSH-แแ แแแจแแแแแ แแ แกแแแฃแจแแ แกแแแขแแ แแแแแแแ แแแฃแแ. แฉแแแ แแแชแแแแแ แแแแแแแ แแแแชแแแแ แงแแแแ แฎแแคแแแ.
แแฅแแแ แจแแแแซแแแแ แแแแแแ แแกแแแแกแ แแแกแขแ แฃแฅแชแแแแ แแแขแแ แแแขแจแ. แแแแแก แแ แแแแแก, แแแแแก แแแแแแ. แแแ แแแแแ, แแ แ แแ แ แแแแแแแก, แแ แช StackOverflow-แแก แแแฎแแแ แแแแก แแแ แแจแ แแ แซแแแแแ แ แฃแกแฃแแแ. แแแแแแชแแ. แแแแขแแ แแแแแแฌแงแแแขแ แจแแแ แชแฎแแแ แแแ แแแแแแแ แขแแแแแแแ.
แฉแแแ แงแแแแแคแแ แก แแแแแแแแแแ แฌแแแแแ DigitalOcean-แแ. แแก, แ แ แแฅแแ แฃแแแ, แแ แแ แแก แแฃแชแแแแแแแ; แแแ แฉแแแ แแแแแกแแแแ แ แฐแแกแขแแแแ. แ แแแแกแแช Ubuntu-แแ แกแแแฃแจแแ แกแแ แแแ แก แแแแฆแฌแแแ, แแแแ แฃแแแแ. แแแแแแแก, แแแแช แแแแแช แแแแแฌแงแแแขแก แแแแก แแแแแแแแแก DigitalOcean-แแ, แแฅแแแแ แแแขแ แ แฉแแแ แแแแแแแก แแแงแแแแแแก แจแแกแแฎแแ. แแ .
DigitalOcean-แแก แกแแแชแแคแแแฃแ แ แงแแแแ แแแแแฏแ แแแชแแแฃแแแ แแกแแแแก แกแฅแแแแแแแจแ.
แฒแแแแฌแงแแ.
TL;DR (แแฎแแแแ แซแแ แแแแแ แแ แซแแแแแแแ)
แจแแฅแแแแแ แแแแฎแแแ แแแแแ
ssh root@[IP-ะฐะดัะตั ะฒะฐัะตะณะพ ะดัะพะฟะปะตัะฐ]adduser laravelusermod -aG sudo laravelsu laravel
แแแแแแขแแ แแแก SSH
mkdir ~/.sshchmod 700 ~/.sshvim ~/.ssh/authorized_keys- แฉแแแแ แกแแฏแแ แ แแแกแแฆแแแ
chmod 600 ~/.ssh/authorized_keys
Firewall
sudo ufw allow OpenSSHsudo ufw enablesudo ufw status
แแแแแฅแกแ
sudo apt updatesudo apt install -y nginxsudo ufw allow 'Nginx HTTP'sudo ufw status
MySQL
sudo apt install -y mysql-serversudo mysql_secure_installation,NYNNYsudo mysqlALTER 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 updatesudo apt install -y curl wget gnupg2 ca-certificates lsb-release apt-transport-httpssudo apt-add-repository ppa:ondrej/phpsudo apt update7.3:
sudo apt install -y php7.3-fpm php7.3-mysql7.4:
sudo apt install -y php7.4-fpm php7.4-mysqlsudo 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 แแแงแแแแแ 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 แแแ แแแแขแ แ 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/defaultsudo nginx -tsudo systemctl reload nginx
Laravel
7.3:
sudo apt install -y php7.3-mbstring php7.3-xml composer unzip7.4:
sudo apt install -y php7.4-mbstring php7.4-xml composer unzipmysql -u root -pCREATE DATABASE laravel DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;GRANT ALL ON laravel.* TO 'root'@'localhost' IDENTIFIED BY '<ะะฐั ะฟะฐัะพะปั ะพั MySQL>';FLUSH PRIVILEGES;exitcd /var/www/htmlsudo mkdir -p <ะะผั ะฟัะพะตะบัะฐ>sudo chown laravel:laravel <ะะผั ะฟัะพะตะบัะฐ>cd ./<ะะผั ะฟัะพะตะบัะฐ>git clone <ัััะปะบะฐ ะฝะฐ ะฟัะพะตะบั> ./git clone -b <ะธะผั ะฒะตัะบะธ> --single-branch <ัััะปะบะฐ ะฝะฐ ะฟัะพะตะบั> .composer installvim .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 migratephp artisan key:generatesudo chown -R $USER:www-data storagesudo chown -R $USER:www-data bootstrap/cachechmod -R 775 storagechmod -R 775 bootstrap/cache
HTTPS
sudo add-apt-repository ppa:certbot/certbotsudo apt install -y python-certbot-nginxsudo certbot certonly --webroot --webroot-path=/var/www/html/<ะะผั ะฟัะพะตะบัะฐ>/public -d <ะะฐั ะดะพะผะตะฝ> -d www.<ะะฐั ะดะพะผะตะฝ>sudo nginx -tsudo ufw allow 'Nginx HTTPS'sudo ufw statussudo systemctl reload nginx
แจแแฅแแแแแ แฌแแแแ DigitalOcean-แแ แแ แแแแ แแแแกแขแ แแ แแ แแฎแแแ SSH แแแกแแฆแแแ
แแ แแแแแแแแแ แแฏแแ แ, แ แแ แแฅแแแ แแแแแ แแแแแแแ แ แแแแ แแแ แแแแกแขแ แแ แแแ DigitalOcean-แจแ. แแก แแ แแ แแก แแแแแแ, แแแแ แ แแแแแแแฌแแแแแ แแ แกแฎแแ แ แแแแ. แแฃ แแฃแแแแแแ แแฆแแแ แฅแกแแแแก แจแแชแแแแแก แแแแฃแแแแขแแแแก แแแแแงแแแแแแ แแแแแแแฌแแแแแกแแก, แกแชแแแแ แงแแแแแคแแ แ แแแแแแแแ VPN-แแก แกแแจแฃแแแแแแ, แแก แฃแแแ แแแแแฎแแแ แแ.
แแแแแฃแจแ แแแแ, แแแแฌแแแแฃแแแ แจแแฅแแแ->แฌแแแแแแ. แแแ แฉแแแ Ubuntu.
แ แแแแ แช แแ แแแ แแแแกแขแ แแ แแแแแ, แแฅแแแแก แแแแแ แแจแแ แแแแฆแแแ $100-แก. แแแแ แแ แแ แแแแแขแงแฃแแ. แแฅแแแ แแฎแแแแ 60 แแฆแ แแแฅแแ แแแก แแแกแแขแแ แแแแแ. แแ แแก แซแแแแแ แชแแขแแ. แแฅแแแแช แฉแแแกแแแแ แแกแฃแ แ แแแแแแงแแแแ แฃแคแ แ แซแแแ แ แแแแแ, แ แแแ แแแแแแแแแแแ, แ แแชแ แ แแแแฃแ แ แคแฃแแ แแแแฌแงแแแก แแแแแแแก, แแแแแฎแแแแแ แฃแคแ แ แแแคแแ. แแแจแแแแ แแแขแงแแแ, แ แแ แแก แแ แแแฃแจแแแแแก. แจแแแแซแแแ แแแแแ แแ, แแแแ แแ แแแ แจแแแแชแแ แ. แแกแ แแแแแก. แแ แแแ แฉแแ แกแขแแแแแ แขแฃแแ->$5.
แฉแแแแแแ แงแแแแแแ แแฎแแแก แแแ แฉแแ แ แแแแแแก Frankfurt. VPC แฅแกแแแ->แแแแฃแแแกแฎแแแแ-fra1
แฉแแแ แแแฃแงแแแแแแแแ แจแแแแกแ แฃแแแแ แแแแแแขแแคแแแแชแแแก SSH-แแก แกแแจแฃแแแแแแ. แแแแฌแแแแฃแแแ แแฎแแแ SSH แแแกแแฆแแแ. แแฃ แแ แแแฅแแ SSH, แแแ แฏแแแแ แแ แแก แซแแแแแ แแแ แขแแแ แแแกแขแ แฃแฅแชแแแแ. แแแฎแกแแแแ แแแจแแก แขแแ แแแแแแ แแ แฉแแกแแแ
ssh-keygen. แจแแแแแ แแแแแแแแแแ แ แคแแแแแ แกแแฏแแ แ แแแกแแฆแแแแ/Users/<ะะฐัะต ะธะผั ะฟะพะปัะทะพะฒะฐัะตะปั>/.ssh/id_rsa.pub(แแ แฃแแ แแแแcat ~/.ssh/id_rsa.pub), แแแแแแแแ แแ แจแแแแแ แกแ แแ แฉแแกแแแ แแแ แชแฎแแแ แคแแแฏแแ แแจแ. แแแแแกแแแแ แ แกแแฎแแแ.แฉแแแ แแแฆแแแ แฐแแกแขแแก แกแแฎแแแก แฌแแแแแกแแแแก.
แแแแฌแแแแฃแแแ แแฅ แจแแฅแแแแแ Droplet
แจแแฅแแแแแ แแฎแแแ แแแแฎแแแ แแแแแ
ssh root@[IP-ะฐะดัะตั ะฒะฐัะตะณะพ ะดัะพะฟะปะตัะฐ]- แแแ แฌแแฃแแแแฃแแ แฎแแ แ, แ แแ แแกแฃแ แ แแแแแ แซแแแแ แแแแแแจแแ แแแ (แแแแฎ/แแ แ/[แแแแแก แแแแแแญแแ])?
yes - แจแแแงแแแแแ แแฅแแแแ SSH แแแ แแแ
- แจแแฅแแแแแ แแแแฎแแแ แแแแแ แแแ แแแแแ:
adduser laravel - แจแแแงแแแแแ แแฅแแแแ แแแ แแแ แแ แกแฎแแ แแแคแแ แแแชแแ (แแ แแฎแแแแ แกแ แฃแ แกแแฎแแแก แแฌแแ )
- แแแแแแขแแ แแแแฎแแแ แแแแแ sudo แฏแแฃแคแจแ:
usermod -aG sudo laravel
SSH แแฎแแแ แแแแฎแแแ แแแแแกแแแแก
- แแฎแแ แแแแฎแแแ แแแแแแ แแแแแ แแแ:
su laravel
แฉแแแ แแแฎแแ แชแแแแแแ แงแแแแ แแแฅแแแแแแแก แจแแแแแแแจแ, แกแขแแขแแแก แแแแแแแ, แแแ แแแแแแก แแแแฎแแแ แแแแแก แกแแฎแแแแ. แแแแขแแ, แแฃ แแแฃแแแแแแแแ แจแแแแจแแแแ, แฎแแแแฎแแ แจแแแแ แกแแกแขแแแแจแ แแ แจแแแแ su laravel
mkdir ~/.sshchmod 700 ~/.sshvim ~/.ssh/authorized_keys
แฉแแแ แแแแฎแกแแแแ แคแแแแ Vim-แจแ. แแฃ แกแแแ แแแ แแ แแชแแแ, แจแแแแซแแแ แแแแแจแ แแแฃแจแแ, แจแแแ แฃแคแแแแแ.
แงแแแแแแ แซแแ แแแแแ Vim แแ แซแแแแแแแ
แแแแกแแแแแก, แ แแ แแแแแแงแแแแ Vim แ แแแแฅแขแแ แ แแแแแ แกแขแแขแแแก แแแแแแแแแแแจแ, แแฅแแแ แฃแแ แแแแ แฃแแแ แแชแแแแ แจแแแแแแ.
- Vim-แก แแฅแแก แกแฎแแแแแกแฎแแ แ แแแแแ: แแแ แแแแฃแ แ แ แแแแแ, แ แแแแแจแแช แจแแแแฎแแ แ แแ แซแแแแแแแ แแ แแ แฉแแแ แ แแแแแแแก แแ แกแฎแแ.
- แแแแแกแแแแ แ แ แแแแแแแแ แแแกแแกแแแแแแ แแ แแแ แแแแฃแ แ แแแแแจแ แแแกแแแ แฃแแแแแแ, แฃแแ แแแแ แแแแญแแ แแ
Esc - แแแแแแแแแแแแ: แจแแแแซแแแแ แฃแแ แแแแ แแแแแแงแแแแ แแกแ แแแ
- แแแกแแแ แจแแแแฎแแแก แแแ แแจแ
<Normal mode>::q! - แแแแแ แแ แจแแแแแฎแแ
<Normal mode>::wq - แขแแฅแกแขแแก แจแแงแแแแแก แ แแแแแจแ แแแแแ แแแ
<Normal mode>:i(แแแแแแกแฃแ แแแแ. แฉแแแแ แแแ)
- แฉแแแ แฉแแแกแแแ แฉแแแแ แกแแฏแแ แ แแแกแแฆแแแ (แ แแช แแแแแ แแแแแแแแแ)
- แฉแแแ แแแชแแแ แชแแแแแแแแแแกแแแ:
chmod 600 ~/.ssh/authorized_keys
Firewall-แแก แแแงแแแแแ
- แแแแแ แจแแแฎแแแแ แงแแแแ แจแแกแแซแแ แแแ แแแแขแ แก:
sudo ufw app list - OpenSSH-แแก แแแจแแแแ (แฌแแแแแฆแแแแ แจแแแแฎแแแแแจแ แแก แแแแแแแแแแแแก):
sudo ufw allow OpenSSH - แแแแแ แแแแฃแจแแแ firewall:
sudo ufw enable,y - แฉแแแ แจแแแแแฌแแแ:
sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)แฒงแแแแแคแแ แ แแแ แแแแแ.
Nginx-แแก แแแกแขแแแแชแแ
แแแกแขแแแแชแแแก แแ แแก แฎแแแแแฎแแ แแแแแฎแแแ "แแแ แฌแแฃแแแแฃแแ แฎแแ ?" แฃแแแกแฃแฎแ y (แแแ แแ, แแฎแแแแ แแฃ แแแ แฌแแฃแแแแฃแแ แฎแแ แ).
sudo apt updatesudo apt install nginx
Nginx-แแก แแแแแขแแแ firewall-แแก แแแ แแแแขแ แแแจแ
sudo ufw app listsudo 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แแ แแแฎแแแก root แจแแกแแแ แแแกแขแแแชแแฃแ แแ? -
Nแแกแฃแ แ แกแแขแแกแขแ แแแแแชแแแแ แแแแแก แฌแแจแแ แแ แแแกแแ แฌแแแแแ? -
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 updatesudo apt install -y curl wget gnupg2 ca-certificates lsb-release apt-transport-httpssudo apt-add-repository ppa:ondrej/phpsudo 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/<ะะฐั ะดะพะผะตะฝ>
"<แแฅแแแแ แแแแแแ>"-แแก แแแชแแแแ แจแแแงแแแแแ แแแแแแ (แแแแแแแแแ, 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แ แแแแกแแช แแแแแฆแฌแแแ root แแแแฎแแแแแก /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 unzip7.4:
sudo apt install php7.4-mbstring php7.4-xml composer unzipแแแแแ แแแแแแแแแ MySQL-แแ:
mysql -u root -pแจแแฅแแแแแ แแแแแชแแแแ แแแแ แกแแฎแแแแ แแแ แแแแแ:
CREATE DATABASE laravel DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;แฉแแแ แแฃแแ แฃแแแแแงแแคแ root แฌแแแแแแก แแแ แแแแแ:
GRANT ALL ON laravel.* TO 'root'@'localhost' IDENTIFIED BY '<ะะฐั ะฟะฐัะพะปั ะพั MySQL>';FLUSH PRIVILEGES;exitcd /var/www/htmlแจแแฅแแแแแ แกแแฅแแฆแแแแ แแ แแแฅแขแแกแแแแก:
sudo mkdir -p <ะะผั ะฟัะพะตะบัะฐ>แฉแแแ แแแฌแแแแ แแแแฎแแแ แแแแแก แแแ แแแแแ แฃแคแแแแแแ แแ แแแฅแขแแ:
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 false-แแ แแ แจแแแงแแแแแ แกแฌแแ แ แแแ แแแแขแ แแแ MySQL-แแกแแแแก.
- แแแแแชแแแแ แแแแแก แแแแ แแชแแ:
php artisan migrate - แแแแแก แแแแแ แแ แแแ:
php artisan key:generate
แแแแแ แแแแแแก แจแแชแแแ:
sudo chown -R $USER:www-data storagesudo chown -R $USER:www-data bootstrap/cachechmod -R 775 storagechmod -R 775 bootstrap/cache
แแแแ แ แแช แแแ แฉแ แแ แแก Nginx-แแก แฎแแแแฎแแ แแแแคแแแฃแ แแชแแ 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;
}
}แแกแแแ แ แแแแ แช แฌแแแ แฏแแ แแ, แแฃ แแแแก แแแชแแแแ แแแ แฉแแ แแแ แกแแ 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/certbotsudo apt install python-certbot-nginxsudo 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). แแ แแฅ แฉแแแ แแแแแแแแ แงแแแแแคแแ แก แแกแแแ, แ แแแแ แช แแแ แ, แแแแ แแ แแแจแแคแแ แแ.
แ แฉแแแ แแฎแแแแ แแแแแ แแแแแแก แแแงแแแแแ firewall-แจแ:
sudo nginx -tsudo ufw app listsudo ufw allow 'Nginx HTTPS'sudo ufw statussudo systemctl reload nginx
แแฎแแ แงแแแแแคแแ แ แแกแ แฃแแแ แแฃแจแแแแแแก, แ แแแแ แช แฃแแแ.
[Advanced] Node.js-แแก แแแกแขแแแแชแแ
แแฃ แแแฃแแแแแแแแ แแแแญแแ แแแแแ npm แแ แซแแแแแแแแก แแแ แแแแแ แกแแ แแแ แแ แแแจแแแแ, แฃแแแ แแแแแแกแขแแแแ แแ Node.js.
sudo apt updatesudo apt install -y nodejs npmnodejs -v
แแกแ แแแ, แแ แแขแแแแ แแแแฉแแ แแ. แแ แแแชแแแจแ, แจแแแแแแ แแแแงแแคแแแ แแแ . แแแแแ DigitalOcean-แแแ แแแแแแแแ แกแแแแ แ แฃแกแแแแแ แฃแคแ แ แแฎแแแก แแ แแแคแแ. แแแแ แแ แ แแแแแ แแ แฃแแแ แแแแแแ แ แงแแแแ แแแแแแแฌแแแแแก แ แแฃแแแ แกแแแขแแ แแ แงแแแแแคแแ แ แแแแแแแแ แแฅ, แแ แแแ แแแแแแแแแ แแแฉแแแแ. แแแ แแ แแแแกแ, แแแแ แกแแฌแงแแกแ 100 แแแแแ แ แจแแกแแแแจแแแแ แแแแชแแแ แแแ แแแ แฏแแจแแกแแแแก.
PS แแแแกแแแฃแแ แแแฃแแ แแแแแแแ แแแขแแ แก , แ แแแแแแช แกแแคแฃแซแแแแ แแแแแ แงแแแแ แแแแแ แฉแแแแแแแแ แฅแแแแแแแก. แแแ แจแแแแฎแแแแแจแ แแแ แแแแ 7-แแ แแ แแฃแจแแแแก, แแแแแกแฌแแ แ.
PPS แแฃ แแฅแแแ แฎแแ แ แขแแ แแแแแแแ แ, แ แแแแแแช แคแแฅแ แแแก bash แแ แซแแแแแแแจแ, แแแฎแแแ, แแแแชแ แแ แแฃ แแแแกแฏแแ. แจแแแซแแแแ แแก แกแขแแขแแ แแแแแแ แแแแแก แแแแแฉแแแแแ, แแแแ แแ แกแแแแแแแแแแ แแแแแแแแแ, แ แแชแ แแแแญแแ แแแแแแ. แแฃ แแ แกแแแแแก แฌแแแแแแแแแแแ แแแฃแแฏแแแแกแแแแก แจแแกแแฎแแ, แแ แแแแก แแแแฎแ แ แแแ .
แฌแงแแ แ: www.habr.com
