Ubuntu & Nginxలో Laravel 7కి అప్లికేషన్‌ని అమలు చేస్తోంది

Ubuntu & Nginxలో Laravel 7కి అప్లికేషన్‌ని అమలు చేస్తోంది

నేను Laravel 7ని ఉపయోగించి నా పోర్ట్‌ఫోలియోను రూపొందించాలని నిర్ణయించుకున్నాను. తద్వారా ప్రధాన పేజీ ల్యాండింగ్ పేజీగా ఉంటుంది మరియు దానిలోని మొత్తం సమాచారాన్ని నిర్వాహక పానెల్‌ని ఉపయోగించి మార్చవచ్చు. పాయింట్ కాదు. ఇది విస్తరణకు వచ్చింది. అన్ని సమస్యలతో పూర్తి స్థాయి సర్వర్‌లో దీన్ని ఎలా చేయాలో నేను కొన్ని మంచి ట్యుటోరియల్‌లను కనుగొన్నాను. నేను విస్తరణలో అంత బలంగా లేను; నేను సాధారణంగా పూర్తి స్టాక్ కంటే ముందుంటాను. మరియు, నేను ఇప్పటికీ PHPలో వ్రాసి పరీక్షించగలిగితే, సర్వర్‌ని నిర్వహించే ముందు, మొదలైనవి. నేను ఇంకా ఎదగలేదు. కానీ నేను దానిని గుర్తించవలసి వచ్చింది.

ఇప్పుడు మేము SSH ద్వారా ప్రారంభించడం ప్రారంభించి, పని చేసే సైట్‌తో ముగిసే అన్ని దశల ద్వారా వెళ్తాము. మేము అన్ని ఆపదలను నివారించడానికి ప్రయత్నిస్తాము.

మీరు ఆన్‌లైన్‌లో ఇలాంటి సూచనలను కనుగొనవచ్చు. అన్ని తరువాత, నేను చివరకు కనుగొన్నాను. నిజమే, ఒకే చోట కాదు, స్టాక్‌ఓవర్‌ఫ్లో సహాయం లేకుండా కాదు మరియు రష్యన్‌లో చాలా తక్కువ. నేను బాధపడ్డాను. అందుకే మీ జీవితాన్ని సరళీకృతం చేయాలని నిర్ణయించుకున్నాను.

మేము DigitalOceanలో ఒక బిందువుతో ప్రతిదీ చేస్తాము. ఇది ఖచ్చితంగా అవసరం లేదు; ఏదైనా హోస్టింగ్‌ని ఎంచుకోండి. మీరు ఉబుంటులో పని చేస్తున్న సర్వర్‌ని చేరుకున్నప్పుడు, తిరిగి రండి. ఇప్పటికీ DigitalOceanలో దీన్ని చేయాలని నిర్ణయించుకునే వారికి, డొమైన్‌ను సెటప్ చేయడంపై మరిన్ని చిట్కాలు ఉంటాయి. మరియు $100 రెఫరల్ లింక్.

అన్ని DigitalOcean-నిర్దిష్ట దశలు ఇలాంటి ఫుట్‌నోట్‌లలో ఇవ్వబడతాయి.

ప్రారంభిద్దాం.

TL;DR (ప్రాథమిక ఆదేశాలు మాత్రమే)

వినియోగదారుని సృష్టించండి

  • ssh root@[IP-адрес вашего дроплета]
  • adduser laravel
  • usermod -aG sudo laravel
  • su laravel

దానికి SSHని జోడించండి

  • mkdir ~/.ssh
  • chmod 700 ~/.ssh
  • vim ~/.ssh/authorized_keys
  • పబ్లిక్ కీని చొప్పించండి
  • chmod 600 ~/.ssh/authorized_keys

ఫైర్‌వాల్

  • sudo ufw allow OpenSSH
  • sudo ufw enable
  • sudo ufw status

వికీపీడియా

  • 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/<Ваш домен>

ప్రాథమిక సెటప్:

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

