Ubuntu & Nginx-เตฝ Laravel 7-เดฒเต‡เด•เตเด•เต เด’เดฐเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเดจเตเดจเต

Ubuntu & Nginx-เตฝ Laravel 7-เดฒเต‡เด•เตเด•เต เด’เดฐเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเดจเตเดจเต

Laravel 7 เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดŽเดจเตเดฑเต† เดชเต‹เตผเดŸเตเดŸเตโ€Œเดซเต‹เดณเดฟเดฏเต‹ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เดพเตป เดžเดพเตป เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเต. เด…เดคเดฟเดจเดพเตฝ เดชเตเดฐเดงเดพเดจ เดชเต‡เดœเต เด’เดฐเต เดฒเดพเตปเดกเดฟเด‚เด—เต เดชเต‡เดœเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚, เด•เต‚เดŸเดพเดคเต† เด…เดคเดฟเดฒเต† เดŽเดฒเตเดฒเดพ เดตเดฟเดตเดฐเด™เตเด™เดณเตเด‚ เด…เดกเตเดฎเดฟเตป เดชเดพเดจเตฝ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดฎเดพเดฑเตเดฑเดพเตป เด•เดดเดฟเดฏเตเด‚. เดชเต‹เดฏเดฟเดจเตเดฑเต เด…เดฒเตเดฒ. เด…เดคเต เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดตเดจเตเดจเต. เดŽเดฒเตเดฒเดพ เดชเตเดฐเดถเตโ€Œเดจเด™เตเด™เดณเตเดฎเตเดณเตเดณ เด’เดฐเต เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เดธเต†เตผเดตเดฑเดฟเตฝ เด‡เดคเต เดŽเด™เตเด™เดจเต† เดšเต†เดฏเตเดฏเดพเดฎเต†เดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดฐเดฃเตเดŸเต เดจเดฒเตเดฒ เดŸเตเดฏเต‚เดŸเตเดŸเต‹เดฑเดฟเดฏเดฒเตเด•เตพ เดžเดพเตป เด•เดฃเตเดŸเต†เดคเตเดคเดฟ. เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเดฟเตฝ เดžเดพเตป เด…เดคเตเดฐ เดถเด•เตเดคเดจเดฒเตเดฒ; เดžเดพเตป เดชเตŠเดคเตเดตเต† เดซเตเตพ เดธเตเดฑเตเดฑเดพเด•เตเด•เดฟเดจเต†เด•เตเด•เดพเตพ เดฎเตเดจเตเดจเดฟเดฒเดพเดฃเต. เด•เต‚เดŸเดพเดคเต†, เดŽเดจเดฟเด•เตเด•เต เด‡เดชเตเดชเต‹เดดเตเด‚ PHP-เดฏเดฟเตฝ เดŽเดดเตเดคเดพเดจเตเด‚ เดชเดฐเต€เด•เตเดทเดฟเด•เตเด•เดพเดจเตเด‚ เด•เดดเดฟเดฏเตเดฎเต†เด™เตเด•เดฟเตฝ, เดธเต†เตผเดตเตผ เดฎเดพเดจเต‡เดœเตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เดฎเตเดคเดฒเดพเดฏเดต. เดžเดพเตป เด‡เดคเตเดตเดฐเต† เดตเดณเตผเดจเตเดจเดฟเดŸเตเดŸเดฟเดฒเตเดฒ. เดชเด•เตเดทเต† เดŽเดจเดฟเด•เตเด•เดคเต เด•เดฃเตเดŸเตเดชเดฟเดŸเดฟเด•เตเด•เต‡เดฃเตเดŸเดฟ เดตเดจเตเดจเต.

