แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒœแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒ Laravel 7-แƒ–แƒ” Ubuntu & Nginx-แƒ–แƒ”

แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒœแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒ Laravel 7-แƒ–แƒ” Ubuntu & Nginx-แƒ–แƒ”

แƒ›แƒ” แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ” แƒจแƒ”แƒ›แƒ”แƒฅแƒ›แƒœแƒ แƒฉแƒ”แƒ›แƒ˜ แƒžแƒแƒ แƒขแƒคแƒแƒšแƒ˜แƒ Laravel 7-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒ˜แƒกแƒ”, แƒ แƒแƒ› แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜ แƒงแƒแƒคแƒ˜แƒšแƒ˜แƒงแƒ แƒกแƒแƒ“แƒ”แƒกแƒแƒœแƒขแƒ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜ แƒ“แƒ แƒ›แƒแƒกแƒ–แƒ” แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒงแƒ•แƒ”แƒšแƒ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒแƒก แƒแƒ“แƒ›แƒ˜แƒœแƒ˜แƒกแƒขแƒ แƒแƒชแƒ˜แƒฃแƒšแƒ˜ แƒžแƒแƒœแƒ”แƒšแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒแƒ  แƒแƒ แƒ˜แƒก แƒฌแƒ”แƒ แƒขแƒ˜แƒšแƒ˜. แƒกแƒแƒฅแƒ›แƒ” แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒแƒ›แƒ“แƒ” แƒ›แƒ˜แƒ•แƒ˜แƒ“แƒ. แƒ›แƒ” แƒ•แƒ˜แƒžแƒแƒ•แƒ” แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ™แƒแƒ แƒ’แƒ˜ แƒ’แƒแƒ™แƒ•แƒ”แƒ—แƒ˜แƒšแƒ˜, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒแƒ— แƒ”แƒก แƒกแƒ แƒฃแƒšแƒคแƒแƒกแƒแƒ•แƒแƒœ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ” แƒงแƒ•แƒ”แƒšแƒ แƒฃแƒกแƒ˜แƒแƒ›แƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒ›แƒ” แƒแƒ  แƒ•แƒแƒ  แƒซแƒแƒšแƒ˜แƒแƒœ แƒซแƒšแƒ˜แƒ”แƒ แƒ˜ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒแƒจแƒ˜; แƒ›แƒ” แƒ–แƒแƒ’แƒแƒ“แƒแƒ“ แƒฃแƒคแƒ แƒ แƒฌแƒ˜แƒœ แƒ•แƒแƒ , แƒ•แƒ˜แƒ“แƒ แƒ” แƒกแƒ แƒฃแƒšแƒ˜ แƒกแƒขแƒ”แƒ™แƒ˜. แƒ“แƒ แƒ—แƒฃ แƒ›แƒแƒ˜แƒœแƒช แƒจแƒ”แƒ›แƒ˜แƒซแƒšแƒ˜แƒ PHP-แƒจแƒ˜ แƒฌแƒ”แƒ แƒ แƒ“แƒ แƒขแƒ”แƒกแƒขแƒ˜แƒ แƒ”แƒ‘แƒ, แƒ›แƒแƒจแƒ˜แƒœ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒ›แƒแƒ แƒ—แƒ•แƒแƒ›แƒ“แƒ” แƒ“แƒ แƒ.แƒจ. แƒฏแƒ”แƒ  แƒแƒ  แƒ’แƒแƒ•แƒ–แƒ แƒ“แƒ˜แƒšแƒ•แƒแƒ . แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒ” แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ›แƒ”แƒ แƒ™แƒ•แƒ˜แƒ.

แƒแƒฎแƒšแƒ แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒ•แƒ˜แƒ•แƒšแƒ˜แƒ— แƒงแƒ•แƒ”แƒšแƒ แƒกแƒแƒคแƒ”แƒฎแƒฃแƒ แƒก, แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒฃแƒšแƒ˜ SSH-แƒ˜แƒ— แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒกแƒแƒ˜แƒขแƒ˜แƒ— แƒ“แƒแƒ›แƒ—แƒแƒ•แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜. แƒฉแƒ•แƒ”แƒœ แƒ•แƒ”แƒชแƒ“แƒ”แƒ‘แƒ˜แƒ— แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœ แƒแƒ•แƒ˜แƒชแƒ˜แƒšแƒแƒ— แƒงแƒ•แƒ”แƒšแƒ แƒฎแƒ˜แƒคแƒแƒ—แƒ˜.

แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ˜แƒžแƒแƒ•แƒแƒ— แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ˜แƒœแƒขแƒ”แƒ แƒœแƒ”แƒขแƒจแƒ˜. แƒ‘แƒแƒšแƒแƒก แƒ“แƒ แƒ‘แƒแƒšแƒแƒก, แƒ‘แƒแƒšแƒแƒก แƒ•แƒ˜แƒžแƒแƒ•แƒ”. แƒ›แƒแƒ แƒ—แƒแƒšแƒ˜แƒ, แƒแƒ แƒ แƒ”แƒ แƒ— แƒแƒ“แƒ’แƒ˜แƒšแƒแƒก, แƒแƒ แƒช StackOverflow-แƒ˜แƒก แƒ“แƒแƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ” แƒ“แƒ แƒซแƒœแƒ”แƒšแƒแƒ“ แƒ แƒฃแƒกแƒฃแƒšแƒแƒ“. แƒ’แƒแƒœแƒ•แƒ˜แƒชแƒ“แƒ˜. แƒแƒ›แƒ˜แƒขแƒแƒ› แƒ’แƒแƒ“แƒแƒ•แƒฌแƒงแƒ•แƒ˜แƒขแƒ” แƒจแƒ”แƒœแƒ˜ แƒชแƒฎแƒแƒ•แƒ แƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒ”แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ”แƒ‘แƒ˜แƒœแƒ.

แƒฉแƒ•แƒ”แƒœ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒก แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ— แƒฌแƒ•แƒ”แƒ—แƒ˜แƒ— DigitalOcean-แƒ–แƒ”. แƒ”แƒก, แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, แƒแƒ  แƒแƒ แƒ˜แƒก แƒแƒฃแƒชแƒ˜แƒšแƒ”แƒ‘แƒ”แƒšแƒ˜; แƒแƒ˜แƒ แƒฉแƒ˜แƒ”แƒ— แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒฐแƒแƒกแƒขแƒ˜แƒœแƒ’แƒ˜. แƒ แƒแƒ“แƒ”แƒกแƒแƒช Ubuntu-แƒ–แƒ” แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒก แƒ›แƒ˜แƒแƒฆแƒฌแƒ”แƒ•แƒ—, แƒ“แƒแƒ‘แƒ แƒฃแƒœแƒ“แƒ˜แƒ—. แƒ›แƒแƒ—แƒ—แƒ•แƒ˜แƒก, แƒ•แƒ˜แƒœแƒช แƒ›แƒแƒ˜แƒœแƒช แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒก แƒแƒ›แƒ˜แƒก แƒ’แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒแƒก DigitalOcean-แƒ–แƒ”, แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ›แƒ”แƒขแƒ˜ แƒ แƒฉแƒ”แƒ•แƒ แƒ“แƒแƒ›แƒ”แƒœแƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘. แƒ“แƒ 100$ แƒ แƒ”แƒคแƒ”แƒ แƒแƒšแƒฃแƒ แƒ˜ แƒ‘แƒ›แƒฃแƒšแƒ˜.

DigitalOcean-แƒ˜แƒก แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒงแƒ•แƒ”แƒšแƒ แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜ แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜แƒ แƒ›แƒกแƒ’แƒแƒ•แƒก แƒกแƒฅแƒแƒšแƒ˜แƒแƒ”แƒ‘แƒจแƒ˜.

แฒ“แƒแƒ•แƒ˜แƒฌแƒงแƒแƒ—.

TL;DR (แƒ›แƒฎแƒแƒšแƒแƒ“ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜)

แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜

  • ssh root@[IP-ะฐะดั€ะตั ะฒะฐัˆะตะณะพ ะดั€ะพะฟะปะตั‚ะฐ]
  • adduser laravel
  • usermod -aG sudo laravel
  • su laravel

แƒ“แƒแƒแƒ›แƒแƒขแƒ”แƒ— แƒ›แƒแƒก SSH

  • mkdir ~/.ssh
  • chmod 700 ~/.ssh
  • vim ~/.ssh/authorized_keys
  • แƒฉแƒแƒ“แƒ”แƒ— แƒกแƒแƒฏแƒแƒ แƒ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜
  • chmod 600 ~/.ssh/authorized_keys

