Mametraka fampiharana amin'ny Laravel 7 amin'ny Ubuntu & Nginx

Mametraka fampiharana amin'ny Laravel 7 amin'ny Ubuntu & Nginx

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 Rohy fandefasana $100.

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 tsotra cat ~/.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.

Mametraka fampiharana amin'ny Laravel 7 amin'ny Ubuntu & Nginx

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

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_namerehefa 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:

Mametraka fampiharana amin'ny Laravel 7 amin'ny Ubuntu & Nginx

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 hoe ns1.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 ity hevitra ity, izay fototry ny hetsika rehetra voalaza etsy ambony. Amin'ny tranga sasany dia tsy mety amin'ny Laravel 7 izany, nanamboatra azy io aho.

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

Add a comment