เด‡เดชเตเดชเต‹เตพ เดžเด™เตเด™เตพ เดŽเดฒเตเดฒเดพ เด˜เดŸเตเดŸเด™เตเด™เดณเดฟเดฒเต‚เดŸเต†เดฏเตเด‚ เด•เดŸเดจเตเดจเตเดชเต‹เด•เตเด‚, โ€‹โ€‹SSH เดตเดดเดฟ เดฒเต‹เดžเตเดšเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต† เด†เดฐเด‚เดญเดฟเดšเตเดšเต เดตเตผเด•เตเด•เดฟเด‚เด—เต เดธเตˆเดฑเตเดฑเดฟเตฝ เด…เดตเดธเดพเดจเดฟเด•เตเด•เตเด‚. เดŽเดฒเตเดฒเดพ เด•เตเดดเดชเตเดชเด™เตเด™เดณเตเด‚ เด’เดดเดฟเดตเดพเด•เตเด•เดพเตป เดžเด™เตเด™เตพ เดถเตเดฐเดฎเดฟเด•เตเด•เตเด‚.

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด“เตบเดฒเตˆเดจเดฟเตฝ เดธเดฎเดพเดจเดฎเดพเดฏ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ เด•เดฃเตเดŸเต†เดคเตเดคเดพเตป เด•เดดเดฟเดžเตเดžเต‡เด•เตเด•เตเด‚. เดŽเดฒเตเดฒเดพเดคเตเดคเดฟเดจเตเดฎเตเดชเดฐเดฟ, เดžเดพเตป เด’เดŸเตเดตเดฟเตฝ เด•เดฃเตเดŸเต†เดคเตเดคเดฟ. เดถเดฐเดฟเดฏเดพเดฃเต, เด’เดฐเดฟเดŸเดคเตเดคเดฒเตเดฒ, เดธเตเดฑเตเดฑเดพเด•เตเด•เตเด“เดตเตผเดซเตเดฒเต‹เดฏเตเดŸเต† เดธเดนเดพเดฏเดฎเดฟเดฒเตเดฒเดพเดคเต†เดฏเดฒเตเดฒ, เดฑเดทเตเดฏเตป เดญเดพเดทเดฏเดฟเดฒเตเด‚. เดžเดพเตป เดธเดนเดฟเดšเตเดšเต. เด…เดคเตเด•เตŠเดฃเตเดŸเดพเดฃเต เดจเดฟเด™เตเด™เดณเตเดŸเต† เดœเต€เดตเดฟเดคเด‚ เดฒเดณเดฟเดคเดฎเดพเด•เตเด•เดพเตป เดžเดพเตป เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเดคเต.

DigitalOcean-เตฝ เด’เดฐเต เดคเตเดณเตเดณเดฟ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดžเด™เตเด™เตพ เดŽเดฒเตเดฒเดพเด‚ เดšเต†เดฏเตเดฏเตเด‚. เด‡เดคเต เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚ เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒ; เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดนเต‹เดธเตเดฑเตเดฑเดฟเด‚เด—เต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเด•. เดจเดฟเด™เตเด™เตพ เด‰เดฌเตเดฃเตเดŸเตเดตเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดธเต†เตผเดตเดฑเดฟเตฝ เดŽเดคเตเดคเตเดฎเตเดชเต‹เตพ, เดคเดฟเดฐเดฟเด•เต† เดตเดฐเดฟเด•. เด‡เดชเตเดชเต‹เดดเตเด‚ DigitalOcean-เตฝ เด…เดคเต เดšเต†เดฏเตเดฏเดพเตป เดคเต€เดฐเตเดฎเดพเดจเดฟเด•เตเด•เตเดจเตเดจเดตเตผเด•เตเด•เต, เด’เดฐเต เดกเตŠเดฎเต†เดฏเตเตป เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด•เต‚เดŸเตเดคเตฝ เดจเตเดฑเตเด™เตเด™เตเด•เตพ เด‰เดฃเตเดŸเดพเด•เตเด‚. เด’เดชเตเดชเด‚ $100 เดฑเดซเดฑเตฝ เดฒเดฟเด™เตเด•เต.

เดŽเดฒเตเดฒเดพ เดกเดฟเดœเดฟเดฑเตเดฑเตฝ เด“เดทเตเดฏเตป-เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เด˜เดŸเตเดŸเด™เตเด™เดณเตเด‚ เด‡เดคเตเดชเต‹เดฒเตเดณเตเดณ เด…เดŸเดฟเด•เตเด•เตเดฑเดฟเดชเตเดชเตเด•เดณเดฟเตฝ เดจเตฝเด•เตเด‚.

เดจเดฎเตเด•เตเด•เต เด†เดฐเด‚เดญเดฟเด•เตเด•เดพเด‚.

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

