Defnyddio cais i Laravel 7 ar Ubuntu & Nginx

Defnyddio cais i Laravel 7 ar Ubuntu & Nginx

Penderfynais wneud fy mhortffolio gan ddefnyddio Laravel 7. Fel y byddai'r brif dudalen yn dudalen lanio, a gellid newid yr holl wybodaeth arno gan ddefnyddio'r panel gweinyddol. Nid y pwynt. Daeth i ddefnydd. Des i o hyd i gwpl o sesiynau tiwtorial da ar sut i wneud hyn ar weinydd llawn gyda'r holl drafferthion. Dydw i ddim yn gryf iawn o ran lleoli; yn gyffredinol rydw i'n fwy blaen na phentwr llawn. Ac, os gallaf ddal i ysgrifennu a phrofi yn PHP, yna cyn rheoli'r gweinydd, ac ati. Dydw i ddim wedi tyfu i fyny eto. Ond roedd yn rhaid i mi chyfrif i maes.

Nawr byddwn yn mynd trwy'r holl gamau, gan ddechrau gyda lansiad trwy SSH a gorffen gyda'r safle gwaith. Byddwn yn ceisio osgoi'r holl beryglon.

Efallai y byddwch yn gallu dod o hyd i gyfarwyddiadau tebyg ar-lein. Wedi'r cyfan, fe wnes i ddod o hyd iddo o'r diwedd. Gwir, nid mewn un lle, nid heb gymorth StackOverflow, a phrin yn Rwsieg. Dioddefais. Dyna pam y penderfynais i symleiddio'ch bywyd.

Byddwn yn gwneud popeth gyda defnyn ar DigitalOcean. Nid yw hyn, wrth gwrs, yn angenrheidiol; dewiswch unrhyw westeiwr. Pan fyddwch chi'n cyrraedd gweinydd sy'n gweithio ar Ubuntu, dewch yn Γ΄l. I'r rhai sy'n dal i benderfynu ei wneud ar DigitalOcean, bydd mwy o awgrymiadau ar sefydlu parth. Ac Dolen atgyfeirio $100.

Rhoddir pob cam penodol i DigitalOcean mewn troednodiadau fel y rhain.

Dechreuwn.

TL; DR (gorchmynion sylfaenol yn unig)

Creu defnyddiwr

  • ssh root@[IP-адрСс вашСго Π΄Ρ€ΠΎΠΏΠ»Π΅Ρ‚Π°]
  • adduser laravel
  • usermod -aG sudo laravel
  • su laravel

Ychwanegu SSH ato

  • mkdir ~/.ssh
  • chmod 700 ~/.ssh
  • vim ~/.ssh/authorized_keys
  • Mewnosodwch yr allwedd gyhoeddus
  • chmod 600 ~/.ssh/authorized_keys

Mur gwarchod

  • sudo ufw allow OpenSSH
  • sudo ufw enable
  • sudo ufw status

Nginx

  • sudo apt update
  • sudo apt install -y nginx
  • sudo ufw allow 'Nginx HTTP'
  • sudo ufw status

MySQL

  • sudo apt install -y mysql-server
  • sudo mysql_secure_installation, NYNNY
  • sudo mysql
  • ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<Π’Π°Ρˆ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ для MySQL>';
  • SELECT user,authentication_string,plugin,host FROM mysql.user;
  • FLUSH PRIVILEGES;
  • exit

PHP

  • sudo apt update

  • sudo apt install -y curl wget gnupg2 ca-certificates lsb-release apt-transport-https

  • sudo apt-add-repository ppa:ondrej/php

  • sudo apt update

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

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

  • sudo vim /etc/nginx/sites-available/<Π’Π°Ρˆ Π΄ΠΎΠΌΠ΅Π½>

Gosodiad sylfaenol:

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

Dim ond gosodiad HTTP ar gyfer 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;
    }
}

Gosodiad HTTPS ar gyfer 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

Creu droplet ar DigitalOcean a chofrestru allwedd SSH newydd

Rwy'n wirioneddol gredu y byddwch chi'n darganfod sut i gofrestru gyda DigitalOcean eich hun. Nid yw'n hawdd, gyda llawer o wiriadau a phethau eraill. Os ydych chi'n cael gwall rhwydwaith yn gyson wrth wirio gan ddefnyddio dogfennau, ceisiwch wneud popeth trwy VPN, dylai fod o gymorth.

Yn y ddewislen ar y brig, cliciwch Creu->Defnynnau. Dewiswch Ubuntu.