Firewall

  • 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;
        }
}

แƒ›แƒฎแƒแƒšแƒแƒ“ HTTP แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ Laravel-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก:

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;
    }
}

HTTPS แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ Laravel-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก:

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, แƒ›แƒแƒ แƒฏแƒ•แƒœแƒ˜แƒ• แƒแƒ แƒ˜แƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜. แƒ’แƒแƒฎแƒกแƒ”แƒœแƒ˜แƒ— แƒ‘แƒแƒจแƒ˜แƒก แƒขแƒ”แƒ แƒ›แƒ˜แƒœแƒแƒšแƒ˜ แƒ“แƒ แƒฉแƒแƒกแƒ•แƒ˜แƒ— ssh-keygen. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒ“แƒแƒ•แƒ“แƒ˜แƒ•แƒแƒ แƒ— แƒคแƒแƒ˜แƒšแƒ–แƒ” แƒกแƒแƒฏแƒแƒ แƒ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒ— /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

แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ— แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒแƒก แƒจแƒ”แƒ›แƒ“แƒ’แƒแƒ›แƒจแƒ˜, แƒกแƒขแƒแƒขแƒ˜แƒ˜แƒก แƒ‘แƒแƒšแƒแƒ›แƒ“แƒ”, แƒšแƒแƒ แƒแƒ•แƒ”แƒšแƒ˜แƒก แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒ—. แƒแƒ›แƒ˜แƒขแƒแƒ›, แƒ—แƒฃ แƒ›แƒแƒฃแƒšแƒแƒ“แƒœแƒ”แƒšแƒแƒ“ แƒจแƒ”แƒ’แƒ”แƒจแƒแƒšแƒแƒ—, แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒจแƒ”แƒ“แƒ˜แƒ— แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒจแƒ˜ แƒ“แƒ แƒจแƒ”แƒ“แƒ˜แƒ— 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

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

Nginx-แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ firewall-แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒจแƒ˜

  • 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-แƒ–แƒ”. แƒ—แƒฃ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ™แƒแƒ แƒ’แƒแƒ“ แƒ›แƒ˜แƒ“แƒ˜แƒก, แƒฃแƒœแƒ“แƒ แƒœแƒแƒฎแƒแƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜.

แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒœแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒ Laravel 7-แƒ–แƒ” Ubuntu & Nginx-แƒ–แƒ”

MySQL-แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ

  • sudo apt install mysql-server
  • แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒ“แƒแƒชแƒ•แƒ˜แƒก แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ sudo mysql_secure_installation

