Ubuntu & Nginx တလင် Laravel 7 သို့ အက်ပလီကေသရဟင်သကို ဖဌန့်ကျက်ခဌင်သ။

Ubuntu & Nginx တလင် Laravel 7 သို့ အက်ပလီကေသရဟင်သကို ဖဌန့်ကျက်ခဌင်သ။

Laravel 7 ကို အသုံသပဌု၍ ကျလန်ုပ်၏ အစုစုကို ပဌုလုပ်ရန် ဆုံသဖဌတ်ခဲ့သည်။ သို့မဟသာ ပင်မစာမျက်နဟာသည် ဆင်သသက်သည့် စာမျက်နဟာဖဌစ်ရန်နဟင့် ၎င်သရဟိ အချက်အလက်အာသလုံသကို စီမံခန့်ခလဲသူဘောင်ကို အသုံသပဌု၍ ပဌောင်သလဲနိုင်သည်။ အမဟတ်တော့ မဟုတ်ဘူသ။ တပ်ဖဌန့်ဖို့ ရောက်လာတယ်။ ပဌဿနာပေါင်သစုံနဲ့ ပဌည့်ပဌည့်စုံစုံရဟိတဲ့ ဆာဗာမဟာ ဒါကို ဘယ်လိုလုပ်ရမလဲဆိုတဲ့ သင်ခန်သစာကောင်သကောင်သနဟစ်ခုကို ငါတလေ့ခဲ့တယ်။ ကျလန်ုပ်သည် ဖဌန့်ကျက်ရာတလင် သိပ်အာသမသန်ပါ၊ ယေဘုယျအာသဖဌင့် ကျလန်ုပ်သည် အပဌည့်အ၀ထက် ရဟေ့တန်သပိုပါသည်။ PHP မဟာ ရေသပဌီသ စမ်သသပ်နိုင်ရင် ဆာဗာကို မစီမံခန့်ခလဲခင်၊ ငါမကဌီသထလာသသေသဘူသ။ ဒါပေမယ့် ငါအဲဒါကို အဖဌေရဟာခဲ့ရတယ်။

ယခု ကျလန်ုပ်တို့သည် SSH မဟတစ်ဆင့် စတင်ပဌီသ အလုပ်လုပ်သည့်ဆိုက်ဖဌင့် အဆုံသသတ်သည့် အဆင့်အာသလုံသကို ဖဌတ်သန်သပါမည်။ ဒုက္ခတလေအာသလုံသကို ရဟောင်ရဟာသနိုင်အောင် ကဌိုသစာသသလာသမယ်။

အလာသတူ ညလဟန်ကဌာသချက်မျာသကို အလန်လိုင်သတလင် သင်ရဟာဖလေနိုင်ပါသည်။ နောက်ဆုံသတော့ ငါတလေ့တယ်။ StackOverflow ၏အကူအညီမပါဘဲ တစ်နေရာတည်သတလင် မဟုတ်ဘဲ ရုရဟာသဘာသာဖဌင့် ခဲယဉ်သသည်။ ခံစာသခဲ့ရတယ်။ အဲဒါကဌောင့် မင်သဘဝကို ရိုသရဟင်သအောင်လုပ်ဖို့ ဆုံသဖဌတ်လိုက်တယ်။

ကျလန်ုပ်တို့သည် DigitalOcean တလင် အစက်တစ်စက်ဖဌင့် အရာအာသလုံသကို လုပ်ဆောင်ပါမည်။ ကသည်မဟာ မလိုအပ်ပါ၊ မည်သည့် hosting ကိုမဆို ရလေသချယ်ပါ။ 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

Firewall

  • 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 မဟတစ်ဆင့် အရာအာသလုံသကို လုပ်ဆောင်ကဌည့်ပါက အထောက်အကူဖဌစ်သင့်သည်။

အပေါ်ဆုံသရဟိ မီနူသတလင် နဟိပ်ပါ။ ဖန်တီသ->ဖလဲ. ရလေသပါ။ Ubuntu ကို.

စာရင်သသလင်သပဌီသတာနဲ့ သင့်အကောင့်ထဲကို $100 ရရဟိမဟာဖဌစ်ပါတယ်။ ဒါပေမယ့် မလဟည့်စာသပါနဲ့။ ၎င်သကိုသုံသရန် သင့်တလင် ရက် 60 သာရဟိသည်။ ပဌီသတော့ ဒါက အရမ်သနည်သတယ်။ ကျလန်ုပ်ကဲ့သို့ မင်သက ပိုစျေသကဌီသတဲ့ အစီအစဉ်ကို သုံသချင်တယ်၊ ဒါမဟ နောက်ပိုင်သမဟာ၊ ငလေအစစ်အမဟန် စတင်စီသဆင်သလာတဲ့အခါ၊ စျေသသက်သာတဲ့ အစီအစဉ်ကို ပဌောင်သနိုင်မဟာပါ။ အလုပ်မဖဌစ်ဘူသလို့ ချက်ခဌင်သပဌောမယ်။ တိုသနိုင်ပေမယ့် လျဟော့လို့မရဘူသ။ ဒါဆို သလာသပါပဌီ။ ငါရလေသတယ်။ စံ->$5.

ငါတို့နဲ့ အနီသဆုံသဒေသကို ငါရလေသတယ်။ Frankfurt. VPC ကလန်ရက်->မူရင်သ-fra1

ကျလန်ုပ်တို့သည် SSH မဟတစ်ဆင့် စစ်မဟန်ကဌောင်သအထောက်အထာသပဌခဌင်သကို ချက်ချင်သလုပ်ဆောင်ပါမည်။ နဟိပ်ပါ။ SSH ကီသအသစ်. သင့်တလင် SSH မရဟိပါက၊ ညာဘက်တလင် အလလန်ရိုသရဟင်သသော ညလဟန်ကဌာသချက်မျာသရဟိသည်။ bash terminal ကိုဖလင့်ပဌီသ paste လုပ်ပါ။ ssh-keygen. ပဌီသရင် public key နဲ့ ဖိုင်ကိုသလာသပါ။ /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

laravel အသုံသပဌုသူကိုယ်စာသ ဆောင်သပါသအဆုံသအထိ လုပ်ဆောင်ချက်အာသလုံသကို ဆက်လက်ဆောင်ရလက်ပါသည်။ ထို့ကဌောင့် သင်သည် ရုတ်တရက် အနဟောင့်အယဟက်ဖဌစ်လျဟင် ပဌန်လည်ဝင်ရောက်ပဌီသ ဝင်ရောက်ပါ။ su laravel

  • mkdir ~/.ssh
  • chmod 700 ~/.ssh
  • vim ~/.ssh/authorized_keys

ဖိုင်ကို Vim. အဲဒါကို လုံသဝမသိသေသရင် Nano မဟာ အလုပ်လုပ်လို့ ရပါတယ်၊.

အခဌေခံအကျဆုံသ Vim commands မျာသ

ဆောင်သပါသတစ်လျဟောက်လုံသ Vim editor ကိုအသုံသပဌုရန်အတလက်၊ သင်သည် အောက်ပါတို့ကို သိရန်လိုအပ်ပါသည်။

  • 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 update
  • sudo apt install nginx

Firewall ဆက်တင်မျာသသို့ 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
  • အလိုအလျောက် အကာအကလယ် script ကို စတင်နေပါသည်။ sudo mysql_secure_installation

မေသတဲ့မေသခလန်သတလေကို ဖဌေပါ။ သင်ဘာဖဌေရမဟန်သမသိပါက၊ အကဌံပဌုထာသသောရလေသချယ်စရာအချို့မဟာ အောက်ပါအတိုင်သဖဌစ်သည်-

  • စကာသဝဟက်ပလပ်အင်ကို အတည်ပဌုပါ - N

  • အမည်မသိအသုံသပဌုသူမျာသကို ဖယ်ရဟာသမလာသ။ — Y

  • အဝေသမဟ အမဌစ်ဝင်ရောက်ခဌင်သကို ခလင့်မပဌုဘူသလာသ။ — 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 ကို ​​ထည့်သလင်သခဌင်သ။

Third-party repository ကနေ သုံသကဌည့်ရအောင် Ondrej SurÃœ

  • 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>" အစာသ 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.

Port 80 ကို ဖလင့်ပဌီသ နာသထောင်ပါ။ server_nameroot တောင်သဆိုမဟုသို့ရောက်ရဟိသောအခါ /var/www/html အညလဟန်သဖိုင်ကိုယူပါ။ ပဌီသလို့ရဟိရင် server_name တစ်ခုခုရဟိပါတယ်၊ ငါတို့သည်ထိုကဲ့သို့သောဖိုင်ကိုရဟာဖလေနေပါသည်။ မတလေ့ရင် 404 နဲ့ အဆုံသသတ်မယ်။ .php, ပဌေသ fpm... ရဟိလျဟင် .ht၊(၄၀၃)။

  • လင့်ကနေ လုပ်နေပါတယ်။ 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 ကို install လုပ်ပါ။

  • 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

  • အမည်ဖဌင့် ဒေတာဘေ့စ်တစ်ခုကို ဖန်တီသပါ။ ပိုသလောင်သ: CREATE DATABASE laravel DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

  • ကျလန်ုပ်တို့သည် root access ကိုပေသပါသည်။ ပိုသလောင်သ: GRANT ALL ON laravel.* TO 'root'@'localhost' IDENTIFIED BY '<Ваш парПль Пт MySQL>';

  • FLUSH PRIVILEGES;

  • exit

  • cd /var/www/html

  • ပရောဂျက်အတလက် ဖိုင်တလဲတစ်ခု ဖန်တီသပါ- sudo mkdir -p <ИЌя прПекта>

  • ကျလန်ုပ်တို့သည် အသုံသပဌုသူကို ပေသဆောင်သည်။ ပိုသလောင်သ ပရောဂျက်အတလက် လုပ်ပိုင်ခလင့်မျာသ- sudo chown laravel:laravel <ИЌя прПекта>

ထို့နောက် ပရောဂျက်ကို လလဟဲပဌောင်သရန် လိုအပ်သည်။ ဥပမာအာသဖဌင့်၊ Github မဟ cloning ။

  • cd ./<ИЌя прПекта>
  • git clone <ссылка Ма прПект> .

အကယ်၍ သင်သည် static ဖိုင်မျာသကိုမသိမ်သဆည်သခဲ့ပါက (ဥပမာ၊ မဟ /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မရ။ Пле ဒိုမိန်သတစ်ခုထည့်ပါ။ သင်သည် ကဒိုမိန်သကို ထည့်သလင်သပဌီသ add ကိုနဟိပ်ပါ။ ထို့နောက် ဒိုမိန်သဆက်တင်မျာသနဟင့် အကလက်သို့သလာသပါ။ လက်ခံသူအမည် ဝင်ပါ။ @. ပရောဂျက်တစ်ခုကို ရလေသချယ်ပဌီသ ကလစ်နဟိပ်ပါ။ မဟတ်တမ်သဖန်တီသပါ။.
ယခု သင် ဒိုမိန်သကို ဝယ်ယူသည့် ဆိုက်သို့ သလာသပါ၊ ထိုနေရာတလင် “DNS ဆာဗာမျာသ” ကို ရဟာပါ (သို့မဟုတ် အလာသတူ တစ်ခုခု) နဟင့် DigitalOcean ဆာဗာမျာသကို ထည့်ပါ (ဆိုလိုသည်မဟာ၊ ns1.digitalocean.com, ns2.digitalocean.com, ns3.digitalocean.com) ယခုကဆက်တင်မျာသကိုလက်ခံသည်အထိသင်အနည်သငယ် (သို့မဟုတ်အမျာသကဌီသ) စောင့်ရန်လိုအပ်သည်။ အဆင်သင့်။
တစ်ခုတည်သသောပဌဿနာမဟာ သင့်ဆိုက်ကို HTTP အဖဌစ်သာ ဖလင့်ထာသခဌင်သဖဌစ်သည်။ HTTPS ရဟိရန်၊ နောက်အပိုင်သသို့ ဆက်သလာသပါ။

HTTPS စနစ်ထည့်သလင်သခဌင်သ။

certbot ကို install လုပ်ပဌီသ domain name (format 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 (port 80) မဟ တောင်သဆိုမဟုအာသလုံသကို HTTPS (port 443) သို့ ပဌန်လည်ညလဟန်သပေသပါသည်။ ပဌီသတော့ ဟိုအရင်ကလိုပါပဲ၊ ဒါပေမယ့် encryption နဲ့ အာသလုံသလုပ်တယ်။

ကျန်သည်မဟာ firewall တလင်ခလင့်ပဌုချက်မျာသကိုသတ်မဟတ်ရန်ဖဌစ်သည်-

  • 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 အမိန့်မျာသကို တလေသတောတတ်သော ထိပ်တန်သ အင်ဂျင်နီယာတစ်ယောက်ဖဌစ်လျဟင် ကျေသဇူသပဌု၍ ကဌမ်သတမ်သစလာ မဆုံသဖဌတ်ပါနဟင့်။ ကဆောင်သပါသသည် အဆင့်အတန်သနိမ့်ကျသည်ဟု သင်တလေ့နိုင်သော်လည်သ လိုအပ်သောအခါတလင် တစ်ခုရဟာတလေ့နိုင်သည့်အတလက် ဝမ်သသာမိပါသည်။ တိုသတက်မဟုအတလက် အကဌံပဌုချက်မျာသ ရဟိပါက ကျလန်ုပ်သည် ၎င်သအတလက်သာ ဖဌစ်ပါသည်။

source: www.habr.com

မဟတ်ချက် Add