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
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 symlcat ~/.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.
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
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_name
pan 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:
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 (sefns1.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
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