Ubuntu & Nginx இல் Laravel 7 க்கு ஒரு பயன்பாட்டைப் பயன்படுத்துகிறது

Ubuntu & Nginx இல் Laravel 7 க்கு ஒரு பயன்பாட்டைப் பயன்படுத்துகிறது

Laravel 7 ஐப் பயன்படுத்தி எனது போர்ட்ஃபோலியோவை உருவாக்க முடிவு செய்தேன். அதனால் பிரதான பக்கம் ஒரு இறங்கும் பக்கமாக இருக்கும், மேலும் அதில் உள்ள அனைத்து தகவல்களையும் நிர்வாகி குழுவைப் பயன்படுத்தி மாற்றலாம். புள்ளி இல்லை. இது வரிசைப்படுத்தலுக்கு வந்தது. அனைத்து பிரச்சனைகளுடன் ஒரு முழு அளவிலான சர்வரில் இதை எப்படி செய்வது என்பது குறித்த இரண்டு நல்ல பயிற்சிகளை நான் கண்டேன். வரிசைப்படுத்துவதில் நான் மிகவும் வலுவாக இல்லை; நான் பொதுவாக முழு அடுக்கை விட முன்னோடியாக இருக்கிறேன். மேலும், நான் இன்னும் PHP இல் எழுதவும் சோதிக்கவும் முடிந்தால், சேவையகத்தை நிர்வகிப்பதற்கு முன், முதலியன. நான் இன்னும் வளரவில்லை. ஆனால் நான் அதை கண்டுபிடிக்க வேண்டியிருந்தது.

இப்போது நாம் அனைத்து படிகளையும் கடந்து செல்வோம், SSH வழியாக தொடங்குவதில் தொடங்கி வேலை செய்யும் தளத்துடன் முடிவடையும். எல்லா இடர்பாடுகளையும் தவிர்க்க முயற்சிப்போம்.

இணையத்தில் இதே போன்ற வழிமுறைகளை நீங்கள் காணலாம். எல்லாவற்றிற்கும் மேலாக, நான் இறுதியாக அதைக் கண்டுபிடித்தேன். உண்மை, ஒரு இடத்தில் இல்லை, StackOverflow உதவி இல்லாமல் இல்லை, மற்றும் அரிதாகவே ரஷ்ய மொழியில். நான் கஷ்டப்பட்டேன். அதனால்தான் உங்கள் வாழ்க்கையை எளிமைப்படுத்த முடிவு செய்தேன்.

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

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

அடிப்படை அமைப்பு:

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 நெட்வொர்க்->default-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 வெவ்வேறு முறைகளைக் கொண்டுள்ளது: இயல்பான பயன்முறை, இதில் நீங்கள் கட்டளைகளை உள்ளிட்டு முறைகள் மற்றும் பிறவற்றைத் தேர்ந்தெடுக்கவும்.
  • எந்தப் பயன்முறையிலிருந்தும் வெளியேறி இயல்பான பயன்முறைக்குத் திரும்ப, அழுத்தவும் 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)

உங்கள் ஐபிக்குச் செல்லவும். எல்லாம் சரியாக நடந்தால், பின்வருவனவற்றை நீங்கள் பார்க்க வேண்டும்.

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

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

  • 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 <Имя проекта>

அடுத்து நீங்கள் திட்டத்தை மாற்ற வேண்டும். உதாரணமாக, Github இலிருந்து குளோனிங்.

  • 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

Laravel க்கான 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. Поле ஒரு டொமைனைச் சேர்க்கவும் நீங்கள் இந்த டொமைனை உள்ளிட்டு சேர் என்பதைக் கிளிக் செய்யவும். பின்னர் டொமைன் அமைப்புகளுக்குச் சென்று புலத்திற்குச் செல்லவும் ஹோஸ்ட் பெயர் நுழைய @. ஒரு திட்டத்தைத் தேர்ந்தெடுத்து கிளிக் செய்யவும் பதிவை உருவாக்கவும்.
இப்போது நீங்கள் டொமைனை வாங்கிய தளத்திற்குச் சென்று, அங்கு "டிஎன்எஸ் சர்வர்கள்" (அல்லது அது போன்ற ஏதாவது) கண்டுபிடித்து, டிஜிட்டல் ஓஷன் சர்வர்களை உள்ளிடவும் (அதாவது ns1.digitalocean.com, ns2.digitalocean.com, ns3.digitalocean.com) இந்த அமைப்புகள் ஏற்றுக்கொள்ளப்படும் வரை இப்போது நீங்கள் சிறிது (அல்லது நிறைய) காத்திருக்க வேண்டும். தயார்!
ஒரே பிரச்சனை என்னவென்றால், உங்கள் தளம் HTTP ஆக மட்டுமே திறக்கப்படும். HTTPSஐப் பெற, அடுத்த பகுதிக்குச் செல்லவும்.

HTTPS ஐ அமைக்கிறது

certbot ஐ நிறுவி டொமைன் பெயரை அனுப்பவும் (வடிவமைப்பு 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

அவ்வளவுதான், நான் இந்த கட்டத்தில் நிறுத்தினேன். கொள்கையளவில், முடிவில் நான் திருப்தி அடைகிறேன். ஒருவேளை நான் DigitalOcean இலிருந்து எங்காவது ரஷ்யாவிற்கு நெருக்கமாகவும் மலிவாகவும் மாறுவேன். ஆனால் நான் ஏற்கனவே தளத்தில் உள்ள அனைத்து சரிபார்ப்பு சுற்றுகளையும் கடந்து அங்கு எல்லாவற்றையும் செய்ததால், அவற்றை உதாரணம் மூலம் காட்டினேன். கூடுதலாக, அவர்களின் தொடக்க $100 பயிற்சிக்கு ஒரு சிறந்த ஊக்கமளிக்கும்.

PS ஆசிரியருக்கு சிறப்பு நன்றி இந்த சாராம்சம், இது மேலே உள்ள அனைத்து செயல்களுக்கும் அடிப்படையாக செயல்பட்டது. சில சந்தர்ப்பங்களில் இது Laravel 7 க்கு வேலை செய்யாது, நான் அதை சரிசெய்தேன்.

PPS நீங்கள் பாஷ் கட்டளைகளில் சிந்திக்கும் ஒரு சிறந்த பொறியியலாளராக இருந்தால், தயவு செய்து கடுமையாக தீர்ப்பளிக்க வேண்டாம். இந்தக் கட்டுரை குறைந்த மட்டத்தில் இருப்பதாக நீங்கள் காணலாம், ஆனால் எனக்குத் தேவைப்படும்போது ஒன்றைக் கண்டுபிடித்தால் நான் மகிழ்ச்சியடைவேன். முன்னேற்றத்திற்கான பரிந்துரைகள் இருந்தால், நான் அதற்கு எல்லாம் இருக்கிறேன்.

ஆதாரம்: www.habr.com

கருத்தைச் சேர்