VII in Ubuntu & Nginx applicationem ad Laravel disponas

VII in Ubuntu & Nginx applicationem ad Laravel disponas

Libellum meum facere decrevi utens Laravel 7. Ut pagina principalis pagina descensionis esset, omnesque informationes in eo utentes tabula admin mutari possent. Non punctum. Res ad instruere. Duos bonorum tutorium inveni in quo hoc facerem in plena servo-procurvato cum omnibus molestiis. Instruere non multum valeo, plerumque plus fronte quam plenus acervus sum. Et, si adhuc scribere possum et probare in PHP, tunc ante dispono servo, etc. Non creverunt adhuc. Sed mihi videris.

Nunc per omnes gradus ibimus, incipientes cum via SSH deducunt et cum loco operantes finiendo. Omnes casus vitare conabimur.

Similes instructiones in online invenire poteris. Tandem inveni. Verum, non uno loco, non sine ope StackOverflow, et vix in Russian. passus sum. Quam ob rem statui vitam tuam simpliciorem reddere.

Omnia cum gutta in DigitalOcean faciemus. Quod quidem non est necessarium, elige aliquem obnoxium. Cum operarium in Ubuntu perveneris, redi. Nam qui adhuc in DigitalOcean id facere constituunt, plures apicibus in ditione constituenda erunt. Et $100 deferre link.

Omnes gradus DigitalOceani speciales in notis hisce tradentur.

Sit scriptor committitur.

TL, DR (praecepta tantum)

Creare a user

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

Adde SSH ad eam

  • mkdir ~/.ssh
  • chmod 700 ~/.ssh
  • vim ~/.ssh/authorized_keys
  • Clavis publica inserta
  • 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/<Π’Π°Ρˆ Π΄ΠΎΠΌΠ΅Π½>

Basic setup:

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

Tantum HTTP setup pro 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 ambitus 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

Guttam crea in DigitalOcean et subcriptio novam SSH key

Vere credo te instare quomodo cum DigitalOcean te subcriptio. Non facile, cum multae confirmationes et alia. Si constanter errorem retis cum documentis comprobans utens, omnia facere conare per VPN, debet adiuvare.

In tabula in summo, deprime Create->droplets. Elige Ubuntu.

Cum primum mandaveris, $100 in ratione vestra recipies. Sed ne seducamini. Tantummodo 60 dies habe. Et hoc parum. Potes, ut me, cariore consilio uti velis, ut postea, cum vera pecunia fluit, ad viliorem transire possis. Dicam tibi statim quod non laborabit. Augere potes, sed minuere non potes. Ita abscedit. Libet Latin->$5.

Eligo regionem nobis proximam Frankfurt. VPC Network->default-fra1

Nos statim authenticas faciendas per SSH. Click Nova SSH Key. Si SSH non habes, simplicissima sunt instructiones de iure. Aperi vercundus terminatio et crustulum ssh-keygen. Inde itur ad tabellam cum clavis publicis /Users/<Π’Π°ΡˆΠ΅ имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ>/.ssh/id_rsa.pub (Or simply cat ~/.ssh/id_rsa.pub) effingo contenta et crustulum in fenestra ad sinistram. Quodvis nomen.

Nos cum hostname ad guttam ascendimus.

torcular Create Droplet

Novam usor

  • ssh root@[IP-адрСс вашСго Π΄Ρ€ΠΎΠΏΠ»Π΅Ρ‚Π°]
  • Certusne esne connectens continuare (ne/no/[fingerprint])? yes
  • Nulla SSH password
  • Creare a user laravel: adduser laravel
  • Intrant es tesserae et aliae informationes (modo plena nomen intrant)
  • Addere user coetus ad sudo: usermod -aG sudo laravel

SSH ad novum user

  • Transibit ad novum user: su laravel

Omnes actiones ulterius exequimur, usque ad finem articuli, pro usuario laravel. Ergo, si subito intermittitur, re-incipe et intra su laravel

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

ΠœΡ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π»ΠΈ Ρ„Π°ΠΉΠ» Π² Vim. Если Π²Ρ‹ с Π½ΠΈΠΌ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ Π²ΠΎΠΎΠ±Ρ‰Π΅, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Nano, вашС ΠΏΡ€Π°Π²ΠΎ.

Praecipua Vim imperat

Ut Vim editor per totum articulum utatur, solum sequentia scire debes.

  • Vim habet diversos modos: Normalis modus, quo intres mandata, et modos selectos et alios.
  • Exire aliquem modum et redire ad modum communem, sicut torcular Esc
  • Movere circa: sagittis uti potes
  • Exit sine salute <Normal mode>: :q!
  • Exitus et salvare <Normal mode>: :wq
  • Vertas text initus modus <Normal mode>: i (De Anglis. inserere)
  • Clavem publicam nostram (quam supra fecimus) inserimus.
  • Contra vices munimus: chmod 600 ~/.ssh/authorized_keys

Installing firewall

  • Intueamur omnes praesto occasus: sudo ufw app list
  • Patitur OpenSSH (alioquin nos claudat); sudo ufw allow OpenSSH
  • Demus firewall: sudo ufw enable, y
  • reprehendo: sudo ufw status

Status: active

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

Omnia est bonum.

installing Nginx

Per institutionem interdum rogaberis "Certus es?" Answer y (Bene, si certus es).

  • sudo apt update
  • sudo apt install nginx

Addit Nginx ad firewall occasus

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

Vade ad IP tuum. Si omnia bene sunt, sequentia videre debes.

VII in Ubuntu & Nginx applicationem ad Laravel disponas

installing MySQL

  • sudo apt install mysql-server
  • Lorem scriptor praesidio launching sudo mysql_secure_installation

Responde interrogationes. Si nescis quid respondeas, hic quaedam optiones suggesserunt;

  • Validate password plugin - N

  • Anonymi users removere? - Y

  • Disallow radix login remotius? - N

  • Remove test database and access to it? β€” N

  • Reload nunc privilegiorum tabularum? - Y

  • Eamus ad MySQL; sudo mysql

  • Intueamur accessum modi: SELECT user,authentication_string,plugin,host FROM mysql.user;

  • Radix in password pro pone: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<Π’Π°Ρˆ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ для MySQL>';

  • Intueamur accessum modos iterum: SELECT user,authentication_string,plugin,host FROM mysql.user;

  • Applicare mutationes et exitus MySQL; FLUSH PRIVILEGES; ΠΈ exit

  • Nunc, in MySQL log uti debes mysql -u root -p et intrant tesseram

Installing PHP

Utamur tertia-pars repositio from 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

Nunc agamus. Pro Laravel 7, potes eligere PHP 7.3 vel 7.4. Sola differentia erit in numeris III et IV.

  • 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 Processus Procurator (fpm) operatur cum petitionibus PHP. mysql, scilicet, ad operandum cum MySQL.

Posthac omnia faciam 7.4.

Occasus sursum Nginx

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

Pro "dominium tuum>" intrant dominium (exempli gratia: mysite.ru) ut in posterum uti velis. Si non habes adhuc, scribe aliquid, tunc repete gradus in hoc capite pro dominio tuo cum illud eligis.

Haec intrant:

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

Si vis versionem 7.3 loco php7.4-fpm.sock scribe in * php7.4-fpm.sock.

Audi portum LXXX on server_namequando pervenimus ad radicem petitionem /var/www/html index lima accipe. si post server_name Aliquid est, talem fasciculum quaerimus. Si non invenimus, eicimus 404. Si desinit .php, transfixi fpm... Si est .ht, Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅ΠΌ (403).

  • Faciens nexum e sites-available Π² sites-enabled: sudo ln -s /etc/nginx/sites-available/<Π’Π°Ρˆ Π΄ΠΎΠΌΠ΅Π½> /etc/nginx/sites-enabled/
  • Vinculum removere ad default: sudo unlink /etc/nginx/sites-enabled/default
  • Reprehendo pro erroribus: sudo nginx -t
  • Reboot: sudo systemctl reload nginx

Reperiens opus:

  • sudo vim /var/www/html/info.php
  • scribimus: <?php phpinfo();
  • Eamus in <Π’Π°Ρˆ IP>/info.php

Videas aliquid simile hoc;

VII in Ubuntu & Nginx applicationem ad Laravel disponas

Iam hic fasciculus deleri potest: 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

  • Eamus ad MySQL; mysql -u root -p

  • Creare database nomine laravel: CREATE DATABASE laravel DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

  • Nos radix aditum praebere laravel: GRANT ALL ON laravel.* TO 'root'@'localhost' IDENTIFIED BY '<Π’Π°Ρˆ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΎΡ‚ MySQL>';

  • FLUSH PRIVILEGES;

  • exit

  • cd /var/www/html

  • Creare folder pro project: sudo mkdir -p <Имя ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°>

  • Nos user providere laravel iura ad propositum; sudo chown laravel:laravel <Имя ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°>

Deinde opus est consilium transferre. Exempli gratia exquisitis a Github.

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

Operae pretium est considerare quod si tabulas statas non servasti (exempli gratia, ex /public) in Github, tunc naturaliter non habebis eas. Exempli gratia, filum separatum ad hoc solvendum creavi deploya quo iam cloned; git clone -b <имя Π²Π΅Ρ‚ΠΊΠΈ> --single-branch <ссылка Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚> ..

  • clientelas installare: composer install
  • Crea .env: vim .env

Versio fundamentalis eius sic spectat:

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>

Если Π²Ρ‹ ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚Π΅ свой .env, Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ APP_ENV Π½Π° production, APP_DEBUG Π½Π° false ΠΈ Π²ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ настройки для MySQL.

  • Migrans database: php artisan migrate
  • Codicem generans: php artisan key:generate

Mutantur permissiones:

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

Ultimum reliquum est Nginx reconfigure pro 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;
    }
}

Velut ultimo tempore, si versionem 7.3 loco legeres php7.4-fpm.sock scribe in * php7.4-fpm.sock.

Настройка Π΄ΠΎΠΌΠ΅Π½Π° Π½Π° DigitalOcean

Omne quod actu est valde simplex. Emisti domain (usquam), switch ad DigitalOcean at Create->Dominia/DNS. ΠΏΠΎΠ»Π΅ Addere domain hanc aream intras et click addendi. Deinde ad occasus dominicum et in campum hostname intrare @. Eligere consilium quod click " Create record.
Nunc ite ad locum ubi dominium emisti, "DNS Server" ibi (vel quid simile) invenies et intres ministratores DigitalOceani (nempe ns1.digitalocean.com, ns2.digitalocean.com, ns3.digitalocean.com). Nunc opus est exspectare paululum (vel multum) donec haec loca recipiantur. Paratus!
Sola problema est ut situs tuus solum ut HTTP aperiet. Habendum HTTPS, transigendum ad alteram partem.

Occasus sursum HTTPS

Install certbot et consequentes domain nomen (format mysite.ru) et domain nomen cum 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.<Π’Π°Ρˆ Π΄ΠΎΠΌΠ΅Π½>

Nunc opus est Nginx reconfigure (noli oblivisci bona tua substituere);

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

Puto te iam intelligere quid mutandum sit pro PHP 7.3.

Hic enim omnia simplicia sunt. Simpliciter nos omnes petitiones ab HTTP (port 80) ad HTTPS (portum 443) redigere. Et ibi omnia facimus sicut prius, sed encryption.

Reliquum est ut licentias in firewall statuas;

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

Omnia autem ut oportet operari.

[Advanced] Installing Node.js

Si subito debes currere npm directe in servo, debes Node.js instituere.

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

Hoc est, substiti in hac scena. Principio contentus sum effectu. Fortasse a DigitalOceano transibo alicubi propius ad Russiam et vilius. Sed quia iam peragravi omnes probationes circa locum et omnia ibi feci, exemplo monstravi. Praeterea initium eorum $100 optimum PETAURUM est ad erudiendum.

PS Special gratias auctoris hoc summa "que omnia predictarum actionum fulcimentum fuit. In quibusdam non laborat pro Laravel 7, certum est.

PPS Si forte fabrum summum esse qui in imperiosa cogitat, noli acriter iudicare. Articulum hunc in re minore licet invenire, sed unum cum opus fuerit invenire gavisus sum. Si suggestiones sunt ad emendationem, ego totus est.

Source: www.habr.com