แƒฃแƒžแƒแƒกแƒฃแƒฎแƒ”แƒ— แƒ“แƒแƒกแƒ›แƒฃแƒš แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ”แƒ‘แƒก. แƒ—แƒฃ แƒแƒ  แƒ˜แƒชแƒ˜แƒ— แƒ แƒ แƒฃแƒžแƒแƒกแƒฃแƒฎแƒแƒ—, แƒแƒฅ แƒแƒ แƒ˜แƒก แƒ แƒแƒ›แƒแƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒจแƒ”แƒ›แƒแƒ—แƒแƒ•แƒแƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜:

  • แƒžแƒแƒ แƒแƒšแƒ˜แƒก แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒ’แƒแƒ“แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ - N

  • แƒฌแƒแƒจแƒแƒšแƒแƒ— แƒแƒœแƒแƒœแƒ˜แƒ›แƒฃแƒ แƒ˜ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜? - Y

  • แƒแƒ  แƒ›แƒแƒฎแƒ“แƒ”แƒก root แƒจแƒ”แƒกแƒ•แƒšแƒ แƒ“แƒ˜แƒกแƒขแƒแƒœแƒชแƒ˜แƒฃแƒ แƒแƒ“? - N

  • แƒ’แƒกแƒฃแƒ แƒ— แƒกแƒแƒขแƒ”แƒกแƒขแƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ˜แƒก แƒฌแƒแƒจแƒšแƒ แƒ“แƒ แƒ›แƒแƒกแƒ–แƒ” แƒฌแƒ•แƒ“แƒแƒ›แƒ? - N

  • แƒ’แƒแƒœแƒแƒแƒฎแƒšแƒ”แƒ— แƒžแƒ แƒ˜แƒ•แƒ˜แƒšแƒ”แƒ’แƒ˜แƒ”แƒ‘แƒ˜แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒแƒฎแƒšแƒ? - Y

  • แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒ“แƒ”แƒ— MySQL-แƒ–แƒ”: sudo mysql

  • แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒก แƒ›แƒ”แƒ—แƒแƒ“แƒ”แƒ‘แƒก: SELECT user,authentication_string,plugin,host FROM mysql.user;

  • แƒ“แƒแƒแƒงแƒ”แƒœแƒ”แƒ— แƒžแƒแƒ แƒแƒšแƒ˜ root-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<ะ’ะฐัˆ ะฟะฐั€ะพะปัŒ ะดะปั MySQL>';

  • แƒ›แƒแƒ“แƒ˜แƒ— แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ”แƒ แƒ—แƒฎแƒ”แƒš แƒ’แƒแƒ“แƒแƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒก แƒ›แƒ”แƒ—แƒแƒ“แƒ”แƒ‘แƒก: SELECT user,authentication_string,plugin,host FROM mysql.user;

  • แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ— แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ’แƒแƒ›แƒแƒ“แƒ˜แƒ— MySQL: FLUSH PRIVILEGES; ะธ exit

  • แƒแƒฎแƒšแƒ MySQL-แƒจแƒ˜ แƒจแƒ”แƒกแƒแƒกแƒ•แƒšแƒ”แƒšแƒแƒ“ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— mysql -u root -p แƒ“แƒ แƒจแƒ”แƒ˜แƒงแƒ•แƒแƒœแƒ”แƒ— แƒžแƒแƒ แƒแƒšแƒ˜

PHP-แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ

แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒงแƒ”แƒœแƒแƒ— แƒ›แƒ”แƒกแƒแƒ›แƒ” แƒ›แƒฎแƒแƒ แƒ˜แƒก แƒกแƒแƒชแƒแƒ•แƒ˜ แƒแƒœแƒ“แƒ แƒ”แƒ˜ แƒกแƒฃแƒ แƒ˜

  • sudo apt update
  • sudo apt install -y curl wget gnupg2 ca-certificates lsb-release apt-transport-https
  • sudo apt-add-repository ppa:ondrej/php
  • sudo apt update

แƒแƒฎแƒšแƒ แƒแƒ•แƒ˜แƒ แƒฉแƒ˜แƒแƒ—. Laravel 7-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒแƒ˜แƒ แƒฉแƒ˜แƒแƒ— PHP 7.3 แƒแƒœ 7.4. แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ 3 แƒ“แƒ 4 แƒ แƒ˜แƒชแƒฎแƒ•แƒ”แƒ‘แƒจแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ.

  • 7.3: sudo apt install -y php7.3-fpm php7.3-mysql
  • 7.4: sudo apt install -y php7.4-fpm php7.4-mysql

PHP FastCGI แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜แƒก แƒ›แƒ”แƒœแƒ”แƒฏแƒ”แƒ แƒ˜ (fpm) แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก PHP แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ—แƒแƒœ. mysql, แƒ แƒ แƒ—แƒฅแƒ›แƒ แƒฃแƒœแƒ“แƒ, MySQL-แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒแƒ›แƒ˜แƒ”แƒ แƒ˜แƒ“แƒแƒœ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒก แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ‘ 7.4-แƒ–แƒ”.

Nginx-แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ

  • sudo vim /etc/nginx/sites-available/<ะ’ะฐัˆ ะดะพะผะตะฝ>

"<แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ“แƒแƒ›แƒ”แƒœแƒ˜>"-แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“ แƒจแƒ”แƒ˜แƒงแƒ•แƒแƒœแƒ”แƒ— แƒ“แƒแƒ›แƒ”แƒœแƒ˜ (แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, mysite.ru) แƒ แƒแƒ›แƒšแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ’แƒกแƒฃแƒ แƒ— แƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒจแƒ˜. แƒ—แƒฃ แƒฏแƒ”แƒ  แƒแƒ  แƒ’แƒแƒฅแƒ•แƒ—, แƒ“แƒแƒฌแƒ”แƒ แƒ”แƒ— แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒ›แƒ”, แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ’แƒแƒ˜แƒ›แƒ”แƒแƒ แƒ”แƒ— แƒแƒ› แƒ—แƒแƒ•แƒจแƒ˜ แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜ แƒœแƒแƒ‘แƒ˜แƒฏแƒ”แƒ‘แƒ˜ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ“แƒแƒ›แƒ”แƒœแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒชแƒ แƒแƒ˜แƒ แƒฉแƒ”แƒ•แƒ— แƒ›แƒแƒก.

