Ubuntu & Nginx дээр Laravel 7 дээр програм байрлуулж байна

Ubuntu & Nginx дээр Laravel 7 дээр програм байрлуулж байна

Би Laravel 7 ашиглан портфолио хийхээр шийдсэн. Ингэснээр үндсэн хуудас нь буух хуудас байх ба түүн дээрх бүх мэдээллийг админ самбар ашиглан өөрчлөх боломжтой. Гол нь биш. Энэ нь байршуулах гэж ирсэн. Би бүх асуудалтай, бүрэн хэмжээний сервер дээр үүнийг хэрхэн хийх талаар хэд хэдэн сайн заавар олсон. Би байршуулах тал дээр тийм ч хүчтэй биш; Би ерөнхийдөө бүрэн стекээс илүү урд байдаг. Хэрэв би PHP дээр бичиж, туршиж чадвал серверийг удирдахаас өмнө гэх мэт. Би том болоогүй л байна. Гэхдээ би үүнийг олох ёстой байсан.

Одоо бид SSH-ээр дамжуулан эхлүүлэхээс эхлээд ажлын сайт хүртэл бүх үе шатыг давах болно. Бид бүх бэрхшээлээс зайлсхийхийг хичээх болно.

Та үүнтэй төстэй зааварчилгааг онлайнаар олж болно. Эцсийн эцэст би үүнийг олсон. Үнэн, нэг газар биш, StackOverflow-ийн тусламжгүйгээр биш, орос хэл дээр бараг байхгүй. Би зовж шаналсан. Тийм учраас би чиний амьдралыг хялбарчлахаар шийдсэн.

DigitalOcean дээр бид бүх зүйлийг дусал дуслаар хийх болно. Энэ нь мэдээжийн хэрэг шаардлагагүй, ямар ч хостинг сонго. Та Ubuntu дээр ажиллаж байгаа серверт очихдоо буцаж ирээрэй. DigitalOcean дээр үүнийг хийхээр шийдсэн хэвээр байгаа хүмүүст домэйн тохируулах талаар илүү олон зөвлөмжүүд байх болно. Тэгээд 100 долларын лавлагааны холбоос.

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

Лараэлэл

  • 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-ээр дамжуулан бүгдийг хийж үзээрэй, энэ нь туслах болно.

Дээд талд байгаа цэсэн дээр дарна уу бий болгох->ДусалБайна. Сонгоорой Ubuntu.

Бүртгүүлмэгц таны дансанд 100 доллар орох болно. Гэхдээ битгий хуурт. Танд үүнийг зарцуулахад ердөө 60 хоног байна. Мөн энэ нь маш бага юм. Та надтай адил илүү үнэтэй төлөвлөгөө ашиглахыг хүсч магадгүй бөгөөд ингэснээр дараа нь бодит мөнгө урсаж эхлэхэд хямд төсөр төлөвлөгөө рүү шилжих боломжтой болно. Энэ нь ажиллахгүй гэдгийг би шууд хэлье. Та үүнийг нэмэгдүүлэх боломжтой, гэхдээ та үүнийг бууруулж чадахгүй. Ингээд явж байна. би сонгоно стандарт->$5.

Би хамгийн ойр бүс нутгийг сонгодог Франкфуртын. VPC сүлжээ->анхдагч-fra1

Бид SSH-ээр дамжуулан баталгаажуулалтыг нэн даруй хийх болно. дарна уу Шинэ SSH түлхүүр. Хэрэв танд SSH байхгүй бол баруун талд нь маш энгийн заавар байдаг. Bash терминалыг нээгээд буулгана уу ssh-keygen. Дараа нь бид нийтийн түлхүүрээр файл руу очно /Users/<Ваше имя пользователя>/.ssh/id_rsa.pub (эсвэл зүгээр л cat ~/.ssh/id_rsa.pub), агуулгыг хуулж, зүүн талд байгаа цонхонд буулгана уу. Ямар ч нэр.

Бид дуслын хостын нэрийг гаргаж ирдэг.

Түлхэх Дусал үүсгэх

Шинэ хэрэглэгч үүсгэнэ үү

  • 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 (англи хэлнээс оруулах)
  • Бид нийтийн түлхүүрээ оруулна (бид дээр дурдсан)
  • Бид өөрчлөлтөөс хамгаалдаг: 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 руу очно уу. Хэрэв бүх зүйл хэвийн бол та дараах зүйлийг харах хэрэгтэй.

Ubuntu & Nginx дээр Laravel 7 дээр програм байрлуулж байна

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 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/<Ваш домен>

"<Таны домэйн>"-ын оронд домайныг оруулна уу (жишээ нь, 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

Та иймэрхүү зүйлийг харах ёстой:

Ubuntu & Nginx дээр Laravel 7 дээр програм байрлуулж байна

Одоо энэ файлыг устгаж болно: 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;

  • Бид 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 <Имя проекта>

Дараа нь та төслийг шилжүүлэх хэрэгтэй. Жишээлбэл, 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 дээр домэйн тохируулж байна

Үнэндээ бүх зүйл маш энгийн. Та домэйн худалдаж аваарай (хаана ч байсан), 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 доллар нь сургалтанд маш сайн трамплин юм.

Жич Зохиогчид онцгой талархал илэрхийлье энэ гол санаа, дээрх бүх үйлдлүүдийн үндэс суурь болсон. Зарим тохиолдолд энэ нь Laravel 7-д ажиллахгүй байна, би үүнийг зассан.

PPS Хэрэв та bash командыг боддог шилдэг инженер бол хатуу шүүмжилж болохгүй. Та энэ нийтлэлийг доод түвшнийх гэж бодож магадгүй, гэхдээ би хэрэгтэй үед нэгийг олохдоо баяртай байх байсан. Хэрэв сайжруулах санал байвал би үүнд бэлэн байна.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх