په Ubuntu او Nginx کې Laravel 7 ته د غوښتنلیک ځای پرځای کول

په Ubuntu او Nginx کې Laravel 7 ته د غوښتنلیک ځای پرځای کول

ما پریکړه وکړه چې خپل پورټ فولیو د Laravel 7 په کارولو سره جوړ کړم. له دې امله اصلي پاڼه به د لینډینګ پاڼه وي، او په دې کې ټول معلومات د اډمین پینل په کارولو سره بدلیدلی شي. خبره نه ده. دا ځای پرځای کولو ته راغلی. ما د ټولو ستونزو سره په بشپړ سرور کې دا څنګه ترسره کولو په اړه یو څو ښه ښوونې وموندلې. زه په ګمارلو کې خورا پیاوړی نه یم؛ زه عموما د بشپړ سټیک څخه ډیر مخکښ یم. او ، که زه لاهم کولی شم په PHP کې ولیکم او ازموینه وکړم ، نو د سرور اداره کولو دمخه ، او داسې نور. زه لا لوی شوی نه یم مګر زه باید دا معلومه کړم.

اوس به موږ ټولو مرحلو ته ځو ، د SSH له لارې لانچ سره پیل او د کاري سایټ سره پای ته ورسیږو. موږ به هڅه وکړو چې د ټولو زیانونو څخه مخنیوی وکړو.

تاسو کولی شئ ورته لارښوونې آنلاین ومومئ. په پای کې، ما دا وموندله. ریښتیا، په یو ځای کې نه، نه د StackOverflow مرستې پرته، او په سختۍ سره په روسیه کې. ما خوار کړ. له همدې امله ما پریکړه وکړه چې ستاسو ژوند ساده کړم.

موږ به په ډیجیټل اوشین کې د څاڅکي سره هرڅه ترسره کړو. دا، البته، اړین نه دی؛ کوم کوربه توب غوره کړئ. کله چې تاسو په اوبنټو کې کاري سرور ته ورسیږئ، بیرته راشئ. د هغو کسانو لپاره چې لاهم پریکړه کوي دا په ډیجیټل اوشین کې ترسره کړي، د ډومین تنظیم کولو لپاره به نور لارښوونې وي. او د $ 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

مای

  • 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

پی ایچ پی

  • 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 ترتیب:

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 ترتیب:

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

په ډیجیټل اوشین کې یو څاڅکی رامینځته کړئ او نوی SSH کیلي ثبت کړئ

زه واقعیا باور لرم چې تاسو به ومومئ چې څنګه د ډیجیټل اوشین سره ځان راجستر کړئ. دا اسانه نه ده، د ډیرو تاییداتو او نورو شیانو سره. که تاسو د اسنادو په کارولو سره تصدیق کولو په وخت کې په دوامداره توګه د شبکې تېروتنه ترلاسه کوئ، د 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

موږ فایل په ویم کې خلاص کړ. که تاسو له دې سره بلد نه یاست، تاسو کولی شئ په نانو کې کار وکړئ، ستاسو حق.

ترټولو لومړني ویم حکمونه

د مقالې په اوږدو کې د ویم مدیر کارولو لپاره ، تاسو اړتیا لرئ لاندې پوه شئ.

  • ویم مختلف حالتونه لري: نورمال حالت، په کوم کې چې تاسو کمانډ داخل کړئ او حالتونه او نور غوره کړئ.
  • د هر حالت څخه وتلو او نورمال حالت ته راستنیدو لپاره ، یوازې فشار ورکړئ 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

د فایروال تنظیماتو ته د نګینکس اضافه کول

  • 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 کې ترسره کړم.

د نګینکس تنظیم کول

  • sudo vim /etc/nginx/sites-available/<Ваш домен>

د "<ستاسو ډومین>" پرځای ډومین دننه کړئ (د مثال په توګه، mysite.ru) چې تاسو غواړئ په راتلونکي کې وکاروئ. که تاسو تر اوسه یو نلرئ، کوم یې ولیکئ، بیا یوازې د دې فصل مرحلې د خپل ډومین لپاره تکرار کړئ کله چې تاسو یې وټاکئ.

لاندې داخل کړئ:

server {
        listen 80;
        root /var/www/html;
        index index.php index.html index.htm index.nginx-debian.html;
        server_name <Ваш домен или IP>;

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

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

        location ~ /.ht {
                deny all;
        }
}

که تاسو د دې پرځای 7.3 نسخه غوره کړه php7.4-fpm.sock ولیکه php7.4-fpm.sock.

په پورټ 80 کې واورئ server_nameکله چې موږ د ریښې غوښتنې ته ورسیږو /var/www/html د شاخص فایل واخلئ. که وروسته server_name یو څه شتون لري، موږ د داسې فایل په لټه کې یو. که موږ دا ونه موندل، موږ 404 غورځوو. که دا پای ته ورسیږي .php، له لارې تیریدل fpm... که شتون ولري .ht، ممانعت (۴۰۳) .

  • څخه لینک جوړول sites-available в sites-enabled: sudo ln -s /etc/nginx/sites-available/<Ваш домен> /etc/nginx/sites-enabled/
  • د لینک لرې کول default: sudo unlink /etc/nginx/sites-enabled/default
  • د تېروتنو چک کول: sudo nginx -t
  • ریبوټ: sudo systemctl reload nginx

د کار چک کول:

  • sudo vim /var/www/html/info.php
  • موږ لیکو: <?php phpinfo();
  • ځه چې ځو <Ваш IP>/info.php

تاسو باید د دې په څیر یو څه وګورئ:

په Ubuntu او Nginx کې Laravel 7 ته د غوښتنلیک ځای پرځای کول

اوس دا فایل حذف کیدی شي: sudo rm /var/www/html/info.php

Laravel نصب کړئ

  • 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 <Имя проекта>

بیا تاسو اړتیا لرئ پروژه انتقال کړئ. د مثال په توګه، د ګیتوب څخه کلون کول.

  • cd ./<Имя проекта>
  • git clone <ссылка на проект> .

دا په پام کې نیولو سره ارزښت لري که تاسو جامد فایلونه خوندي نه کړي (د مثال په توګه، له /public) په ګیتوب کې، بیا په طبیعي توګه تاسو به یې ونه لرئ. د مثال په توګه، ما د دې حل کولو لپاره جلا موضوع جوړه کړه 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

وروستی شی چې پاتې دی د لارویل لپاره د نګینکس تنظیم کول دي:

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.

په ډیجیټل اوشین کې د ډومین تنظیم کول

هرڅه په حقیقت کې خورا ساده دي. تاسو یو ډومین واخلئ (هرچیرې)، ډیجیټل اوشین ته لاړ شئ جوړول->ډومین/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.<Ваш домен>

اوس تاسو اړتیا لرئ د نګینکس بیا تنظیم کړئ (خپل ارزښتونه ځای په ځای کول مه هیروئ):

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

Add a comment