เดจเดฟเด•เตเด•เดฟเด•เตเดธเต

  • 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

  • เด•เตเดธเดจเตเดฎเตเด•เตเดธ: sudo apt install -y php7.3-fpm php7.3-mysql

  • เด•เตเดธเดจเตเดฎเตเด•เตเดธ: 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

  • เด•เตเดธเดจเตเดฎเตเด•เตเดธ: sudo apt install -y php7.3-mbstring php7.3-xml composer unzip

  • เด•เตเดธเดจเตเดฎเตเด•เตเดธ: 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

เดŽเดšเตเดšเตเดŸเดฟเดŸเดฟเดชเดฟเดŽเดธเต

  • 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 เด‡เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดตเดฒเดคเตเดตเดถเดคเตเดคเต เดตเดณเดฐเต† เดฒเดณเดฟเดคเดฎเดพเดฏ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เดณเตเดฃเตเดŸเต. เด’เดฐเต เดฌเดพเดทเต เดŸเต†เตผเดฎเดฟเดจเตฝ เดคเตเดฑเดจเตเดจเต เด’เดŸเตเดŸเดฟเด•เตเด•เตเด• ssh-keygen. เดคเตเดŸเตผเดจเตเดจเต เดžเด™เตเด™เตพ เดชเดฌเตเดฒเดฟเด•เต เด•เต€ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดซเดฏเดฒเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เด•เตเดจเตเดจเต /Users/<ะ’ะฐัˆะต ะธะผั ะฟะพะปัŒะทะพะฒะฐั‚ะตะปั>/.ssh/id_rsa.pub (เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฒเดณเดฟเดคเดฎเดพเดฏเดฟ cat ~/.ssh/id_rsa.pub), เด‰เดณเตเดณเดŸเด•เตเด•เด™เตเด™เตพ เดชเด•เตผเดคเตเดคเดฟ เด‡เดŸเดคเตเดตเดถเดคเตเดคเตเดณเตเดณ เดตเดฟเตปเดกเต‹เดฏเดฟเตฝ เด’เดŸเตเดŸเดฟเด•เตเด•เตเด•. เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดชเต‡เดฐเต.

เดกเตเดฐเต‹เดชเตเดฒเต†เดฑเตเดฑเดฟเดจเดพเดฏเดฟ เดžเด™เตเด™เตพ เด’เดฐเต เดนเต‹เดธเตเดฑเตเดฑเต เดจเดพเดฎเด‚ เด•เตŠเดฃเตเดŸเตเดตเดฐเตเดจเตเดจเต.

เดชเตเดทเต เดกเตเดฐเต‹เดชเตเดฒเต†เดฑเตเดฑเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•

เด’เดฐเต เดชเตเดคเดฟเดฏ เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเต† เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•

  • ssh root@[IP-ะฐะดั€ะตั ะฒะฐัˆะตะณะพ ะดั€ะพะฟะปะตั‚ะฐ]
  • เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเต เดคเตเดŸเดฐเดฃเดฎเต†เดจเตเดจเต เดคเต€เตผเดšเตเดšเดฏเดพเดฃเต‹ (เด…เดคเต†/เด‡เดฒเตเดฒ/[เดตเดฟเดฐเดฒเดŸเดฏเดพเดณเด‚])? yes
  • เดจเดฟเด™เตเด™เดณเตเดŸเต† SSH เดชเดพเดธเตโ€Œเดตเต‡เดกเต เดจเตฝเด•เตเด•
  • เด’เดฐเต เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเต† เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด• laravel: adduser laravel
  • เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเดพเดธเตโ€Œเดตเต‡เดกเตเด‚ เดฎเดฑเตเดฑเต เดตเดฟเดตเดฐเด™เตเด™เดณเตเด‚ เดจเตฝเด•เตเด• (เดžเดพเตป เดฎเตเดดเตเดตเตป เดชเต‡เดฐเต เดฎเดพเดคเตเดฐเด‚ เดจเตฝเด•เตเด•)
  • เดธเตเดกเต‹ เด—เตเดฐเต‚เดชเตเดชเดฟเดฒเต‡เด•เตเด•เต เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเต† เดšเต‡เตผเด•เตเด•เตเด•: usermod -aG sudo laravel