แƒจแƒ”แƒ˜แƒงแƒ•แƒแƒœแƒ”แƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜:

server {
        listen 80;
        root /var/www/html;
        index index.php index.html index.htm index.nginx-debian.html;
        server_name <ะ’ะฐัˆ ะดะพะผะตะฝ ะธะปะธ IP>;

        location / {
                try_files $uri $uri/ =404;
        }

        location ~ .php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        }

        location ~ /.ht {
                deny all;
        }
}

แƒ—แƒฃ แƒกแƒแƒœแƒแƒชแƒ•แƒšแƒแƒ“ แƒแƒ˜แƒ แƒฉแƒ˜แƒ” แƒ•แƒ”แƒ แƒกแƒ˜แƒ 7.3 php7.4-fpm.sock แƒฉแƒแƒฌแƒ”แƒ แƒ”แƒ— php7.4-fpm.sock.

แƒ›แƒแƒฃแƒกแƒ›แƒ˜แƒœแƒ”แƒ— 80 แƒžแƒแƒ แƒขแƒก server_nameแƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ›แƒ˜แƒ•แƒแƒฆแƒฌแƒ”แƒ•แƒ— root แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒก /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

แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒœแƒแƒฎแƒแƒ— แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒ แƒแƒ›:

แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒœแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒ Laravel 7-แƒ–แƒ” Ubuntu & Nginx-แƒ–แƒ”

แƒแƒฎแƒšแƒ แƒ”แƒก แƒคแƒแƒ˜แƒšแƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฌแƒแƒ˜แƒจแƒแƒšแƒแƒก: 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

  • แƒจแƒ”แƒฅแƒ›แƒ”แƒœแƒ˜แƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒ— แƒšแƒแƒ แƒแƒ•แƒ”แƒšแƒ˜: CREATE DATABASE laravel DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

  • แƒฉแƒ•แƒ”แƒœ แƒ•แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒ— root แƒฌแƒ•แƒ“แƒแƒ›แƒแƒก แƒšแƒแƒ แƒแƒ•แƒ”แƒšแƒ˜: 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-แƒ“แƒแƒœ.

  • 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 false-แƒ˜แƒ— แƒ“แƒ แƒจแƒ”แƒ˜แƒงแƒ•แƒแƒœแƒ”แƒ— แƒกแƒฌแƒแƒ แƒ˜ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜ 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-แƒ˜แƒก แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ Laravel-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก:

sudo vim /etc/nginx/sites-available/<ะ’ะฐัˆ ะดะพะผะตะฝ>

server {
    listen 80;
    listen [::]:80;

    root /var/www/html/<ะ˜ะผั ะฟั€ะพะตะบั‚ะฐ>/public;
    index index.php index.html index.htm index.nginx-debian.html;

    server_name <ะ’ะฐัˆ ะดะพะผะตะฝ ะธะปะธ IP>;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ .php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }

    location ~ /.ht {
        deny all;
    }
}

แƒ˜แƒกแƒ”แƒ•แƒ” แƒ แƒแƒ’แƒแƒ แƒช แƒฌแƒ˜แƒœแƒ แƒฏแƒ”แƒ แƒ–แƒ”, แƒ—แƒฃ แƒแƒ›แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“ แƒแƒ˜แƒ แƒฉแƒ˜แƒ” แƒ•แƒ”แƒ แƒกแƒ˜แƒ 7.3 php7.4-fpm.sock แƒฉแƒแƒฌแƒ”แƒ แƒ”แƒ— php7.4-fpm.sock.

แƒ“แƒแƒ›แƒ”แƒœแƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ DigitalOcean-แƒ–แƒ”

