Ubuntu เจ…เจคเฉ‡ Nginx 'เจคเฉ‡ Laravel 7 เจฒเจˆ เจ‡เฉฑเจ• เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจคเฉˆเจจเจพเจค เจ•เจฐเจจเจพ

Ubuntu เจ…เจคเฉ‡ Nginx 'เจคเฉ‡ Laravel 7 เจฒเจˆ เจ‡เฉฑเจ• เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจคเฉˆเจจเจพเจค เจ•เจฐเจจเจพ

เจฎเฉˆเจ‚ Laravel 7 เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ†เจชเจฃเจพ เจชเฉ‹เจฐเจŸเจซเฉ‹เจฒเฉ€เจ“ เจฌเจฃเจพเจ‰เจฃ เจฆเจพ เจซเฉˆเจธเจฒเจพ เจ•เฉ€เจคเจพ เจนเฉˆ เจคเจพเจ‚ เจ•เจฟ เจฎเฉเฉฑเจ– เจชเฉฐเจจเจพ เจ‡เฉฑเจ• เจฒเฉˆเจ‚เจกเจฟเฉฐเจ— เจชเฉฐเจจเจพ เจนเฉ‹เจตเฉ‡เจ—เจพ, เจ…เจคเฉ‡ เจ‡เจธ 'เจคเฉ‡ เจธเจพเจฐเฉ€ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจจเฉ‚เฉฐ เจเจกเจฎเจฟเจจ เจชเฉˆเจจเจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจฌเจฆเจฒเจฟเจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ. เจฌเจฟเฉฐเจฆเฉ‚ เจจเจนเฉ€เจ‚. เจ‡เจน เจคเจพเจ‡เจจเจพเจคเฉ€ เจฒเจˆ เจ†เจˆ. เจฎเฉˆเจจเฉ‚เฉฐ เจธเจพเจฐเฉ€เจ†เจ‚ เจฎเฉเจธเจผเจ•เจฒเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจชเฉ‚เจฐเฉ‡ เจธเจฐเจตเจฐ 'เจคเฉ‡ เจ‡เจน เจ•เจฟเจตเฉ‡เจ‚ เจ•เจฐเจจเจพ เจนเฉˆ เจ‡เจธ เจฌเจพเจฐเฉ‡ เจ•เฉเจ เจตเจงเฉ€เจ† เจŸเจฟเจŠเจŸเฉ‹เจฐเจฟเจ…เจฒ เจฎเจฟเจฒเฉ‡ เจนเจจเฅค เจฎเฉˆเจ‚ เจคเฉˆเจจเจพเจคเฉ€ เจตเจฟเฉฑเจš เจฌเจนเฉเจค เจฎเจœเจผเจฌเฉ‚เจค โ€‹โ€‹โ€‹โ€‹เจจเจนเฉ€เจ‚ เจนเจพเจ‚; เจฎเฉˆเจ‚ เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจชเฉ‚เจฐเฉ‡ เจธเจŸเฉˆเจ• เจจเจพเจฒเฉ‹เจ‚ เจตเจงเฉ‡เจฐเฉ‡ เจธเจพเจนเจฎเจฃเฉ‡ เจนเจพเจ‚. เจ…เจคเฉ‡, เจœเฉ‡ เจฎเฉˆเจ‚ เจ…เจœเฉ‡ เจตเฉ€ PHP เจตเจฟเฉฑเจš เจฒเจฟเจ– เจธเจ•เจฆเจพ เจนเจพเจ‚ เจ…เจคเฉ‡ เจŸเฉˆเจธเจŸ เจ•เจฐ เจธเจ•เจฆเจพ เจนเจพเจ‚, เจคเจพเจ‚ เจธเจฐเจตเจฐ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚, เจ†เจฆเจฟ. เจฎเฉˆเจ‚ เจ…เจœเฉ‡ เจตเฉฑเจกเจพ เจจเจนเฉ€เจ‚ เจนเฉ‹เจ‡เจ† เจนเจพเจ‚เฅค เจชเจฐ เจฎเฉˆเจจเฉ‚เฉฐ เจ‡เจธเจฆเจพ เจชเจคเจพ เจฒเจ—เจพเจ‰เจฃเจพ เจชเจฟเจ†.