Laravel కోసం HTTP సెటప్ మాత్రమే:

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

Laravel కోసం HTTPS సెట్టింగ్:

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

DigitalOceanలో ఒక బిందువును సృష్టించండి మరియు కొత్త SSH కీని నమోదు చేయండి

DigitalOceanలో మీరే ఎలా నమోదు చేసుకోవాలో మీరు కనుగొంటారని నేను నిజంగా నమ్ముతున్నాను. చాలా ధృవీకరణలు మరియు ఇతర విషయాలతో ఇది సులభం కాదు. మీరు డాక్యుమెంట్‌లను ఉపయోగించి వెరిఫై చేస్తున్నప్పుడు నెట్‌వర్క్ ఎర్రర్‌ను నిరంతరం ఎదుర్కొంటే, VPN ద్వారా ప్రతిదీ చేయడానికి ప్రయత్నించండి, అది సహాయం చేస్తుంది.

ఎగువన ఉన్న మెనులో, క్లిక్ చేయండి సృష్టించు->బిందువులు. ఎంచుకోండి ఉబుంటు.

మీరు నమోదు చేసుకున్న వెంటనే, మీరు మీ ఖాతాకు $100 అందుకుంటారు. కానీ మోసపోకండి. మీరు ఖర్చు చేయడానికి 60 రోజులు మాత్రమే ఉన్నాయి. మరియు ఇది చాలా తక్కువ. నాలాగే మీరు కూడా ఖరీదైన ప్లాన్‌ని ఉపయోగించాలనుకోవచ్చు, తద్వారా తర్వాత, నిజమైన డబ్బు రావడం ప్రారంభించినప్పుడు, మీరు తక్కువ ధరకు మారవచ్చు. ఇది పని చేయదని నేను మీకు వెంటనే చెబుతాను. మీరు దానిని పెంచవచ్చు, కానీ మీరు దానిని తగ్గించలేరు. కాబట్టి అది వెళ్తుంది. నేను ఎంచుకున్న ప్రామాణిక->$5.

నేను మాకు దగ్గరగా ఉన్న ప్రాంతాన్ని ఎంచుకుంటాను ఫ్రాంక్ఫర్ట్. VPC నెట్‌వర్క్->డిఫాల్ట్-fra1

మేము వెంటనే SSH ద్వారా ప్రమాణీకరణ చేస్తాము. క్లిక్ చేయండి కొత్త SSH కీ. మీకు SSH లేకపోతే, కుడివైపున చాలా సులభమైన సూచనలు ఉన్నాయి. బాష్ టెర్మినల్ తెరిచి అతికించండి ssh-keygen. అప్పుడు మేము పబ్లిక్ కీతో ఫైల్‌కి వెళ్తాము /Users/<Ваше имя пользователя>/.ssh/id_rsa.pub (లేదా సరళంగా cat ~/.ssh/id_rsa.pub), కంటెంట్‌లను కాపీ చేసి ఎడమవైపు ఉన్న విండోలో అతికించండి. ఏదైనా పేరు.

మేము బిందువు కోసం హోస్ట్ పేరుతో ముందుకు వచ్చాము.

పత్రికా బిందువును సృష్టించండి

కొత్త వినియోగదారుని సృష్టించండి

  • ssh root@[IP-адрес вашего дроплета]
  • మీరు ఖచ్చితంగా కనెక్ట్ చేయడాన్ని కొనసాగించాలనుకుంటున్నారా (అవును/లేదు/[వేలిముద్ర])? yes
  • మీ SSH పాస్‌వర్డ్‌ను నమోదు చేయండి
  • వినియోగదారుని సృష్టించండి laravel: adduser laravel
  • మీ పాస్‌వర్డ్ మరియు ఇతర సమాచారాన్ని నమోదు చేయండి (నేను పూర్తి పేరును మాత్రమే నమోదు చేస్తున్నాను)
  • సుడో సమూహానికి వినియోగదారుని జోడించండి: usermod -aG sudo laravel