แƒกแƒ˜แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ”แƒจแƒ˜ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒซแƒแƒšแƒ˜แƒแƒœ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ. แƒ—แƒฅแƒ•แƒ”แƒœ แƒงแƒ˜แƒ“แƒฃแƒšแƒแƒ‘แƒ— แƒ“แƒแƒ›แƒ”แƒœแƒก (แƒกแƒแƒ“แƒ›แƒ”), แƒ’แƒแƒ“แƒแƒ“แƒ˜แƒ— DigitalOcean-แƒ–แƒ” แƒจแƒ”แƒฅแƒ›แƒœแƒ->แƒ“แƒแƒ›แƒ”แƒœแƒ”แƒ‘แƒ˜/DNSแƒ แƒ ะ’ ะฟะพะปะต แƒ“แƒแƒแƒ›แƒแƒขแƒ”แƒ— แƒ“แƒแƒ›แƒ”แƒœแƒ˜ แƒจแƒ”แƒ“แƒ˜แƒฎแƒแƒ แƒ— แƒแƒ› แƒ“แƒแƒ›แƒ”แƒœแƒจแƒ˜ แƒ“แƒ แƒ“แƒแƒแƒญแƒ˜แƒ แƒ”แƒ— แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒแƒก. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒ“แƒแƒ“แƒ˜แƒ— แƒ“แƒแƒ›แƒ”แƒœแƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ–แƒ” แƒ“แƒ แƒ•แƒ”แƒšแƒ–แƒ” แฒ›แฒแฒกแฒžแฒ˜แฒœแฒซแฒšแฒ˜แฒก แฒกแฒแฒฎแฒ”แฒšแฒ˜ แƒจแƒ”แƒ“แƒ˜ @. แƒแƒ˜แƒ แƒฉแƒ˜แƒ”แƒ— แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜ แƒ“แƒ แƒ“แƒแƒแƒฌแƒ™แƒแƒžแƒฃแƒœแƒ”แƒ— แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ.
แƒแƒฎแƒšแƒ แƒ’แƒแƒ“แƒแƒ“แƒ˜แƒ— แƒกแƒแƒ˜แƒขแƒ–แƒ”, แƒกแƒแƒ“แƒแƒช แƒ˜แƒงแƒ˜แƒ“แƒ”แƒ— แƒ“แƒแƒ›แƒ”แƒœแƒ˜, แƒ˜แƒžแƒแƒ•แƒ”แƒ— แƒ˜แƒฅ โ€žDNS แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ”แƒ‘แƒ˜โ€œ (แƒแƒœ แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒ แƒแƒ›) แƒ“แƒ แƒจแƒ”แƒ˜แƒงแƒ•แƒแƒœแƒ”แƒ— DigitalOcean แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ”แƒ‘แƒ˜ (แƒ™แƒ”แƒ แƒซแƒแƒ“. ns1.digitalocean.com, ns2.digitalocean.com, ns3.digitalocean.com). แƒแƒฎแƒšแƒ แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ”แƒšแƒแƒ“แƒแƒ— แƒชแƒแƒขแƒ (แƒแƒœ แƒ‘แƒ”แƒ•แƒ แƒ˜) แƒกแƒแƒœแƒแƒ› แƒ”แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜ แƒแƒ  แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒ. แƒ›แƒ–แƒแƒ“แƒแƒ!
แƒ”แƒ แƒ—แƒแƒ“แƒ”แƒ แƒ—แƒ˜ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒ˜แƒก แƒแƒ แƒ˜แƒก, แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒกแƒแƒ˜แƒขแƒ˜ แƒ’แƒแƒ˜แƒฎแƒกแƒœแƒ”แƒ‘แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ HTTP แƒกแƒแƒฎแƒ˜แƒ—. HTTPS แƒ แƒแƒ› แƒ’แƒฅแƒแƒœแƒ“แƒ”แƒ—, แƒ’แƒแƒ“แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒœแƒแƒฌแƒ˜แƒšแƒ–แƒ”.

HTTPS-แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ

แƒ“แƒแƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ— certbot แƒ“แƒ แƒ’แƒแƒ“แƒแƒ”แƒชแƒ˜แƒ— แƒ“แƒแƒ›แƒ”แƒœแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜ (แƒคแƒแƒ แƒ›แƒแƒขแƒ˜ mysite.ru) แƒ“แƒ แƒ“แƒแƒ›แƒ”แƒœแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜ www (www.mysite.ru).

  • sudo add-apt-repository ppa:certbot/certbot
  • sudo apt install python-certbot-nginx
  • sudo certbot certonly --webroot --webroot-path=/var/www/html/<ะ˜ะผั ะฟั€ะพะตะบั‚ะฐ>/public -d <ะ’ะฐัˆ ะดะพะผะตะฝ> -d www.<ะ’ะฐัˆ ะดะพะผะตะฝ>

แƒแƒฎแƒšแƒ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— Nginx-แƒ˜แƒก แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ (แƒแƒ  แƒ“แƒแƒ’แƒแƒ•แƒ˜แƒฌแƒงแƒ“แƒ”แƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒฉแƒแƒœแƒแƒชแƒ•แƒšแƒ”แƒ‘แƒ):

server {
    listen 80;
    listen [::]:80;

    server_name <ะ’ะฐัˆ ะดะพะผะตะฝ> www.<ะ’ะฐัˆ ะดะพะผะตะฝ>;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name <ะ’ะฐัˆ ะดะพะผะตะฝ> www.<ะ’ะฐัˆ ะดะพะผะตะฝ>;
    root /var/www/html/<ะ˜ะผั ะฟั€ะพะตะบั‚ะฐ>/public;

    ssl_certificate /etc/letsencrypt/live/<ะ’ะฐัˆ ะดะพะผะตะฝ>/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/<ะ’ะฐัˆ ะดะพะผะตะฝ>/privkey.pem;

    ssl_protocols TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;
    ssl_prefer_server_ciphers on;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";

    index index.php index.html index.htm index.nginx-debian.html;

    charset utf-8;

    location / {
            try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ .php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
    }

    location ~ /.ht {
            deny all;
    }

    location ~ /.well-known {
            allow all;
    }
}

แƒ•แƒคแƒ˜แƒฅแƒ แƒแƒ‘, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒ™แƒ•แƒ” แƒ’แƒ”แƒกแƒ›แƒ˜แƒ—, แƒ แƒ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒแƒก PHP 7.3-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒแƒฅ, แƒคแƒแƒฅแƒขแƒแƒ‘แƒ แƒ˜แƒ•แƒแƒ“, แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ. แƒฉแƒ•แƒ”แƒœ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ’แƒแƒ“แƒแƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ— แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒก HTTP-แƒ“แƒแƒœ (แƒžแƒแƒ แƒขแƒ˜ 80) HTTPS-แƒ–แƒ” (แƒžแƒแƒ แƒขแƒ˜ 443). แƒ“แƒ แƒ˜แƒฅ แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ— แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒก แƒ˜แƒกแƒ”แƒ•แƒ”, แƒ แƒแƒ’แƒแƒ แƒช แƒแƒ“แƒ แƒ”, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ“แƒแƒจแƒ˜แƒคแƒ•แƒ แƒ˜แƒ—.

แƒ แƒฉแƒ”แƒ‘แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒœแƒ”แƒ‘แƒแƒ แƒ—แƒ•แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ firewall-แƒจแƒ˜:

  • sudo nginx -t
  • sudo ufw app list
  • sudo ufw allow 'Nginx HTTPS'
  • sudo ufw status
  • sudo systemctl reload nginx

แƒแƒฎแƒšแƒ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ˜แƒกแƒ” แƒฃแƒœแƒ“แƒ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ“แƒ”แƒก, แƒ แƒแƒ’แƒแƒ แƒช แƒฃแƒœแƒ“แƒ.

[Advanced] Node.js-แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ

แƒ—แƒฃ แƒ›แƒแƒฃแƒšแƒแƒ“แƒœแƒ”แƒšแƒแƒ“ แƒ“แƒแƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— npm แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ” แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ, แƒฃแƒœแƒ“แƒ แƒ“แƒแƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒแƒ— Node.js.

  • sudo apt update
  • sudo apt install -y nodejs npm
  • nodejs -v