Cyn gynted ag y byddwch yn cofrestru, byddwch yn derbyn $100 i'ch cyfrif. Ond peidiwch Γ’ chael eich twyllo. Dim ond 60 diwrnod sydd gennych i'w dreulio. Ac ychydig iawn yw hyn. Efallai y byddwch chi, fel fi, am ddefnyddio cynllun drutach, fel y gallwch chi newid i un rhatach yn ddiweddarach, pan fydd yr arian go iawn yn dechrau llifo. Fe ddywedaf wrthych ar unwaith na fydd yn gweithio. Gallwch ei gynyddu, ond ni allwch ei leihau. Felly mae'n mynd. Rwy'n dewis safon->$5.

Rwy'n dewis y rhanbarth sydd agosaf atom ni Frankfurt. Rhwydwaith VPC->rhagosod-fra1

Byddwn yn perfformio dilysu ar unwaith trwy SSH. Cliciwch Allwedd SSH Newydd. Os nad oes gennych SSH, mae cyfarwyddiadau syml iawn ar y dde. Agor terfynell bash a gludo ssh-keygen. Yna rydyn ni'n mynd i'r ffeil gyda'r allwedd gyhoeddus /Users/<Π’Π°ΡˆΠ΅ имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ>/.ssh/id_rsa.pub (neu'n syml cat ~/.ssh/id_rsa.pub), copΓ―wch y cynnwys a'i gludo i'r ffenestr ar y chwith. Unrhyw enw.

Rydyn ni'n creu enw gwesteiwr ar gyfer y defnyn.

Gwthio Creu Droplet