เดชเตเดคเดฟเดฏ เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเดพเดฏเดฟ SSH

  • เดชเตเดคเดฟเดฏ เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเด•: su 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)

เดจเดฟเด™เตเด™เดณเตเดŸเต† เดเดชเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เด•เตเด•. เดŽเดฒเตเดฒเดพเด‚ เดถเดฐเดฟเดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เตพ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจเดต เด•เดพเดฃเดฃเด‚.

Ubuntu & Nginx-เตฝ Laravel 7-เดฒเต‡เด•เตเด•เต เด’เดฐเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดตเดฟเดจเตเดฏเดธเดฟเด•เตเด•เตเดจเตเดจเต

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 เด•เต‚เดŸเดพเดคเต† เดชเดพเดธเตโ€Œเดตเต‡เดกเต เดจเตฝเด•เตเด•

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 เดŽเดจเตเดจเต€ เดธเด‚เด–เตเดฏเด•เดณเดฟเตฝ เดฎเดพเดคเตเดฐเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚.

  • เด•เตเดธเดจเตเดฎเตเด•เตเดธ: sudo apt install -y php7.3-fpm php7.3-mysql
  • เด•เตเดธเดจเตเดฎเตเด•เตเดธ: 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>" เดŽเดจเตเดจเดคเดฟเดจเต เดชเด•เดฐเด‚ เดกเตŠเดฎเต†เดฏเตโ€Œเตป เดจเตฝเด•เตเด• (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, 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 เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดฏเตเด•

  • เด•เตเดธเดจเตเดฎเตเด•เตเดธ: sudo apt install php7.3-mbstring php7.3-xml composer unzip

  • เด•เตเดธเดจเตเดฎเตเด•เตเดธ: 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 <ะ˜ะผั ะฟั€ะพะตะบั‚ะฐ>

เด…เดŸเตเดคเตเดคเดคเดพเดฏเดฟ เดจเดฟเด™เตเด™เตพ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เด•เตˆเดฎเดพเดฑเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, 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

เดฒเดพเดฑเดตเดฒเดฟเดจเดพเดฏเดฟ 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. ะŸะพะปะต เด’เดฐเต เดกเตŠเดฎเต†เดฏเตเตป เดšเต‡เตผเด•เตเด•เตเด• เดจเดฟเด™เตเด™เตพ เดˆ เดกเตŠเดฎเต†เดฏเตโ€Œเตป เดจเตฝเด•เดฟ เดšเต‡เตผเด•เตเด•เตเด• เด•เตเดฒเดฟเด•เตเด•เต เดšเต†เดฏเตเดฏเตเด•. เดคเตเดŸเตผเดจเตเดจเต เดกเตŠเดฎเต†เดฏเตเตป เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เตเด‚ เดซเต€เตฝเดกเดฟเดฒเต‡เด•เตเด•เตเด‚ เดชเต‹เด•เตเด• เดนเต‹เดธเตเดฑเตเดฑเตเดจเดพเด‚ เดจเตฝเด•เตเด• @. เด’เดฐเต เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเต เด•เตเดฒเดฟเด•เตเด•เต เดšเต†เดฏเตเดฏเตเด• เดฑเต†เด•เตเด•เต‹เตผเดกเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•.
เด‡เดชเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพ เดกเตŠเดฎเต†เดฏเตเตป เดตเดพเด™เตเด™เดฟเดฏ เดธเตˆเดฑเตเดฑเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เด•เตเด•, เด…เดตเดฟเดŸเต† "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

