Nanapa-kevitra ny hanao ny portfolio-ko aho amin'ny alΓ lan'ny Laravel 7. Mba hahatonga ny pejy fototra ho pejy fipetrahana, ary azo ovaina amin'ny alΓ lan'ny tontonana admin ny fampahalalana rehetra momba azy. Tsy ny hevitra. Tonga tamin'ny fametrahana izany. Nahita fampianarana tsara roa momba ny fomba hanaovana izany amin'ny mpizara feno miaraka amin'ny olana rehetra aho. Tsy dia matanjaka loatra aho amin'ny fametrahana; Amin'ny ankapobeny aho dia eo aloha kokoa noho ny stack feno. Ary, raha mbola afaka manoratra sy mitsapa amin'ny PHP aho, dia alohan'ny fitantanana ny server, sns. Mbola tsy lehibe aho. Tsy maintsy nahafantatra izany anefa aho.
Ankehitriny dia handeha amin'ny dingana rehetra isika, manomboka amin'ny fandefasana amin'ny SSH ary mifarana amin'ny tranokala miasa. Hiezaka isika hisoroka ny fandrika rehetra.
Mety ho afaka mahita torolalana mitovy amin'izany ianao amin'ny Internet. Rehefa dinihina tokoa, dia nahita ihany aho. Marina fa tsy amin'ny toerana iray, tsy misy ny fanampian'ny StackOverflow, ary zara raha amin'ny teny Rosiana. Nijaly aho. Izany no nahatonga ahy nanapa-kevitra ny hanatsotra ny fiainanao.
Hanao ny zava-drehetra miaraka amin'ny vongan-drano izahay amin'ny DigitalOcean. Mazava ho azy fa tsy ilaina izany; misafidiana fampiantranoana. Rehefa tonga any amin'ny mpizara miasa ao amin'ny Ubuntu ianao dia miverena. Ho an'ireo izay mbola manapa-kevitra ny hanao izany amin'ny DigitalOcean, hisy toro-hevitra bebe kokoa amin'ny fametrahana sehatra iray. SY
Ny dingana rehetra amin'ny DigitalOcean dia homena amin'ny fanamarihana ambany pejy tahaka ireo.
Andeha isika hanomboka.
TL; DR (baiko fototra ihany)
Mamorona mpampiasa
ssh root@[IP-Π°Π΄ΡΠ΅Ρ Π²Π°ΡΠ΅Π³ΠΎ Π΄ΡΠΎΠΏΠ»Π΅ΡΠ°]
adduser laravel
usermod -aG sudo laravel
su laravel
Ampio SSH amin'izany
mkdir ~/.ssh
chmod 700 ~/.ssh
vim ~/.ssh/authorized_keys
- Ampidiro ny fanalahidin'ny daholobe
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/<ΠΠ°Ρ Π΄ΠΎΠΌΠ΅Π½>
Fanamboarana fototra:
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;
}
}
Fametrahana HTTP ho an'i Laravel ihany:
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;
}
}
Toerana HTTPS ho an'ny 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
Mamorona vongan-drano amin'ny DigitalOcean ary misoratra anarana fanalahidy SSH vaovao
Tena mino aho fa ho fantatrao ny fomba hisoratra anarana amin'ny DigitalOcean ny tenanao. Tsy mora izany, miaraka amin'ny fanamarinana maro sy zavatra hafa. Raha mahazo hadisoana amin'ny tambajotra foana ianao rehefa manamarina ny fampiasana antontan-taratasy, andramo ny zavatra rehetra amin'ny alΓ lan'ny VPN, tokony hanampy izany.
Ao amin'ny sakafo eo an-tampony, tsindrio mamorona->Piti-drora. Mifidiana Ubuntu.
Raha vao misoratra anarana ianao dia hahazo $100 amin'ny kaontinao. Fa aza voafitaka. Manana 60 andro fotsiny ianao handany izany. Ary kely dia kely izany. Mety te-hampiasa drafitra lafo vidy kokoa toa ahy ianao, mba ho any aoriana, rehefa manomboka mikoriana ny tena vola, dia afaka mifamadika amin'ny vidiny mora kokoa ianao. Lazaiko aminao avy hatrany fa tsy mety izany. Azonao ampitomboina, fa tsy azonao ahena. Dia mandeha izany. misafidy aho Standard->$5.
Mifidy ny faritra akaiky antsika indrindra aho Frankfurt. VPC Network->default-fra1
Hanao fanamarinana avy hatrany amin'ny SSH izahay. tsindrio Ny SSH Key. Raha tsy manana SSH ianao dia misy toromarika tsotra eo ankavanana. Sokafy ny terminal bash ary apetaho
ssh-keygen
. Avy eo dia mandeha any amin'ny rakitra miaraka amin'ny fanalahidin'ny daholobe isika/Users/<ΠΠ°ΡΠ΅ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ>/.ssh/id_rsa.pub
(na amin'ny fomba tsotracat ~/.ssh/id_rsa.pub
), kopia ny atiny ary apetaho eo amin'ny varavarankely eo ankavia. Na inona na inona anarana.Tonga miaraka amin'ny anarana fampiantranoana ho an'ny droplet izahay.
mpanao gazety Mamorona Droplet
Mamorona mpampiasa vaovao
ssh root@[IP-Π°Π΄ΡΠ΅Ρ Π²Π°ΡΠ΅Π³ΠΎ Π΄ΡΠΎΠΏΠ»Π΅ΡΠ°]
- Tena te-hanohy fifandraisana ve ianao (eny/tsia/[fingerprint])?
yes
- Ampidiro ny tenimiafinao SSH
- Mamorona mpampiasa laravel:
adduser laravel
- Ampidiro ny tenimiafinao sy ny fampahalalana hafa (Anarana feno ihany no ampiako)
- Ampio ny mpampiasa amin'ny vondrona sudo:
usermod -aG sudo laravel
SSH ho an'ny mpampiasa vaovao
- Mivadika amin'ny mpampiasa vaovao:
su laravel
Manao ny hetsika rehetra hatrany izahay, hatramin'ny faran'ny lahatsoratra, amin'ny anaran'ny mpampiasa laravel. Noho izany, raha tapaka tampoka ianao dia midira indray ary midira su laravel
mkdir ~/.ssh
chmod 700 ~/.ssh
vim ~/.ssh/authorized_keys
Nanokatra ny rakitra tao amin'ny Vim izahay. Raha tsy zatra azy mihitsy ianao dia afaka miasa amin'ny Nano, havanana.
Ny baiko Vim fototra indrindra
Mba hampiasana ny tonian-dahatsoratra Vim manerana ny lahatsoratra dia mila mahafantatra izao manaraka izao ianao.
- Vim dia manana fomba isan-karazany: fomba mahazatra, izay idiranao ny baiko sy ny fisafidianana ny maody sy ny hafa.
- Raha te hiala amin'ny fomba rehetra ary hiverina amin'ny fomba mahazatra, tsindrio fotsiny
Esc
- Mivezivezy: azonao atao ny mampiasa zana-tsipìka
- Mivoaha tsy mitahiry
<Normal mode>
::q!
- Mivoaha ary tehirizo
<Normal mode>
::wq
- Midira amin'ny fomba fampidirana lahatsoratra
<Normal mode>
:i
(avy amin'ny anglisy. Mampidira)
- Ampidirintsika ny fanalahidin'ny daholobe (izay nataontsika etsy ambony)
- Miaro amin'ny fanovana izahay:
chmod 600 ~/.ssh/authorized_keys
Fametrahana firewall
- Andeha hojerentsika ny fika rehetra misy:
sudo ufw app list
- Avelao ny OpenSSH (raha tsy izany dia hanidy antsika izany):
sudo ufw allow OpenSSH
- Andao hanomboka ny firewall:
sudo ufw enable
,y
- Hamarininay:
sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Tsara ny zava-drehetra.
Fametrahana Nginx
Mandritra ny fametrahana dia hanontaniana ianao indraindray hoe "Azonao antoka ve?" Valio y
(eny, raha azonao antoka ihany).
sudo apt update
sudo apt install nginx
Manampy ny Nginx amin'ny fikandrana 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)
Mandehana any amin'ny IP-nao. Raha mandeha tsara ny zava-drehetra dia tokony ho hitanao ireto manaraka ireto.
Fametrahana MySQL
sudo apt install mysql-server
- Famoahana script fiarovana mandeha ho azy
sudo mysql_secure_installation
Valio ny fanontaniana napetraka. Raha tsy fantatrao izay havalinao dia ireto misy safidy aroso:
-
Hamarino ny tenimiafina plugin -
N
-
Esory ireo mpampiasa tsy mitonona anarana? -
Y
-
Tsy avela ny fidirana amin'ny fakany avy lavitra? -
N
-
Esory ny angon-drakitra fitsapana sy ny fidirana amin'izany? -
N
-
Avereno avereno izao ny latabatra tombontsoa? -
Y
-
Andao ho any MySQL:
sudo mysql
-
Andeha hojerentsika ny fomba fidirana:
SELECT user,authentication_string,plugin,host FROM mysql.user;
-
Mametraha tenimiafina ho an'ny faka:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<ΠΠ°Ρ ΠΏΠ°ΡΠΎΠ»Ρ Π΄Π»Ρ MySQL>';
-
Andeha hojerentsika indray ny fomba fidirana:
SELECT user,authentication_string,plugin,host FROM mysql.user;
-
Ampiharo ny fanovana ary mialΓ MySQL:
FLUSH PRIVILEGES;
ΠΈexit
-
Ankehitriny, raha te hiditra amin'ny MySQL ianao dia mila mampiasa
mysql -u root -p
ary ampidiro ny tenimiafina
Fametrahana PHP
Andao hampiasa tahiry avy amin'ny antoko fahatelo avy amin'ny
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
Andeha isika hisafidy. Ho an'ny Laravel 7, azonao atao ny misafidy PHP 7.3 na 7.4. Ny isa 3 sy 4 ihany no tsy mitovy.
- 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 Process Manager (fpm) dia miasa miaraka amin'ny fangatahana PHP. mysql, mazava ho azy, amin'ny fiaraha-miasa amin'ny MySQL.
Manomboka izao dia hanao ny zava-drehetra aho amin'ny 7.4.
Fametrahana Nginx
sudo vim /etc/nginx/sites-available/<ΠΠ°Ρ Π΄ΠΎΠΌΠ΅Π½>
Ampidiro ao amin'ny sehatra (ohatra, mysite.ru
) izay tianao hampiasaina amin'ny ho avy. Raha mbola tsy manana ianao dia manorata iray, dia avereno fotsiny ireo dingana ao amin'ity toko ity ho an'ny sehatra misy anao rehefa misafidy izany ianao.
Ampidiro ireto manaraka ireto:
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;
}
}
Raha nisafidy ny version 7.3 ianao php7.4-fpm.sock
Ampidiro php7.4-fpm.sock
.
Henoy ny port 80 mandeha server_name
rehefa tonga amin'ny fangatahana faka /var/www/html
alaivo ny rakitra index. Raha aorian'ny server_name
Misy zavatra, mitady rakitra toy izany izahay. Raha tsy hitanay dia arianay ny 404. Raha mifarana amin'ny .php
, mihazakazaka fpm
... Raha misy .ht
, mandrara (403).
- Mamorona rohy avy amin'ny
sites-available
Π²sites-enabled
:sudo ln -s /etc/nginx/sites-available/<ΠΠ°Ρ Π΄ΠΎΠΌΠ΅Π½> /etc/nginx/sites-enabled/
- Esory ny rohy mankany
default
:sudo unlink /etc/nginx/sites-enabled/default
- Fanamarinana ny lesoka:
sudo nginx -t
- Avereno indray:
sudo systemctl reload nginx
Fanamarinana ny asa:
sudo vim /var/www/html/info.php
- Manoratra izahay:
<?php phpinfo();
- Andao ho any
<ΠΠ°Ρ IP>/info.php
Tokony hahita zavatra toy izao ianao:
Ankehitriny ity rakitra ity dia azo fafana: sudo rm /var/www/html/info.php
Install 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
-
Andao ho any MySQL:
mysql -u root -p
-
Mamorona tahiry miaraka amin'ny anarana laravel:
CREATE DATABASE laravel DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
-
Manome fidirana amin'ny fakany izahay laravel:
GRANT ALL ON laravel.* TO 'root'@'localhost' IDENTIFIED BY '<ΠΠ°Ρ ΠΏΠ°ΡΠΎΠ»Ρ ΠΎΡ MySQL>';
-
FLUSH PRIVILEGES;
-
exit
-
cd /var/www/html
-
Mamorona lahatahiry ho an'ny tetikasa:
sudo mkdir -p <ΠΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°>
-
Manome ny mpampiasa izahay laravel zon'ny tetikasa:
sudo chown laravel:laravel <ΠΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°>
Avy eo dia mila mamindra ny tetikasa ianao. Ohatra, ny kloning avy amin'ny Github.
cd ./<ΠΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°>
git clone <ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡ> .
Tsara ny mandinika fa raha tsy nitahiry rakitra static ianao (ohatra, avy amin'ny /public
) amin'ny Github, dia mazava ho azy fa tsy hanana azy ireo ianao. Ohatra, namorona kofehy manokana aho hamahana izany deploy
, izay efa nataoko clone: git clone -b <ΠΈΠΌΡ Π²Π΅ΡΠΊΠΈ> --single-branch <ΡΡΡΠ»ΠΊΠ° Π½Π° ΠΏΡΠΎΠ΅ΠΊΡ> .
.
- Fametrahana miankina:
composer install
- Mamorona .env:
vim .env
Ny dikan-teny fototra amin'izany dia toy izao:
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>
Raha mandika ny .env anao ianao dia soloy ny APP_ENV amin'ny famokarana, APP_DEBUG amin'ny diso ary ampidiro ny fanovana marina ho an'ny MySQL.
- Mamindra ny angona:
php artisan migrate
- Mamorona ny kaody:
php artisan key:generate
Fanovana alalana:
sudo chown -R $USER:www-data storage
sudo chown -R $USER:www-data bootstrap/cache
chmod -R 775 storage
chmod -R 775 bootstrap/cache
Ny zavatra farany sisa tavela dia ny fanavaozana Nginx ho an'i 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;
}
}
Toy ny tamin'ny farany, raha nisafidy ny version 7.3 ianao php7.4-fpm.sock
Ampidiro php7.4-fpm.sock
.
Mametraka sehatra amin'ny DigitalOcean
Ny zava-drehetra dia tena tsotra. Mividiana sehatra ianao (na aiza na aiza), mivadika amin'ny DigitalOcean amin'ny mamorona->Domains/DNS... Any an-tsaha Manampia sehatra iray miditra amin'ity sehatra ity ianao ary tsindrio ampio. Avy eo dia mandehana any amin'ny sehatry ny sehatra ary mankany amin'ny saha ANARAN'NY MPAMPIASA Ampidiro @. Mifidiana tetikasa ary tsindrio Mamorona rakitra.
Mankanesa any amin'ny tranokala nividiananao ny sehatra, tadiavo ny "DNS Servers" ao (na zavatra mitovy) ary midira ny mpizara DigitalOcean (izany hoens1.digitalocean.com
,ns2.digitalocean.com
,ns3.digitalocean.com
). Ankehitriny dia mila miandry kely (na betsaka) ianao mandra-panekena ireo fanovana ireo. Vonona!
Ny hany olana dia ny tranokalanao dia hisokatra amin'ny HTTP fotsiny. Raha te hanana HTTPS dia miroso amin'ny fizarana manaraka.
Fametrahana HTTPS
Ampidiro certbot ary ampidiro ny anaran'ny sehatra (format mysite.ru
) ary anaran-tsehatra misy 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.<ΠΠ°Ρ Π΄ΠΎΠΌΠ΅Π½>
Ankehitriny dia mila manamboatra Nginx ianao (aza adino ny manolo ny soatoavinao):
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;
}
}
Heveriko fa efa azonao ny tokony hovaina amin'ny PHP 7.3.
Eto, raha ny marina, ny zava-drehetra dia tsotra. Averinay fotsiny ny fangatahana rehetra avy amin'ny HTTP (port 80) mankany amin'ny HTTPS (port 443). Ary eo izahay dia manao ny zava-drehetra mitovy amin'ny teo aloha, fa miaraka amin'ny encryption.
Ny hany sisa tavela dia ny fametrahana ny alalana ao amin'ny firewall:
sudo nginx -t
sudo ufw app list
sudo ufw allow 'Nginx HTTPS'
sudo ufw status
sudo systemctl reload nginx
Ankehitriny dia tokony hiasa araka ny tokony ho izy ny zava-drehetra.
[Advanced] Fametrahana Node.js
Raha mila mandefa baiko npm mivantana amin'ny mpizara ianao dia mila mametraka Node.js.
sudo apt update
sudo apt install -y nodejs npm
nodejs -v
Dia izay, nijanona teo aminβio dingana io aho. Amin'ny ankapobeny, afa-po amin'ny vokatra aho. Angamba aho hifindra avy amin'ny DigitalOcean any amin'ny toerana akaiky kokoa an'i Rosia sy mora kokoa. Saingy satria efa nandalo ny fihodinana fanamarinana rehetra tao amin'ny tranokala aho ary nanao ny zava-drehetra tao, dia nasehoko azy ireo tamin'ny alalan'ny ohatra. Ankoatr'izay, ny $ 100 nanombohan'izy ireo dia loharano tsara ho an'ny fampiofanana.
PS Misaotra manokana ny mpanoratra
PPS Raha sendra injeniera ambony ianao izay mieritreritra amin'ny baiko bash dia aza mitsara mafy. Mety ho hitanao fa ambany ity lahatsoratra ity, saingy ho faly aho nahita iray rehefa nila izany aho. Raha misy soso-kevitra ho fanatsarana dia sitrako daholo.
Source: www.habr.com