เจนเฉเจฃ เจ…เจธเฉ€เจ‚ SSH เจฆเฉเจ†เจฐเจพ เจฒเจพเจ‚เจš เจคเฉ‹เจ‚ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจ…เจคเฉ‡ เจ•เฉฐเจฎ เจ•เจฐเจจ เจตเจพเจฒเฉ€ เจธเจพเจˆเจŸ เจฆเฉ‡ เจจเจพเจฒ เจ–เจคเจฎ เจนเฉ‹เจฃ เจตเจพเจฒเฉ‡ เจธเจพเจฐเฉ‡ เจชเฉœเจพเจตเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจฒเฉฐเจ˜เจพเจ‚เจ—เฉ‡เฅค เจ…เจธเฉ€เจ‚ เจธเจพเจฐเฉ€เจ†เจ‚ เจฎเฉเจธเจผเจ•เจฒเจพเจ‚ เจคเฉ‹เจ‚ เจฌเจšเจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค

เจคเฉเจธเฉ€เจ‚ เจ†เจจเจฒเจพเจˆเจจ เจธเจฎเจพเจจ เจจเจฟเจฐเจฆเฉ‡เจธเจผเจพเจ‚ เจจเฉ‚เฉฐ เจฒเฉฑเจญเจฃ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจ†เจ–เจฐเจ•เจพเจฐ, เจฎเฉˆเจจเฉ‚เฉฐ เจ…เฉฐเจค เจตเจฟเฉฑเจš เจ‡เจน เจฎเจฟเจฒเจฟเจ†. เจ‡เจน เจธเฉฑเจš เจนเฉˆ, เจ‡เฉฑเจ• เจฅเจพเจ‚ 'เจคเฉ‡ เจจเจนเฉ€เจ‚, เจธเจŸเฉˆเจ•เจ“เจตเจฐเจซเจฒเฉ‹ เจฆเฉ€ เจฎเจฆเจฆ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจจเจนเฉ€เจ‚, เจ…เจคเฉ‡ เจธเจผเจพเจ‡เจฆ เจนเฉ€ เจฐเฉ‚เจธเฉ€ เจตเจฟเฉฑเจš. เจฎเฉˆเจ‚ เจฆเฉเฉฑเจ– เจเฉฑเจฒเจฟเจ†เฅค เจ‡เจธ เจฒเจˆ เจฎเฉˆเจ‚ เจคเฉเจนเจพเจกเฉ€ เจœเจผเจฟเฉฐเจฆเจ—เฉ€ เจจเฉ‚เฉฐ เจธเจฐเจฒ เจฌเจฃเจพเจ‰เจฃ เจฆเจพ เจซเฉˆเจธเจฒเจพ เจ•เฉ€เจคเจพ เจนเฉˆเฅค

เจ…เจธเฉ€เจ‚ 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

เจเจจเจœเฉ€เจ•เจธ

  • 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 เจ•เฉเฉฐเจœเฉ€ เจฐเจœเจฟเจธเจŸเจฐ เจ•เจฐเฉ‹

เจฎเฉˆเจ‚ เจธเฉฑเจšเจฎเฉเฉฑเจš เจตเจฟเจธเจผเจตเจพเจธ เจ•เจฐเจฆเจพ เจนเจพเจ‚ เจ•เจฟ เจคเฉเจธเฉ€เจ‚ เจ‡เจน เจชเจคเจพ เจฒเจ—เจพเจ“เจ—เฉ‡ เจ•เจฟ เจกเจฟเจœเฉ€เจŸเจฒ เจ“เจธเจผเจจ เจจเจพเจฒ เจ†เจชเจฃเฉ‡ เจ†เจช เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจฐเจœเจฟเจธเจŸเจฐ เจ•เจฐเจจเจพ เจนเฉˆ. เจ‡เจน เจ†เจธเจพเจจ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจฌเจนเฉเจค เจธเจพเจฐเฉ€เจ†เจ‚ เจคเจธเจฆเฉ€เจ• เจ…เจคเฉ‡ เจนเฉ‹เจฐ เจšเฉ€เจœเจผเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ. เจœเฉ‡เจ•เจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฆเจธเจคเจพเจตเฉ‡เจœเจผเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจชเฉเจธเจผเจŸเฉ€ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจฒเจ—เจพเจคเจพเจฐ เจจเฉˆเฉฑเจŸเจตเจฐเจ• เจ—เจฒเจคเฉ€ เจฎเจฟเจฒเจฆเฉ€ เจนเฉˆ, เจคเจพเจ‚ VPN เจฐเจพเจนเฉ€เจ‚ เจธเจญ เจ•เฉเจ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเฉ‹, เจ‡เจธ เจจเฉ‚เฉฐ เจฎเจฆเจฆ เจ•เจฐเจจเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆเฅค

เจธเจฟเจ–เจฐ 'เจคเฉ‡ เจฎเฉ€เจจเฉ‚ เจตเจฟเฉฑเจš, เจ•เจฒเจฟเฉฑเจ• เจ•เจฐเฉ‹ เจฌเจฃเจพเจ“->เจ›เจฟเฉฑเจŸเฉ‡. เจšเฉเจฃเฉ‹ เจ‰เจฌเจคเฉ‚เฉฐ.

เจœเจฟเจตเฉ‡เจ‚ เจนเฉ€ เจคเฉเจธเฉ€เจ‚ เจฐเจœเจฟเจธเจŸเจฐ เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจ–เจพเจคเฉ‡ เจตเจฟเฉฑเจš $100 เจชเฉเจฐเจพเจชเจค เจนเฉ‹เจฃเจ—เฉ‡เฅค เจชเจฐ เจฎเฉ‚เจฐเจ– เจจเจพ เจฌเจฃเฉ‹. เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ‡เจธ เจจเฉ‚เฉฐ เจ–เจฐเจšเจฃ เจฒเจˆ เจธเจฟเจฐเจซเจผ 60 เจฆเจฟเจจ เจนเจจเฅค เจ…เจคเฉ‡ เจ‡เจน เจฌเจนเฉเจค เจ˜เฉฑเจŸ เจนเฉˆ. เจคเฉเจธเฉ€เจ‚, เจฎเฉ‡เจฐเฉ‡ เจตเจพเจ‚เจ—, เจ‡เฉฑเจ• เจนเฉ‹เจฐ เจฎเจนเจฟเฉฐเจ—เฉ€ เจฏเฉ‹เจœเจจเจพ เจตเจฐเจคเจฃเจพ เจšเจพเจน เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจœเฉ‹ เจฌเจพเจ…เจฆ เจตเจฟเฉฑเจš, เจœเจฆเฉ‹เจ‚ เจ…เจธเจฒ เจชเฉˆเจธเจพ เจ†เจ‰เจฃเจพ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹ เจœเจพเจตเฉ‡, เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจธเจธเจคเฉ€ เจฏเฉ‹เจœเจจเจพ 'เจคเฉ‡ เจธเจตเจฟเฉฑเจš เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจฎเฉˆเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจคเฉเจฐเฉฐเจค เจฆเฉฑเจธเจพเจ‚เจ—เจพ เจ•เจฟ เจ‡เจน เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐเฉ‡เจ—เจพเฅค เจคเฉเจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจตเจงเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจชเจฐ เจ‡เจธเจจเฉ‚เฉฐ เจ˜เจŸเจพ เจจเจนเฉ€เจ‚ เจธเจ•เจฆเฉ‡เฅค เจ‡เจธ เจฒเจˆ เจ‡เจธ เจจเฉ‚เฉฐ เจšเจฒเจพ. เจฎเฉˆเจ‚ เจšเฉเจฃเจฆเจพ เจนเจพเจ‚ เจฎเจฟเจ†เจฐเฉ€->$5.

เจฎเฉˆเจ‚ เจธเจพเจกเฉ‡ เจธเจญ เจคเฉ‹เจ‚ เจจเจœเจผเจฆเฉ€เจ•เฉ€ เจ–เฉ‡เจคเจฐ เจจเฉ‚เฉฐ เจšเฉเจฃเจฆเจพ เจนเจพเจ‚ เจฎเฉเจฏเฉ‚เจจเจฟเจš. VPC เจจเฉˆเฉฑเจŸเจตเจฐเจ•->เจกเจฟเจซเจพเจฒเจŸ-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

เจ…เจธเฉ€เจ‚ laravel เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฆเฉ€ เจคเจฐเจซเฉ‹เจ‚, เจฒเฉ‡เจ– เจฆเฉ‡ เจ…เฉฐเจค เจคเฉฑเจ•, เจ…เฉฑเจ—เฉ‡ เจธเจพเจฐเฉ€เจ†เจ‚ เจ•เจพเจฐเจตเจพเจˆเจ†เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจ‡เจธ เจฒเจˆ, เจœเฉ‡เจ•เจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ…เจšเจพเจจเจ• เจฐเฉเจ•เจพเจตเจŸ เจ†เจ‰เจ‚เจฆเฉ€ เจนเฉˆ, เจคเจพเจ‚ เจฆเฉเจฌเจพเจฐเจพ เจฒเฉŒเจ—เจ‡เจจ เจ•เจฐเฉ‹ เจ…เจคเฉ‡ เจฆเจพเจ–เจฒ เจนเฉ‹เจตเฉ‹ su laravel

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