เด…เดคเตเดฐเดฏเต‡เดฏเตเดณเตเดณเต‚, เดžเดพเตป เดˆ เด˜เดŸเตเดŸเดคเตเดคเดฟเตฝ เดจเดฟเตผเดคเตเดคเดฟ. เดคเดคเตเดตเดคเตเดคเดฟเตฝ, เดซเดฒเดคเตเดคเดฟเตฝ เดžเดพเตป เดธเด‚เดคเตƒเดชเตเดคเดจเดพเดฃเต. เด’เดฐเตเดชเด•เตเดทเต‡ เดžเดพเตป เดกเดฟเดœเดฟเดฑเตเดฑเตฝ เด“เดทเตเดฏเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดฑเดทเตเดฏเดฏเต‹เดŸเต เด…เดŸเตเดคเตเดคเตเด‚ เดตเดฟเดฒเด•เตเดฑเดžเตเดžเดคเตเดฎเดพเดฏ เดŽเดตเดฟเดŸเต†เดฏเต†เด™เตเด•เดฟเดฒเตเด‚ เดฎเดพเดฑเตเด‚. เดŽเดจเตเดจเดพเตฝ เดžเดพเตป เด‡เดคเดฟเดจเด•เด‚ เดธเตˆเดฑเตเดฑเดฟเดฒเต† เดŽเดฒเตเดฒเดพ เดชเดฐเดฟเดถเต‹เดงเดจเดพ เดฑเต—เดฃเตเดŸเตเด•เดณเดฟเดฒเต‚เดŸเต†เดฏเตเด‚ เดชเต‹เดฏเดฟ เด…เดตเดฟเดŸเต† เดŽเดฒเตเดฒเดพเด‚ เดšเต†เดฏเตเดคเดคเดฟเดจเดพเตฝ, เดžเดพเตป เด…เดต เด‰เดฆเดพเดนเดฐเดฃเดฎเดพเดฏเดฟ เด•เดพเดฃเดฟเดšเตเดšเต. เด•เต‚เดŸเดพเดคเต†, เด…เดตเดฐเตเดŸเต† เด†เดฐเด‚เดญ $100 เดชเดฐเดฟเดถเต€เดฒเดจเดคเตเดคเดฟเดจเตเดณเตเดณ เดฎเดฟเด•เดšเตเดš เดธเตเดชเตเดฐเดฟเด‚เด—เตเดฌเต‹เตผเดกเดพเดฃเต.

PS เดฐเดšเดฏเดฟเดคเดพเดตเดฟเดจเต เดชเตเดฐเดคเตเดฏเต‡เด• เดจเดจเตเดฆเดฟ เดˆ เดธเดพเดฐเด‚, เดฎเตเด•เดณเดฟเตฝ เดชเดฑเดžเตเดž เดŽเดฒเตเดฒเดพ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพเด•เตเด•เตเด‚ เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดšเตเดšเต. เดšเดฟเดฒ เดธเดจเตเดฆเตผเดญเด™เตเด™เดณเดฟเตฝ เด‡เดคเต Laravel 7-เดจเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ, เดžเดพเตป เด…เดคเต เดชเดฐเดฟเดนเดฐเดฟเดšเตเดšเต.

PPS เดจเดฟเด™เตเด™เตพ เดฌเดพเดทเต เด•เดฎเดพเตปเดกเตเด•เดณเดฟเตฝ เดšเดฟเดจเตเดคเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดฎเตเตปเดจเดฟเดฐ เดŽเดžเตเดšเดฟเดจเต€เดฏเตผ เด†เดฃเต†เด™เตเด•เดฟเตฝ, เดฆเดฏเดตเดพเดฏเดฟ เดชเดฐเตเดทเดฎเดพเดฏเดฟ เดตเดฟเดงเดฟเด•เตเด•เดฐเตเดคเต. เดˆ เดฒเต‡เด–เดจเด‚ เดจเดฟเดฒเดตเดพเดฐเด‚ เด•เตเดฑเดžเตเดžเดคเดพเดฃเต†เดจเตเดจเต เดจเดฟเด™เตเด™เตพ เด•เดฃเตเดŸเต†เดคเตเดคเดฟเดฏเต‡เด•เตเด•เดพเด‚, เดŽเดจเตเดจเดพเตฝ เดŽเดจเดฟเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเตเดณเตเดณเดชเตเดชเต‹เตพ เด’เดฐเต†เดฃเตเดฃเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเดคเดฟเตฝ เดžเดพเตป เดธเดจเตเดคเต‹เดทเดฟเด•เตเด•เตเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต. เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเดพเดจเตเดณเตเดณ เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ เด‰เดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เดžเดพเตป เด…เดคเดฟเดจเดพเดฃเต.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•