Creu defnyddiwr newydd

  • ssh root@[IP-адрСс вашСго Π΄Ρ€ΠΎΠΏΠ»Π΅Ρ‚Π°]
  • Ydych chi'n siΕ΅r eich bod am barhau i gysylltu (ie/na/[olion bysedd])? yes
  • Rhowch eich cyfrinair SSH
  • Creu defnyddiwr laravel: adduser laravel
  • Rhowch eich cyfrinair a gwybodaeth arall (dim ond Enw Llawn rydw i'n ei nodi)
  • Ychwanegwch y defnyddiwr i'r grΕ΅p sudo: usermod -aG sudo laravel

SSH ar gyfer defnyddiwr newydd

  • Newid i'r defnyddiwr newydd: su laravel

Rydym yn cyflawni pob cam gweithredu ymhellach, tan ddiwedd yr erthygl, ar ran y defnyddiwr laravel. Felly, os bydd rhywun yn torri ar eich traws yn sydyn, ail-fewngofnodi a mynd i mewn su laravel

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

Fe wnaethom agor y ffeil yn Vim. Os nad ydych yn gyfarwydd ag ef o gwbl, gallwch weithio yn Nano, eich hawl.

Y gorchmynion Vim mwyaf sylfaenol

Er mwyn defnyddio golygydd Vim trwy gydol yr erthygl, does ond angen i chi wybod y canlynol.

  • Mae gan Vim ddulliau gwahanol: Modd arferol, lle rydych chi'n nodi gorchmynion ac yn dewis moddau ac eraill.
  • I adael unrhyw fodd a dychwelyd i'r modd arferol, pwyswch Esc
  • Symud o gwmpas: gallwch chi ddefnyddio saethau yn unig
  • Gadael heb arbed <Normal mode>: :q!
  • Gadael ac arbed <Normal mode>: :wq
  • Newid i fodd mewnbwn testun <Normal mode>: i (o'r Saeson. mewnosod)
  • Rydym yn mewnosod ein allwedd gyhoeddus (a wnaethom uchod)
  • Rydym yn amddiffyn rhag newidiadau: chmod 600 ~/.ssh/authorized_keys

Gosod wal dΓ’n

  • Edrychwn ar yr holl osodiadau sydd ar gael: sudo ufw app list
  • CaniatΓ‘u OpenSSH (fel arall bydd yn ein cloi): sudo ufw allow OpenSSH
  • Gadewch i ni lansio'r wal dΓ’n: sudo ufw enable, y
  • Rydym yn gwirio: sudo ufw status

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

Mae popeth yn iawn.

Gosod Nginx

Yn ystod y gosodiad gofynnir i chi weithiau "Ydych chi'n siΕ΅r?" Ateb y (wel, dim ond os ydych chi'n siΕ΅r).

  • sudo apt update
  • sudo apt install nginx

Ychwanegu Nginx i'r gosodiadau wal dΓ’n

  • 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)

Ewch i'ch IP. Os aiff popeth yn iawn, dylech weld y canlynol.

Defnyddio cais i Laravel 7 ar Ubuntu & Nginx

Gosod MySQL

  • sudo apt install mysql-server
  • Lansio sgript amddiffyn awtomatig sudo mysql_secure_installation

Atebwch y cwestiynau a ofynnir. Os nad ydych chi'n gwybod beth i'w ateb, dyma rai opsiynau a awgrymir:

  • Dilysu ategyn cyfrinair - N

  • Dileu defnyddwyr dienw? - Y

  • Gwrthod mewngofnodi gwraidd o bell? - N

  • Dileu cronfa ddata prawf a mynediad iddi? - N

  • Ail-lwytho tablau braint nawr? - Y

  • Gadewch i ni fynd i MySQL: sudo mysql

  • Edrychwn ar y dulliau mynediad: SELECT user,authentication_string,plugin,host FROM mysql.user;

  • Gosodwch gyfrinair ar gyfer gwraidd: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<Π’Π°Ρˆ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ для MySQL>';

  • Edrychwn eto ar y dulliau mynediad: SELECT user,authentication_string,plugin,host FROM mysql.user;

  • Cymhwyswch y newidiadau a gadael MySQL: FLUSH PRIVILEGES; ΠΈ exit

  • Nawr, i fewngofnodi i MySQL mae angen i chi ei ddefnyddio mysql -u root -p a rhowch y cyfrinair

Gosod PHP

Gadewch i ni ddefnyddio ystorfa trydydd parti o Ondrej SurΓ½

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

Nawr gadewch i ni ddewis. Ar gyfer Laravel 7, gallwch ddewis PHP 7.3 neu 7.4. Yr unig wahaniaeth fydd yn y rhifau 3 a 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

Mae Rheolwr Proses PHP FastCGI (fpm) yn gweithio gyda cheisiadau PHP. mysql, wrth gwrs, am weithio gyda MySQL.

O hyn ymlaen byddaf yn gwneud popeth ar 7.4.

Sefydlu Nginx

  • sudo vim /etc/nginx/sites-available/<Π’Π°Ρˆ Π΄ΠΎΠΌΠ΅Π½>

Yn lle "<Eich parth>" rhowch y parth (er enghraifft, mysite.ru) yr ydych am ei ddefnyddio yn y dyfodol. Os nad oes gennych un eto, ysgrifennwch unrhyw un, yna ailadroddwch y camau yn y bennod hon ar gyfer eich parth pan fyddwch chi'n ei ddewis.

Rhowch y canlynol:

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

Os dewisoch chi fersiwn 7.3 yn lle hynny php7.4-fpm.sock mynd i mewn php7.4-fpm.sock.

Gwrandewch ar borth 80 ymlaen server_namepan fyddwn yn cyrraedd y cais gwraidd /var/www/html cymryd y ffeil mynegai. Os ar Γ΄l server_name Mae yna rywbeth, rydyn ni'n chwilio am ffeil o'r fath. Os na fyddwn yn dod o hyd iddo, rydym yn taflu allan 404. Os bydd yn gorffen gyda .php, rhedeg trwy fpm... Os oes .ht, gwahardd (403).

  • Gwneud dolen o sites-available Π² sites-enabled: sudo ln -s /etc/nginx/sites-available/<Π’Π°Ρˆ Π΄ΠΎΠΌΠ΅Π½> /etc/nginx/sites-enabled/
  • Wrthi'n dileu'r ddolen i default: sudo unlink /etc/nginx/sites-enabled/default
  • Gwirio am wallau: sudo nginx -t
  • Ailgychwyn: sudo systemctl reload nginx

Gwirio'r gwaith:

  • sudo vim /var/www/html/info.php
  • Rydym yn ysgrifennu: <?php phpinfo();
  • Gadewch i ni fynd i <Π’Π°Ρˆ IP>/info.php

Dylech weld rhywbeth fel hyn:

Defnyddio cais i Laravel 7 ar Ubuntu & Nginx

Nawr gellir dileu'r ffeil hon: sudo rm /var/www/html/info.php

Gosod 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

  • Gadewch i ni fynd i MySQL: mysql -u root -p

  • Creu cronfa ddata gyda'r enw laravel: CREATE DATABASE laravel DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

  • Rydym yn darparu mynediad gwraidd i laravel: GRANT ALL ON laravel.* TO 'root'@'localhost' IDENTIFIED BY '<Π’Π°Ρˆ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΎΡ‚ MySQL>';

  • FLUSH PRIVILEGES;

  • exit

  • cd /var/www/html

  • Creu ffolder ar gyfer y prosiect: sudo mkdir -p <Имя ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°>

  • Rydym yn darparu'r defnyddiwr laravel hawliau i'r prosiect: sudo chown laravel:laravel <Имя ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°>

Nesaf mae angen i chi drosglwyddo'r prosiect. Er enghraifft, clonio o Github.

  • cd ./<Имя ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°>
  • git clone <ссылка Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚> .

Mae'n werth ystyried, os na wnaethoch chi gadw ffeiliau statig (er enghraifft, o /public) ar Github, yna yn naturiol ni fydd gennych nhw. Er enghraifft, creais edefyn ar wahΓ’n i ddatrys hyn deploy, yr wyf eisoes wedi clonio ohono: git clone -b <имя Π²Π΅Ρ‚ΠΊΠΈ> --single-branch <ссылка Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚> ..

  • Gosod dibyniaethau: composer install
  • Creu .env: vim .env

Mae'r fersiwn sylfaenol ohono yn edrych fel hyn:

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>

Os byddwch yn copΓ―o eich .env, disodli APP_ENV gyda chynhyrchiad, APP_DEBUG gyda ffug a rhowch y gosodiadau cywir ar gyfer MySQL.

  • Mudo'r gronfa ddata: php artisan migrate
  • Cynhyrchu'r cod: php artisan key:generate

Newid caniatadau:

  • sudo chown -R $USER:www-data storage
  • sudo chown -R $USER:www-data bootstrap/cache
  • chmod -R 775 storage
  • chmod -R 775 bootstrap/cache

Y peth olaf ar Γ΄l yw ad-drefnu Nginx ar gyfer 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;
    }
}

