Ek het besluit om my portefeulje te maak deur Laravel 7 te gebruik. Sodat die hoofblad 'n bestemmingsbladsy sou wees, en al die inligting daarop verander kan word deur die adminpaneel te gebruik. Nie die punt nie. Dit het by ontplooiing gekom. Ek het 'n paar goeie tutoriale gevind oor hoe om dit te doen op 'n volwaardige bediener met al die probleme. Ek is nie baie sterk in ontplooiing nie; ek is oor die algemeen meer voor as vol stapel. En as ek nog in PHP kan skryf en toets, dan voordat ek die bediener bestuur, ens. Ek het nog nie grootgeword nie. Maar ek moes dit uitvind.
Nou gaan ons deur al die stappe, begin met bekendstelling via SSH en eindig met die werkende webwerf. Ons sal probeer om al die slaggate te vermy.
Jy kan dalk soortgelyke instruksies aanlyn vind. Ek het dit darem uiteindelik gevind. Dit is waar, nie op een plek nie, nie sonder die hulp van StackOverflow nie, en skaars in Russies. Ek het gely. Daarom het ek besluit om jou lewe te vereenvoudig.
Ons sal alles met 'n druppel op DigitalOcean doen. Dit is natuurlik nie nodig nie; kies enige gasheer. Wanneer jy 'n werkende bediener op Ubuntu bereik, kom terug. Vir diegene wat nog besluit om dit op DigitalOcean te doen, sal daar meer wenke wees oor die opstel van 'n domein. En
Alle DigitalOcean-spesifieke stappe sal in voetnote soos hierdie gegee word.
Kom ons begin.
TL;DR (slegs basiese opdragte)
Skep 'n gebruiker
ssh root@[IP-Π°Π΄ΡΠ΅Ρ Π²Π°ΡΠ΅Π³ΠΎ Π΄ΡΠΎΠΏΠ»Π΅ΡΠ°]
adduser laravel
usermod -aG sudo laravel
su laravel
Voeg SSH daarby
mkdir ~/.ssh
chmod 700 ~/.ssh
vim ~/.ssh/authorized_keys
- Voeg die publieke sleutel in
chmod 600 ~/.ssh/authorized_keys
Firewall
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/<ΠΠ°Ρ Π΄ΠΎΠΌΠ΅Π½>
Basiese opstelling:
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;
}
}
Slegs HTTP-opstelling vir 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-instelling vir 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
Skep 'n druppel op DigitalOcean en registreer 'n nuwe SSH-sleutel
Ek glo werklik dat jy self sal uitvind hoe om by DigitalOcean te registreer. Dit is nie maklik nie, met baie verifikasies en ander dinge. As u voortdurend 'n netwerkfout kry wanneer u dokumente verifieer, probeer om alles deur 'n VPN te doen, dit behoort te help.
Klik in die spyskaart bo-aan Skep->Druppeltjies. Kies Ubuntu.
Sodra jy registreer, sal jy $100 op jou rekening ontvang. Maar moenie geflous word nie. Jy het net 60 dae om dit te spandeer. En dit is baie min. Jy sal dalk, soos ek, βn duurder plan wil gebruik, sodat jy later, wanneer die regte geld begin vloei, na βn goedkoper een kan oorskakel. Ek sal jou dadelik sΓͺ dat dit nie sal werk nie. Jy kan dit verhoog, maar jy kan dit nie verminder nie. So gaan dit. ek kies Standard->$5.
Ek kies die streek naaste aan ons Frankfurt. VPC-netwerk->verstek-fra1
Ons sal onmiddellik stawing via SSH uitvoer. Klik Nuwe SSH-sleutel. As jy nie SSH het nie, is daar baie eenvoudige instruksies aan die regterkant. Maak 'n bash-terminaal oop en plak
ssh-keygen
. Dan gaan ons na die lΓͺer met die publieke sleutel/Users/<ΠΠ°ΡΠ΅ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ>/.ssh/id_rsa.pub
(of eenvoudigcat ~/.ssh/id_rsa.pub
), kopieer die inhoud en plak dit in die venster aan die linkerkant. Enige naam.Ons kom met 'n gasheernaam vir die druppel.
druk Skep druppel
Skep 'n nuwe gebruiker
ssh root@[IP-Π°Π΄ΡΠ΅Ρ Π²Π°ΡΠ΅Π³ΠΎ Π΄ΡΠΎΠΏΠ»Π΅ΡΠ°]
- Is jy seker jy wil voortgaan om te koppel (ja/nee/[vingerafdruk])?
yes
- Voer jou SSH-wagwoord in
- Skep 'n gebruiker larwe:
adduser laravel
- Voer jou wagwoord en ander inligting in (ek voer net volle naam in)
- Voeg die gebruiker by die sudo-groep:
usermod -aG sudo laravel
SSH vir nuwe gebruiker
- Skakel oor na die nuwe gebruiker:
su laravel
Ons voer alle aksies verder uit, tot die einde van die artikel, namens die laravel-gebruiker. Daarom, as jy skielik onderbreek word, teken weer aan en voer in su laravel
mkdir ~/.ssh
chmod 700 ~/.ssh
vim ~/.ssh/authorized_keys
Ons het die lΓͺer in Vim oopgemaak. As jy glad nie daarmee vertroud is nie, kan jy in Nano werk, jou reg.
Die mees basiese Vim-opdragte
Om die Vim-redigeerder deur die hele artikel te gebruik, moet u net die volgende weet.
- Vim het verskillende modusse: Normale modus, waarin jy opdragte invoer en modusse en ander kies.
- Om enige modus te verlaat en terug te keer na normale modus, druk net
Esc
- Beweeg rond: jy kan net pyle gebruik
- Gaan uit sonder om te stoor
<Normal mode>
::q!
- Gaan uit en stoor
<Normal mode>
::wq
- Skakel oor na teksinvoermodus
<Normal mode>
:i
(uit die Engels. voeg)
- Ons sit ons publieke sleutel in (wat ons hierbo gedoen het)
- Ons beskerm teen veranderinge:
chmod 600 ~/.ssh/authorized_keys
Installering van 'n firewall
- Kom ons kyk na al die beskikbare instellings:
sudo ufw app list
- Laat OpenSSH toe (anders sluit dit ons):
sudo ufw allow OpenSSH
- Kom ons begin die firewall:
sudo ufw enable
,y
- Ons kyk na:
sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Alles is reg.
Installeer Nginx
Tydens installasie sal jy soms gevra word "Is jy seker?" Antwoord y
(wel, net as jy seker is).
sudo apt update
sudo apt install nginx
Voeg Nginx by die firewall-instellings
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)
Gaan na jou IP. As alles goed gaan, behoort jy die volgende te sien.
MySQL installeer
sudo apt install mysql-server
- Begin 'n outomatiese beskermingskrip
sudo mysql_secure_installation
Beantwoord die vrae wat gevra word. As jy nie weet wat om te antwoord nie, hier is 'n paar voorgestelde opsies:
-
Bekragtig wagwoord-inprop -
N
-
Verwyder anonieme gebruikers? β
Y
-
Verhinder wortelaanmelding op afstand? β
N
-
Verwyder toetsdatabasis en toegang daartoe? β
N
-
Herlaai nou voorregtetabelle? β
Y
-
Kom ons gaan na MySQL:
sudo mysql
-
Kom ons kyk na die toegangsmetodes:
SELECT user,authentication_string,plugin,host FROM mysql.user;
-
Stel 'n wagwoord vir root:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<ΠΠ°Ρ ΠΏΠ°ΡΠΎΠ»Ρ Π΄Π»Ρ MySQL>';
-
Kom ons kyk weer na die toegangsmetodes:
SELECT user,authentication_string,plugin,host FROM mysql.user;
-
Pas die veranderinge toe en verlaat MySQL:
FLUSH PRIVILEGES;
ΠΈexit
-
Nou moet jy gebruik om by MySQL aan te meld
mysql -u root -p
en voer die wagwoord in
Installeer PHP
Kom ons gebruik 'n derdeparty-bewaarplek vanaf
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
Kom ons kies nou. Vir Laravel 7 kan jy PHP 7.3 of 7.4 kies. Die enigste verskil sal in die nommers 3 en 4 wees.
- 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 Prosesbestuurder (fpm) werk met PHP-versoeke. mysql, natuurlik, om met MySQL te werk.
Van nou af sal ek alles op 7.4 doen.
Stel Nginx op
sudo vim /etc/nginx/sites-available/<ΠΠ°Ρ Π΄ΠΎΠΌΠ΅Π½>
In plaas van "<Jou domein>" voer die domein in (byvoorbeeld, mysite.ru
) wat jy in die toekoms wil gebruik. As jy nog nie een het nie, skryf enige, en herhaal dan net die stappe in hierdie hoofstuk vir jou domein wanneer jy dit kies.
Voer die volgende in:
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;
}
}
As jy eerder weergawe 7.3 gekies het php7.4-fpm.sock
skryf in php7.4-fpm.sock
.
Luister na poort 80 aan server_name
wanneer ons by die wortelversoek uitkom /var/www/html
neem die indekslΓͺer. Indien na server_name
Daar is iets, ons soek so 'n lΓͺer. As ons dit nie kry nie, gooi ons 404 uit. As dit eindig met .php
, hardloop deur fpm
... As daar is .ht
, verbied (403).
- Maak 'n skakel van
sites-available
Π²sites-enabled
:sudo ln -s /etc/nginx/sites-available/<ΠΠ°Ρ Π΄ΠΎΠΌΠ΅Π½> /etc/nginx/sites-enabled/
- Verwyder tans die skakel na
default
:sudo unlink /etc/nginx/sites-enabled/default
- Kontroleer vir foute:
sudo nginx -t
- Herlaai:
sudo systemctl reload nginx
Kontroleer die werk:
sudo vim /var/www/html/info.php
- Ons skryf:
<?php phpinfo();
- Kom ons gaan na
<ΠΠ°Ρ IP>/info.php
Jy behoort so iets te sien:
Nou kan hierdie lΓͺer uitgevee word: sudo rm /var/www/html/info.php
Installeer 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
-
Kom ons gaan na MySQL:
mysql -u root -p
-
Skep 'n databasis met die naam larwe:
CREATE DATABASE laravel DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
-
Ons bied wortel toegang tot larwe:
GRANT ALL ON laravel.* TO 'root'@'localhost' IDENTIFIED BY '<ΠΠ°Ρ ΠΏΠ°ΡΠΎΠ»Ρ ΠΎΡ MySQL>';
-
FLUSH PRIVILEGES;
-
exit
-
cd /var/www/html
-
Skep 'n gids vir die projek:
sudo mkdir -p <ΠΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°>
-
Ons verskaf die gebruiker larwe regte op die projek:
sudo chown laravel:laravel <ΠΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°>
Volgende moet jy die projek oordra. Byvoorbeeld, kloning vanaf Github.
cd ./<ΠΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°>
git clone <ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡ> .
Dit is die moeite werd om te oorweeg dat as jy nie statiese lΓͺers gestoor het nie (byvoorbeeld van /public
) op Github, dan sal jy dit natuurlik nie hΓͺ nie. Ek het byvoorbeeld 'n aparte draad geskep om dit op te los deploy
, waaruit ek reeds gekloon het: git clone -b <ΠΈΠΌΡ Π²Π΅ΡΠΊΠΈ> --single-branch <ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡ> .
.
- Installeer afhanklikhede:
composer install
- Skep .env:
vim .env
Die basiese weergawe daarvan lyk soos volg:
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>
As jy jou .env kopieer, vervang APP_ENV met produksie, APP_DEBUG met vals en voer die korrekte instellings vir MySQL in.
- Migreer die databasis:
php artisan migrate
- Genereer die kode:
php artisan key:generate
Verander toestemmings:
sudo chown -R $USER:www-data storage
sudo chown -R $USER:www-data bootstrap/cache
chmod -R 775 storage
chmod -R 775 bootstrap/cache
Die laaste ding wat oorbly is om Nginx vir Laravel te herkonfigureer:
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;
}
}
Soos verlede keer, as jy eerder weergawe 7.3 gekies het php7.4-fpm.sock
skryf in php7.4-fpm.sock
.
Stel 'n domein op DigitalOcean op
Alles is eintlik baie eenvoudig. Jy koop 'n domein (enige plek), skakel oor na DigitalOcean by Skep->Domeine/DNS... In die veld Voeg 'n domein by jy gaan hierdie domein in en klik byvoeg. Gaan dan na die domeininstellings en na die veld GASTNAAM ingaan @. Kies 'n projek en klik Skep rekord.
Gaan nou na die webwerf waar jy die domein gekoop het, vind βDNS Serversβ daar (of iets soortgelyks) en voer die DigitalOcean-bedieners in (naamlikns1.digitalocean.com
,ns2.digitalocean.com
,ns3.digitalocean.com
). Nou moet jy 'n bietjie (of baie) wag totdat hierdie instellings aanvaar word. Klaar!
Die enigste probleem is dat u webwerf slegs as HTTP sal oopmaak. Gaan na die volgende deel om HTTPS te hΓͺ.
Die opstel van HTTPS
Installeer certbot en gee dit die domeinnaam (formaat mysite.ru
) en domeinnaam met 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.<ΠΠ°Ρ Π΄ΠΎΠΌΠ΅Π½>
Nou moet jy Nginx herkonfigureer (moenie vergeet om jou waardes te vervang nie):
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;
}
}
Ek dink jy verstaan ββreeds wat verander moet word vir PHP 7.3.
Hier is alles eintlik eenvoudig. Ons herlei eenvoudig alle versoeke van HTTP (poort 80) na HTTPS (poort 443). En daar doen ons alles dieselfde as voorheen, maar met enkripsie.
Al wat oorbly is om die toestemmings in die firewall in te stel:
sudo nginx -t
sudo ufw app list
sudo ufw allow 'Nginx HTTPS'
sudo ufw status
sudo systemctl reload nginx
Nou moet alles werk soos dit moet.
[Gevorderd] Installeer Node.js
As jy skielik npm-opdragte direk op die bediener moet uitvoer, moet jy Node.js installeer.
sudo apt update
sudo apt install -y nodejs npm
nodejs -v
Dis dit, ek het op hierdie stadium gestop. In beginsel is ek tevrede met die resultaat. Miskien sal ek van DigitalOcean oorskakel iewers nader aan Rusland en goedkoper. Maar aangesien ek reeds deur al die verifikasie rondtes op die webwerf gegaan het en alles daar gedoen het, het ek hulle deur voorbeeld gewys. Daarbenewens is hul begin $100 'n uitstekende springplank vir opleiding.
NS Spesiale dank aan die skrywer
PPS As jy toevallig 'n top-ingenieur is wat in bash-opdragte dink, moet asseblief nie hard oordeel nie. U mag vind dat hierdie artikel van 'n lae vlak is, maar ek sou bly gewees het om een ββte vind toe ek dit nodig gehad het. As daar voorstelle vir verbetering is, is ek almal daarvoor.
Bron: will.com