కొత్త వినియోగదారు కోసం SSH

  • కొత్త వినియోగదారుకు మారండి: su laravel

మేము లారావెల్ వినియోగదారు తరపున కథనం ముగిసే వరకు అన్ని చర్యలను కొనసాగిస్తాము. అందువల్ల, మీకు అకస్మాత్తుగా అంతరాయం కలిగితే, మళ్లీ లాగిన్ చేసి నమోదు చేయండి su laravel

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

మేము Vimలో ఫైల్‌ను తెరిచాము. మీకు దాని గురించి అస్సలు తెలియకపోతే, మీరు మీ హక్కు అయిన నానోలో పని చేయవచ్చు.

అత్యంత ప్రాథమిక Vim ఆదేశాలు

వ్యాసం అంతటా Vim ఎడిటర్‌ని ఉపయోగించడానికి, మీరు ఈ క్రింది వాటిని తెలుసుకోవాలి.

  • Vim వివిధ మోడ్‌లను కలిగి ఉంది: సాధారణ మోడ్, దీనిలో మీరు ఆదేశాలను నమోదు చేసి మోడ్‌లు మరియు ఇతరాలను ఎంచుకోండి.
  • ఏదైనా మోడ్ నుండి నిష్క్రమించి, సాధారణ మోడ్‌కి తిరిగి రావడానికి, నొక్కండి Esc
  • చుట్టూ తిరగండి: మీరు బాణాలను ఉపయోగించవచ్చు
  • సేవ్ చేయకుండా నిష్క్రమించండి <Normal mode>: :q!
  • నిష్క్రమించి సేవ్ చేయండి <Normal mode>: :wq
  • టెక్స్ట్ ఇన్‌పుట్ మోడ్‌కి మారండి <Normal mode>: i (ఇంగ్లీషు నుండి. ఇన్సర్ట్)
  • మేము మా పబ్లిక్ కీని చొప్పించాము (మేము పైన చేసాము)
  • మేము మార్పుల నుండి రక్షిస్తాము: chmod 600 ~/.ssh/authorized_keys

ఫైర్‌వాల్‌ను ఇన్‌స్టాల్ చేస్తోంది

  • అందుబాటులో ఉన్న అన్ని సెట్టింగ్‌లను చూద్దాం: sudo ufw app list
  • OpenSSHని అనుమతించండి (లేకపోతే అది మమ్మల్ని లాక్ చేస్తుంది): sudo ufw allow OpenSSH
  • ఫైర్‌వాల్‌ను ప్రారంభిద్దాం: sudo ufw enable, y
  • మేము తనిఖీ చేస్తాము: sudo ufw status

Status: active

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

అంతా బాగానే ఉంది.

Nginxని ఇన్‌స్టాల్ చేస్తోంది

ఇన్‌స్టాలేషన్ సమయంలో మీరు కొన్నిసార్లు "మీరు ఖచ్చితంగా ఉన్నారా?" సమాధానం y (అలాగే, మీరు ఖచ్చితంగా ఉంటే మాత్రమే).

  • sudo apt update
  • sudo apt install nginx

ఫైర్‌వాల్ సెట్టింగ్‌లకు Nginxని జోడిస్తోంది

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

మీ IPకి వెళ్లండి. ప్రతిదీ సరిగ్గా జరిగితే, మీరు ఈ క్రింది వాటిని చూడాలి.

Ubuntu & Nginxలో Laravel 7కి అప్లికేషన్‌ని అమలు చేస్తోంది

MySQLని ఇన్‌స్టాల్ చేస్తోంది

  • sudo apt install mysql-server
  • స్వయంచాలక రక్షణ స్క్రిప్ట్‌ను ప్రారంభిస్తోంది sudo mysql_secure_installation