แƒ”แƒกแƒ” แƒ˜แƒ’แƒ˜, แƒแƒ› แƒ”แƒขแƒแƒžแƒ–แƒ” แƒ’แƒแƒ•แƒฉแƒ”แƒ แƒ“แƒ˜. แƒžแƒ แƒ˜แƒœแƒชแƒ˜แƒžแƒจแƒ˜, แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜แƒ— แƒ™แƒ›แƒแƒงแƒแƒคแƒ˜แƒšแƒ˜ แƒ•แƒแƒ . แƒแƒšแƒ‘แƒแƒ— DigitalOcean-แƒ“แƒแƒœ แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒ“แƒ” แƒกแƒแƒ“แƒ›แƒ” แƒ แƒฃแƒกแƒ”แƒ—แƒ—แƒแƒœ แƒฃแƒคแƒ แƒ แƒแƒฎแƒšแƒแƒก แƒ“แƒ แƒ˜แƒแƒคแƒแƒ“. แƒ›แƒแƒ’แƒ แƒแƒ› แƒ แƒแƒ“แƒ’แƒแƒœ แƒ›แƒ” แƒฃแƒ™แƒ•แƒ” แƒ’แƒแƒ•แƒ˜แƒแƒ แƒ” แƒงแƒ•แƒ”แƒšแƒ แƒ’แƒแƒ“แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒฃแƒœแƒ“แƒ˜ แƒกแƒแƒ˜แƒขแƒ–แƒ” แƒ“แƒ แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ’แƒแƒ•แƒแƒ™แƒ”แƒ—แƒ” แƒ˜แƒฅ, แƒ›แƒ” แƒ›แƒแƒ— แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜แƒ— แƒ•แƒแƒฉแƒ•แƒ”แƒœแƒ”. แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒ›แƒแƒ—แƒ˜ แƒกแƒแƒฌแƒงแƒ˜แƒกแƒ˜ 100 แƒ“แƒแƒšแƒแƒ แƒ˜ แƒจแƒ”แƒกแƒแƒœแƒ˜แƒจแƒœแƒแƒ•แƒ˜ แƒžแƒšแƒแƒชแƒ“แƒแƒ แƒ›แƒ˜แƒ แƒ•แƒแƒ แƒฏแƒ˜แƒจแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

PS แƒ’แƒแƒœแƒกแƒแƒ™แƒฃแƒ—แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒแƒ“แƒšแƒแƒ‘แƒ แƒแƒ•แƒขแƒแƒ แƒก แƒ”แƒก แƒแƒ แƒกแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒแƒคแƒฃแƒซแƒ•แƒšแƒแƒ“ แƒ“แƒแƒ”แƒ“แƒ แƒงแƒ•แƒ”แƒšแƒ แƒ–แƒ”แƒ›แƒแƒ— แƒฉแƒแƒ›แƒแƒ—แƒ•แƒšแƒ˜แƒš แƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒแƒก. แƒ–แƒแƒ’ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒšแƒแƒ แƒแƒ•แƒ”แƒš 7-แƒ–แƒ” แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก, แƒ’แƒแƒ•แƒแƒกแƒฌแƒแƒ แƒ”.

PPS แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒฎแƒแƒ แƒ— แƒขแƒแƒž แƒ˜แƒœแƒŸแƒ˜แƒœแƒ”แƒ แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒคแƒ˜แƒฅแƒ แƒแƒ‘แƒก bash แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒจแƒ˜, แƒ’แƒ—แƒฎแƒแƒ•แƒ—, แƒ›แƒ™แƒแƒชแƒ แƒแƒ“ แƒœแƒฃ แƒ’แƒแƒœแƒกแƒฏแƒ˜แƒ—. แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ”แƒก แƒกแƒขแƒแƒขแƒ˜แƒ แƒ“แƒแƒ‘แƒแƒšแƒ˜ แƒ“แƒแƒœแƒ˜แƒก แƒ›แƒแƒ’แƒ”แƒฉแƒ•แƒ”แƒœแƒแƒ—, แƒ›แƒแƒ’แƒ แƒแƒ› แƒกแƒ˜แƒแƒ›แƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒ— แƒ•แƒ˜แƒžแƒแƒ•แƒœแƒ˜แƒ“แƒ˜, แƒ แƒแƒชแƒ แƒ“แƒแƒ›แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ“แƒ. แƒ—แƒฃ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒฌแƒ˜แƒœแƒแƒ“แƒแƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ’แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ›แƒ” แƒแƒ›แƒ˜แƒก แƒ›แƒแƒ›แƒฎแƒ แƒ” แƒ•แƒแƒ .

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