เจ…เจธเฉ€เจ‚ เจตเจฟเจฎ เจตเจฟเฉฑเจš เจซเจพเจˆเจฒ เจ–เฉ‹เจฒเฉเจนเฉ€. เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ‡เจธ เจคเฉ‹เจ‚ เจฌเจฟเจฒเจ•เฉเจฒ เจตเฉ€ เจœเจพเจฃเฉ‚ เจจเจนเฉ€เจ‚ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจจเฉˆเจจเฉ‹ เจตเจฟเฉฑเจš เจ•เฉฐเจฎ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจคเฉเจนเจพเจกเจพ เจ…เจงเจฟเจ•เจพเจฐ.

เจธเจญ เจคเฉ‹เจ‚ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจตเจฟเจฎ เจ•เจฎเจพเจ‚เจกเจพเจ‚

เจชเฉ‚เจฐเฉ‡ เจฒเฉ‡เจ– เจตเจฟเจš เจตเจฟเจฎ เจธเฉฐเจชเจพเจฆเจ• เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจธเจฟเจฐเจซ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจœเจพเจฃเจจ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉˆ.

  • เจตเจฟเจฎ เจฆเฉ‡ เจตเฉฑเจ–เฉ‹-เจตเฉฑเจ–เจฐเฉ‡ เจฎเฉ‹เจก เจนเจจ: เจธเจงเจพเจฐเจจ เจฎเฉ‹เจก, เจœเจฟเจธ เจตเจฟเฉฑเจš เจคเฉเจธเฉ€เจ‚ เจ•เจฎเจพเจ‚เจก เจฆเจพเจ–เจฒ เจ•เจฐเจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจฎเฉ‹เจก เจ…เจคเฉ‡ เจนเฉ‹เจฐ เจšเฉเจฃเจฆเฉ‡ เจนเฉ‹เฅค
  • เจ•เจฟเจธเฉ‡ เจตเฉ€ เจฎเฉ‹เจก เจคเฉ‹เจ‚ เจฌเจพเจนเจฐ เจจเจฟเจ•เจฒเจฃ เจ…เจคเฉ‡ เจ†เจฎ เจฎเฉ‹เจก 'เจคเฉ‡ เจตเจพเจชเจธ เจœเจพเจฃ เจฒเจˆ, เจฌเฉฑเจธ เจฆเจฌเจพเจ“ 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

  • เจ•เฉ€ เจฐเจฟเจฎเฉ‹เจŸเจฒเฉ€ เจฐเฉ‚เจŸ เจฒเฉŒเจ—เจ‡เจจ เจจเฉ‚เฉฐ เจ…เจธเจตเฉ€เจ•เจพเจฐ เจ•เจฐเจจเจพ เจนเฉˆ? - 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 เจจเฉฐเจฌเจฐเจพเจ‚ เจตเจฟเฉฑเจš เจนเฉ‹เจตเฉ‡เจ—เจพเฅค

  • 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>" เจฆเฉ€ เจฌเจœเจพเจ เจกเฉ‹เจฎเฉ‡เจจ เจฆเจพเจ–เจฒ เจ•เจฐเฉ‹ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, 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;

  • เจ…เจธเฉ€เจ‚ เจฐเฉ‚เจŸ เจชเจนเฉเฉฐเจš เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ 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 <ััั‹ะปะบะฐ ะฝะฐ ะฟั€ะพะตะบั‚> .

เจ‡เจน เจตเจฟเจšเจพเจฐเจจ เจฏเฉ‹เจ— เจนเฉˆ เจ•เจฟ เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจธเจฅเจฟเจฐ เจซเจพเจˆเจฒเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจคเฉ‹เจ‚ /publicGithub 'เจคเฉ‡, เจซเจฟเจฐ เจ•เฉเจฆเจฐเจคเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจคเฉเจนเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ‰เจน เจจเจนเฉ€เจ‚ เจนเฉ‹เจฃเจ—เฉ‡. เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจฎเฉˆเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเจพ เจฅเฉเจฐเฉˆเจก เจฌเจฃเจพเจ‡เจ† เจนเฉˆ 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 เจธเจฐเจตเจฐ" เจฒเฉฑเจญเฉ‹ (เจœเจพเจ‚ เจ•เฉเจ เจ…เจœเจฟเจนเจพ เจนเฉ€) เจ…เจคเฉ‡ เจกเจฟเจœเฉ€เจŸเจฒ เจ“เจธเจผเจจ เจธเจฐเจตเจฐ เจฆเจพเจ–เจฒ เจ•เจฐเฉ‹ (เจ…เจฐเจฅเจพเจค 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

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