అడిగిన ప్రశ్నలకు సమాధానమివ్వండి. మీకు ఏమి సమాధానం చెప్పాలో తెలియకపోతే, ఇక్కడ కొన్ని సూచించబడిన ఎంపికలు ఉన్నాయి:

  • పాస్‌వర్డ్ ప్లగిన్‌ని ధృవీకరించండి - N

  • అనామక వినియోగదారులను తీసివేయాలా? — Y

  • రిమోట్‌గా రూట్ లాగిన్‌ని అనుమతించాలా? — N

  • పరీక్ష డేటాబేస్‌ని తీసివేసి, దానికి యాక్సెస్ చేయాలా? — N

  • ఇప్పుడు ప్రివిలేజ్ టేబుల్‌లను మళ్లీ లోడ్ చేయాలా? — Y

  • MySQLకి వెళ్దాం: sudo mysql

  • యాక్సెస్ పద్ధతులను చూద్దాం: SELECT user,authentication_string,plugin,host FROM mysql.user;

  • రూట్ కోసం పాస్‌వర్డ్‌ను సెట్ చేయండి: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<Ваш пароль для MySQL>';

  • యాక్సెస్ పద్ధతులను మళ్లీ చూద్దాం: SELECT user,authentication_string,plugin,host FROM mysql.user;

  • మార్పులను వర్తింపజేయండి మరియు MySQL నుండి నిష్క్రమించండి: FLUSH PRIVILEGES; и exit

  • ఇప్పుడు, MySQL లోకి లాగిన్ అవ్వడానికి మీరు ఉపయోగించాలి mysql -u root -p మరియు పాస్వర్డ్ను నమోదు చేయండి

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

ఇప్పుడు ఎంచుకుందాం. Laravel 7 కోసం, మీరు PHP 7.3 లేదా 7.4ని ఎంచుకోవచ్చు. 3 మరియు 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

PHP FastCGI ప్రాసెస్ మేనేజర్ (fpm) PHP అభ్యర్థనలతో పని చేస్తుంది. mysql, వాస్తవానికి, MySQLతో పని చేయడానికి.

ఇప్పటి నుండి నేను 7.4లో ప్రతిదీ చేస్తాను.

Nginxని సెటప్ చేస్తోంది

  • sudo vim /etc/nginx/sites-available/<Ваш домен>

"<మీ డొమైన్>"కి బదులుగా డొమైన్‌ను నమోదు చేయండి (ఉదాహరణకు, mysite.ru) మీరు భవిష్యత్తులో ఉపయోగించాలనుకుంటున్నారు. మీ వద్ద ఇంకా ఒకటి లేకుంటే, ఏదైనా వ్రాయండి, మీరు దీన్ని ఎంచుకున్నప్పుడు మీ డొమైన్ కోసం ఈ అధ్యాయంలోని దశలను పునరావృతం చేయండి.

క్రింది వాటిని నమోదు చేయండి:

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

మీరు బదులుగా వెర్షన్ 7.3 ఎంచుకుంటే php7.4-fpm.sock లో వ్రాయండి php7.4-fpm.sock.

పోర్ట్ 80ని వినండి server_nameమేము రూట్ అభ్యర్థన వద్దకు వచ్చినప్పుడు /var/www/html ఇండెక్స్ ఫైల్ తీసుకోండి. తర్వాత ఉంటే server_name ఏదో ఉంది, మేము అలాంటి ఫైల్ కోసం చూస్తున్నాము. మేము దానిని కనుగొనలేకపోతే, మేము 404ని విసిరివేస్తాము. అది ముగిస్తే .php, ద్వారా అమలు fpm... ఉన్నట్లయితే .ht, నిషేధించు (403).

  • నుండి లింక్‌ను తయారు చేస్తోంది sites-available в sites-enabled: sudo ln -s /etc/nginx/sites-available/<Ваш домен> /etc/nginx/sites-enabled/
  • లింక్‌ని తీసివేస్తోంది default: sudo unlink /etc/nginx/sites-enabled/default
  • లోపాల కోసం తనిఖీ చేస్తోంది: sudo nginx -t
  • రీబూట్: sudo systemctl reload nginx

