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

Laravel

  • 7.3: sudo apt install -y php7.3-mbstring php7.3-xml composer unzip

  • 7.4: sudo apt install -y php7.4-mbstring php7.4-xml composer unzip

  • mysql -u root -p

  • CREATE DATABASE laravel DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

  • GRANT ALL ON laravel.* TO 'root'@'localhost' IDENTIFIED BY '<Ваш пароль от MySQL>';

  • FLUSH PRIVILEGES;

  • exit

  • cd /var/www/html

  • sudo mkdir -p <Имя проекта>

  • sudo chown laravel:laravel <Имя проекта>

  • cd ./<Имя проекта>

  • git clone <ссылка на проект> . / git clone -b <имя ветки> --single-branch <ссылка на проект> .

  • composer install

  • vim .env

APP_NAME=Laravel
APP_ENV=production
APP_KEY=
APP_DEBUG=false
APP_URL=http://<Ваш домен>

LOG_CHANNEL=stack

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=<Ваш пароль от MySQL>

  • php artisan migrate

  • php artisan key:generate

  • sudo chown -R $USER:www-data storage

  • sudo chown -R $USER:www-data bootstrap/cache

  • chmod -R 775 storage

  • chmod -R 775 bootstrap/cache

HTTPS

  • sudo add-apt-repository ppa:certbot/certbot

  • sudo apt install -y python-certbot-nginx

  • sudo certbot certonly --webroot --webroot-path=/var/www/html/<Имя проекта>/public -d <Ваш домен> -d www.<Ваш домен>

  • sudo nginx -t

  • sudo ufw allow 'Nginx HTTPS'

  • sudo ufw status

  • sudo systemctl reload nginx

DigitalOcean මත බිංදුවක් සාදා නව SSH යතුරක් ලියාපදිංචි කරන්න

DigitalOcean සමඟ ලියාපදිංචි වන්නේ කෙසේදැයි ඔබ විසින්ම සොයා ගනු ඇතැයි මම සැබවින්ම විශ්වාස කරමි. බොහෝ සත්‍යාපනය සහ වෙනත් දේවල් සමඟ එය පහසු නැත. ලේඛන භාවිතා කරමින් සත්‍යාපනය කිරීමේදී ඔබට නිරන්තරයෙන් ජාල දෝෂයක් ලැබෙන්නේ නම්, VPN හරහා සියල්ල කිරීමට උත්සාහ කරන්න, එය උදව් විය යුතුය.

ඉහළින් ඇති මෙනුවේ, ක්ලික් කරන්න නිර්මාණය->පොඩිති. තෝරන්න උබුන්ටු.

ඔබ ලියාපදිංචි වූ වහාම, ඔබගේ ගිණුමට ඩොලර් 100 ක් ලැබෙනු ඇත. නමුත් රැවටෙන්න එපා. ඔබට එය ගත කිරීමට ඇත්තේ දින 60 ක් පමණි. ඒ වගේම මේක ගොඩක් අඩුයි. ඔබට, මා මෙන්, වඩා මිල අධික සැලැස්මක් භාවිතා කිරීමට අවශ්‍ය විය හැක, එවිට සැබෑ මුදල් ගලා ඒම ආරම්භ වූ විට, ඔබට ලාභදායී එකකට මාරු විය හැක. එය ක්‍රියාත්මක නොවන බව මම ඔබට කෙලින්ම කියමි. ඔබට එය වැඩි කළ හැකිය, නමුත් ඔබට එය අඩු කළ නොහැක. ඉතින් ඒක යනවා. මම තෝරාගන්නවා සම්මත->$5.

මම තෝරා ගන්නේ අපට සමීපතම කලාපයයි ෆ්රැන්ක්ෆර්ට්. VPC ජාලය->default-fra1

අපි වහාම SSH හරහා සත්‍යාපනය කරන්නෙමු. ක්ලික් කරන්න නව SSH යතුර. ඔබට SSH නොමැති නම්, දකුණු පසින් ඉතා සරල උපදෙස් තිබේ. bash terminal එකක් විවෘත කර අලවන්න 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 index ගොනුව ගන්න. පසු නම් 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 මත වසමක් පිහිටුවීම

ඇත්ත වශයෙන්ම සෑම දෙයක්ම ඉතා සරල ය. ඔබ වසමක් මිල දී ගන්න (ඕනෑම තැනක), ඩිජිටල් ඕෂන් වෙත මාරු වන්න නිර්මාණය->වසම්/DNS. Поле වසමක් එක් කරන්න ඔබ මෙම වසම ඇතුළු කර add ක්ලික් කරන්න. ඉන්පසු වසම් සැකසුම් වෙත ගොස් ක්ෂේත්රයට යන්න හොස්ට්නාම් ඇතුල් කරන්න @. ව්යාපෘතියක් තෝරා ක්ලික් කරන්න වාර්තාවක් සාදන්න.
දැන් ඔබ වසම මිලදී ගත් අඩවියට ගොස් එහි "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 කතුවරයාට විශේෂ ස්තුතිය මෙම සාරාංශය, ඉහත සියලු ක්රියාවන් සඳහා පදනම ලෙස සේවය කරන ලදී. සමහර අවස්ථාවල Laravel 7 සඳහා එය ක්‍රියා නොකරයි, මම එය නිවැරදි කළෙමි.

PPS ඔබ bash විධාන ගැන සිතන ඉහළම ඉංජිනේරුවෙකු වන්නේ නම්, කරුණාකර දැඩි ලෙස විනිශ්චය නොකරන්න. මෙම ලිපිය පහත් මට්ටමක පවතින බව ඔබට පෙනී යනු ඇත, නමුත් මට අවශ්‍ය වූ විට එකක් සොයා ගැනීමට මම සතුටු වෙමි. වැඩිදියුණු කිරීම සඳහා යෝජනා තිබේ නම්, මම ඒ සඳහා සියල්ලෙමි.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න