Fel y tro diwethaf, os dewiswch fersiwn 7.3 yn lle hynny php7.4-fpm.sock mynd i mewn php7.4-fpm.sock.

Sefydlu parth ar DigitalOcean

Mae popeth mewn gwirionedd yn syml iawn. Rydych chi'n prynu parth (unrhyw le), yn newid i DigitalOcean yn Creu->Parthau/DNS... Yn y maes Ychwanegwch barth rydych chi'n mynd i mewn i'r parth hwn ac yn clicio ychwanegu. Yna ewch i'r gosodiadau parth ac i'r maes GWESTENW mynd i mewn @. Dewiswch brosiect a chliciwch Creu cofnod.
Nawr ewch i'r wefan lle prynoch chi'r parth, dewch o hyd i β€œDNS Servers” yno (neu rywbeth tebyg) a nodwch weinyddion DigitalOcean (sef ns1.digitalocean.com, ns2.digitalocean.com, ns3.digitalocean.com). Nawr mae angen i chi aros ychydig (neu lawer) nes bod y gosodiadau hyn yn cael eu derbyn. Barod!
Yr unig broblem yw y bydd eich gwefan yn agor fel HTTP yn unig. I gael HTTPS, symudwch ymlaen i'r rhan nesaf.

Sefydlu HTTPS

Gosodwch certbot a rhowch yr enw parth (fformat mysite.ru) ac enw parth gyda 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.<Π’Π°Ρˆ Π΄ΠΎΠΌΠ΅Π½>

Nawr mae angen i chi ad-drefnu Nginx (peidiwch ag anghofio amnewid eich gwerthoedd):

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

Rwy'n credu eich bod eisoes yn deall beth sydd angen ei newid ar gyfer PHP 7.3.

Yma, mewn gwirionedd, mae popeth yn syml. Yn syml, rydym yn ailgyfeirio pob cais o HTTP (porthladd 80) i HTTPS (porthladd 443). Ac yno rydyn ni'n gwneud popeth yr un peth ag o'r blaen, ond gydag amgryptio.

Y cyfan sydd ar Γ΄l yw gosod y caniatΓ’d yn y wal dΓ’n:

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

Nawr dylai popeth weithio fel y dylai.

[Uwch] Gosod Node.js

Os oes angen i chi redeg gorchmynion npm yn uniongyrchol ar y gweinydd yn sydyn, mae angen i chi osod Node.js.

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

Dyna ni, stopiais ar hyn o bryd. Mewn egwyddor, rwy'n fodlon Γ’'r canlyniad. Efallai y byddaf yn newid o DigitalOcean rhywle agosach at Rwsia ac yn rhatach. Ond gan fy mod eisoes wedi mynd trwy'r holl rowndiau dilysu ar y wefan a gwneud popeth yno, fe'u dangosais trwy esiampl. Yn ogystal, mae eu $100 cychwynnol yn sbringfwrdd ardderchog ar gyfer hyfforddiant.

PS Diolch arbennig i'r awdur yr hanfod hwn, a fu'n sail i'r holl gamau gweithredu uchod. Mewn rhai achosion nid yw'n gweithio i Laravel 7, fe wnes i ei drwsio.

PPS Os ydych chi'n digwydd bod yn brif beiriannydd sy'n meddwl mewn gorchmynion bash, peidiwch Γ’ barnu'n llym. Efallai y gwelwch fod yr erthygl hon o safon isel, ond byddwn wedi bod yn falch o ddod o hyd i un pan oeddwn angen un. Os oes awgrymiadau ar gyfer gwella, rydw i i gyd ar ei gyfer.

Ffynhonnell: hab.com

Ychwanegu sylw