పనిని తనిఖీ చేస్తోంది:

  • sudo vim /var/www/html/info.php
  • మేము రాస్తాము: <?php phpinfo();
  • పద వెళదాం <Ваш IP>/info.php

మీరు ఇలాంటివి చూడాలి:

Ubuntu & Nginxలో Laravel 7కి అప్లికేషన్‌ని అమలు చేస్తోంది

ఇప్పుడు ఈ ఫైల్ తొలగించబడవచ్చు: sudo rm /var/www/html/info.php

లారావెల్‌ను ఇన్‌స్టాల్ చేయండి

  • 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

  • MySQLకి వెళ్దాం: mysql -u root -p

  • పేరుతో డేటాబేస్ సృష్టించండి laravel: CREATE DATABASE laravel DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

  • మేము రూట్ యాక్సెస్‌ను అందిస్తాము laravel: GRANT ALL ON laravel.* TO 'root'@'localhost' IDENTIFIED BY '<Ваш пароль от MySQL>';

  • FLUSH PRIVILEGES;

  • exit

  • cd /var/www/html

  • ప్రాజెక్ట్ కోసం ఫోల్డర్‌ను సృష్టించండి: sudo mkdir -p <Имя проекта>

  • మేము వినియోగదారుని అందిస్తాము laravel ప్రాజెక్ట్ హక్కులు: sudo chown laravel:laravel <Имя проекта>

తదుపరి మీరు ప్రాజెక్ట్ను బదిలీ చేయాలి. ఉదాహరణకు, గితుబ్ నుండి క్లోనింగ్.

  • cd ./<Имя проекта>
  • git clone <ссылка на проект> .

మీరు స్టాటిక్ ఫైల్‌లను సేవ్ చేయకపోతే (ఉదాహరణకు, నుండి /public) గితుబ్‌లో, సహజంగానే మీరు వాటిని కలిగి ఉండరు. ఉదాహరణకు, దీనిని పరిష్కరించడానికి నేను ప్రత్యేక థ్రెడ్‌ని సృష్టించాను deploy, దీని నుండి నేను ఇప్పటికే క్లోన్ చేసాను: git clone -b <имя ветки> --single-branch <ссылка на проект> ..

  • డిపెండెన్సీలను ఇన్‌స్టాల్ చేస్తోంది: composer install
  • .env సృష్టించు: 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>

మీరు మీ .envని కాపీ చేస్తే, APP_ENVని ఉత్పత్తితో, APP_DEBUGని తప్పుతో భర్తీ చేయండి మరియు 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

లారావెల్ కోసం Nginxని పునర్నిర్మించడం చివరిగా మిగిలి ఉంది:

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

మీరు బదులుగా వెర్షన్ 7.3ని ఎంచుకున్నట్లయితే, చివరిసారి వలె php7.4-fpm.sock లో వ్రాయండి php7.4-fpm.sock.

DigitalOceanలో డొమైన్‌ను సెటప్ చేస్తోంది

ప్రతిదీ నిజానికి చాలా సులభం. మీరు డొమైన్‌ను (ఎక్కడైనా) కొనుగోలు చేస్తారు, ఇక్కడ DigitalOceanకి మారండి సృష్టించు->డొమైన్‌లు/DNS. Поле డొమైన్‌ను జోడించండి మీరు ఈ డొమైన్‌ను నమోదు చేసి, జోడించు క్లిక్ చేయండి. అప్పుడు డొమైన్ సెట్టింగ్‌లకు మరియు ఫీల్డ్‌కు వెళ్లండి హోస్ట్ పేరు ఎంటర్ @. ప్రాజెక్ట్‌ని ఎంచుకుని, క్లిక్ చేయండి రికార్డు సృష్టించు.
ఇప్పుడు మీరు డొమైన్‌ని కొనుగోలు చేసిన సైట్‌కి వెళ్లి, అక్కడ "DNS సర్వర్‌లు" (లేదా అలాంటిదే) కనుగొని, DigitalOcean సర్వర్‌లను నమోదు చేయండి (అవి ns1.digitalocean.com, ns2.digitalocean.com, ns3.digitalocean.com) ఈ సెట్టింగ్‌లు ఆమోదించబడే వరకు ఇప్పుడు మీరు కొంచెం (లేదా చాలా) వేచి ఉండాలి. సిద్ధంగా ఉంది!
ఒకే సమస్య ఏమిటంటే మీ సైట్ HTTPగా మాత్రమే తెరవబడుతుంది. HTTPSని కలిగి ఉండటానికి, తదుపరి భాగానికి వెళ్లండి.

HTTPSని సెటప్ చేస్తోంది

సర్ట్‌బాట్‌ను ఇన్‌స్టాల్ చేసి, డొమైన్ పేరును పాస్ చేయండి (ఫార్మాట్ mysite.ru) మరియు డొమైన్ పేరు 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.<Ваш домен>

ఇప్పుడు మీరు Nginxని రీకాన్ఫిగర్ చేయాలి (మీ విలువలను ప్రత్యామ్నాయం చేయడం మర్చిపోవద్దు):

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

PHP 7.3 కోసం ఏమి మార్చాలో మీరు ఇప్పటికే అర్థం చేసుకున్నారని నేను భావిస్తున్నాను.

ఇక్కడ, నిజానికి, ప్రతిదీ సులభం. మేము అన్ని అభ్యర్థనలను HTTP (పోర్ట్ 80) నుండి HTTPS (పోర్ట్ 443)కి మళ్లించాము. మరియు అక్కడ మేము ప్రతిదీ మునుపటి మాదిరిగానే చేస్తాము, కానీ గుప్తీకరణతో.

ఫైర్‌వాల్‌లో అనుమతులను సెట్ చేయడం మాత్రమే మిగిలి ఉంది:

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

ఇప్పుడు ప్రతిదీ తప్పక పని చేయాలి.

[అధునాతన] Node.jsని ఇన్‌స్టాల్ చేస్తోంది

మీరు అకస్మాత్తుగా npm ఆదేశాలను నేరుగా సర్వర్‌లో అమలు చేయవలసి వస్తే, మీరు Node.jsని ఇన్‌స్టాల్ చేయాలి.

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

అంతే, ఈ దశలోనే ఆగిపోయాను. సూత్రప్రాయంగా, నేను ఫలితంతో సంతృప్తి చెందాను. బహుశా నేను డిజిటల్ ఓషన్ నుండి రష్యాకు దగ్గరగా మరియు చౌకగా మారవచ్చు. కానీ నేను ఇప్పటికే సైట్‌లోని అన్ని ధృవీకరణ రౌండ్‌ల ద్వారా వెళ్లి అక్కడ ప్రతిదీ చేసాను కాబట్టి, నేను వాటిని ఉదాహరణగా చూపించాను. అదనంగా, వారి ప్రారంభ $100 శిక్షణ కోసం అద్భుతమైన స్ప్రింగ్‌బోర్డ్.

PS రచయితకు ప్రత్యేక ధన్యవాదాలు ఈ సారాంశం, ఇది పైన పేర్కొన్న అన్ని చర్యలకు ఆధారంగా పనిచేసింది. కొన్ని సందర్భాల్లో ఇది Laravel 7 కోసం పని చేయదు, నేను దాన్ని పరిష్కరించాను.

PPS మీరు బాష్ ఆదేశాలలో ఆలోచించే టాప్ ఇంజనీర్ అయితే, దయచేసి కఠినంగా తీర్పు చెప్పకండి. మీరు ఈ కథనాన్ని తక్కువ స్థాయికి చెందినదిగా గుర్తించవచ్చు, కానీ నాకు అవసరమైనప్పుడు దాన్ని కనుగొనడంలో నేను సంతోషిస్తాను. మెరుగుదల కోసం సూచనలు ఉంటే, నేను దాని కోసం సిద్ధంగా ఉన్నాను.

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి