Bir uygulamayı Ubuntu ve Nginx'te Laravel 7'ye dağıtma

Bir uygulamayı Ubuntu ve Nginx'te Laravel 7'ye dağıtma

Portfolyomu Laravel 7 kullanarak yapmaya karar verdim. Böylece ana sayfa bir açılış sayfası olacak ve içindeki tüm bilgiler yönetici paneli kullanılarak değiştirilebilecekti. Konu bu değil. Dağıtıma geldi. Tüm sorunlarıyla birlikte tam teşekküllü bir sunucuda bunun nasıl yapılacağına dair birkaç iyi eğitim buldum. Dağıtım konusunda çok güçlü değilim; genellikle tam yığından daha öndeyim. Ve eğer hala PHP'de yazıp test edebiliyorsam, sunucuyu yönetmeden önce vb. Henüz büyümedim. Ama bunu çözmem gerekiyordu.

Şimdi SSH aracılığıyla lansmandan başlayıp çalışma sitesiyle biten tüm adımları izleyeceğiz. Tüm tuzaklardan kaçınmaya çalışacağız.

Benzer talimatları çevrimiçi olarak da bulabilirsiniz. Sonuçta sonunda buldum. Doğru, tek bir yerde, StackOverflow'un yardımı olmadan ve neredeyse hiç Rusça değil. Acı çektim. Bu yüzden hayatınızı basitleştirmeye karar verdim.

DigitalOcean'da her şeyi bir damlacıkla yapacağız. Bu elbette gerekli değil; herhangi bir barındırma seçeneğini seçin. Ubuntu'da çalışan bir sunucuya ulaştığınızda geri gelin. Hala bunu DigitalOcean'da yapmaya karar verenler için alan adı kurulumuna ilişkin daha fazla ipucu olacak. Ve 100$'lık yönlendirme linki.

DigitalOcean'a özgü tüm adımlar bunun gibi dipnotlarda verilecektir.

Başlayalım.

TL;DR (yalnızca temel komutlar)

Kullanıcı oluştur

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

Buna SSH ekleyin

  • mkdir ~/.ssh
  • chmod 700 ~/.ssh
  • vim ~/.ssh/authorized_keys
  • Genel anahtarı ekleyin
  • chmod 600 ~/.ssh/authorized_keys

Güvenlik duvarı

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

Temel kurulum:

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 için yalnızca HTTP kurulumu:

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 için HTTPS ayarı:

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'da bir damlacık oluşturun ve yeni bir SSH anahtarı kaydedin

DigitalOcean'a nasıl kaydolacağınızı kendi başınıza çözeceğinize gerçekten inanıyorum. Pek çok doğrulama ve diğer şeyler nedeniyle bu kolay değil. Belgeleri kullanarak doğrulama yaparken sürekli bir ağ hatası alıyorsanız, her şeyi bir VPN aracılığıyla yapmayı deneyin, bu yardımcı olacaktır.

Üstteki menüde, oluşturmak->damlacıklar. Seçmek Ubuntu.

Kayıt olduğunuz anda hesabınıza 100$ aktarılacaktır. Ama aldanmayın. Harcamak için yalnızca 60 gününüz var. Ve bu çok az. Siz de benim gibi daha pahalı bir plan kullanmak isteyebilirsiniz, böylece daha sonra gerçek para akmaya başladığında daha ucuz bir plana geçebilirsiniz. Bunun işe yaramayacağını hemen söyleyeceğim. Arttırabilirsiniz ama azaltamazsınız. O zaman o gider. seçerim Standart->$5.

Bize en yakın bölgeyi seçiyorum Frankfurt. VPC Ağı->varsayılan-fra1

Kimlik doğrulamayı hemen SSH üzerinden gerçekleştireceğiz. Tıklamak Yeni SSH Anahtarı. SSH'niz yoksa sağ tarafta çok basit talimatlar var. Bir bash terminali açın ve yapıştırın ssh-keygen. Daha sonra ortak anahtarın bulunduğu dosyaya gidiyoruz /Users/<Ваше имя пользователя>/.ssh/id_rsa.pub (ya da sadece cat ~/.ssh/id_rsa.pub), içeriği kopyalayın ve soldaki pencereye yapıştırın. Herhangi bir isim.

Damlacık için bir ana bilgisayar adı buluyoruz.

Tıklayın Damlacık Oluştur

Yeni bir kullanıcı oluştur

  • ssh root@[IP-адрес вашего дроплета]
  • Bağlanmaya devam etmek istediğinizden emin misiniz (evet/hayır/[parmak izi])? yes
  • SSH şifrenizi girin
  • Kullanıcı oluştur Laravel: adduser laravel
  • Şifrenizi ve diğer bilgilerinizi girin (Sadece Ad Soyadını giriyorum)
  • Kullanıcıyı sudo grubuna ekleyin: usermod -aG sudo laravel

Yeni kullanıcı için SSH

  • Yeni kullanıcıya geçin: su laravel

Yazının sonuna kadar tüm işlemleri laravel kullanıcısı adına gerçekleştiriyoruz. Bu nedenle, aniden kesintiye uğrarsanız yeniden giriş yapın ve girin su laravel

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

Dosyayı Vim'de açtık. Eğer hiç aşina değilseniz Nano'da çalışabilirsiniz, hakkınız.

En temel Vim komutları

Vim editörünü makale boyunca kullanabilmek için aşağıdakileri bilmeniz yeterlidir.

  • Vim'in farklı modları vardır: Komutları girdiğiniz ve modları ve diğerlerini seçtiğiniz Normal mod.
  • Herhangi bir moddan çıkmak ve normal moda dönmek için tuşuna basmanız yeterlidir. Esc
  • Hareket edin: sadece okları kullanabilirsiniz
  • Kayıt etmeden çık <Normal mode>: :q!
  • Çık ve kaydet <Normal mode>: :wq
  • Metin giriş moduna geç <Normal mode>: i (İngilizceden. eklemek)
  • Genel anahtarımızı giriyoruz (bunu yukarıda yaptık)
  • Değişikliklere karşı koruyoruz: chmod 600 ~/.ssh/authorized_keys

Güvenlik duvarı yükleme

  • Mevcut tüm ayarlara bakalım: sudo ufw app list
  • OpenSSH'ye izin verin (aksi takdirde bizi kilitler): sudo ufw allow OpenSSH
  • Güvenlik duvarını başlatalım: sudo ufw enable, y
  • Kontrol ediyoruz: sudo ufw status

Status: active

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

Her şey yolunda.

Nginx'i yükleme

Kurulum sırasında bazen "Emin misiniz?" diye sorulacaktır. Cevap y (peki, yalnızca eminseniz).

  • sudo apt update
  • sudo apt install nginx

Güvenlik duvarı ayarlarına Nginx ekleme

  • 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'nize gidin. Her şey yolunda giderse aşağıdakileri görmelisiniz.

Bir uygulamayı Ubuntu ve Nginx'te Laravel 7'ye dağıtma

MySQL'i yükleme

  • sudo apt install mysql-server
  • Otomatik koruma komut dosyası başlatma sudo mysql_secure_installation

Sorulan soruları cevaplayın. Neyi yanıtlayacağınızı bilmiyorsanız önerilen seçeneklerden bazıları şunlardır:

  • Şifre eklentisini doğrula - N

  • Anonim kullanıcılar kaldırılsın mı? — Y

  • Uzaktan root girişine izin verilsin mi? — N

  • Test veritabanı kaldırılsın ve ona erişim sağlansın mı? — N

  • Ayrıcalık tabloları şimdi yeniden yüklensin mi? — Y

  • MySQL'e gidelim: sudo mysql

  • Erişim yöntemlerine bakalım: SELECT user,authentication_string,plugin,host FROM mysql.user;

  • Kök için bir şifre belirleyin: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<Ваш пароль для MySQL>';

  • Erişim yöntemlerine tekrar bakalım: SELECT user,authentication_string,plugin,host FROM mysql.user;

  • Değişiklikleri uygulayın ve MySQL'den çıkın: FLUSH PRIVILEGES; и exit

  • Şimdi MySQL'e giriş yapmak için kullanmanız gerekir mysql -u root -p ve şifreyi girin

PHP yükleniyor

Şuradan bir üçüncü taraf deposu kullanalım: Ondřej 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

Şimdi seçelim. Laravel 7 için PHP 7.3 veya 7.4'ü seçebilirsiniz. Tek fark 3 ve 4 numaralarında olacaktır.

  • 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), PHP istekleriyle çalışır. mysql, elbette, MySQL ile çalışmak için.

Artık her şeyi 7.4'te yapacağım.

Nginx'i ayarlama

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

"<Alanınız>" yerine alan adını girin (örneğin, mysite.ru) gelecekte kullanmak istediğiniz Henüz bir alan adınız yoksa, bir tane yazın ve alan adınızı seçtiğinizde bu bölümdeki adımları tekrarlayın.

Aşağıdakileri girin:

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

Bunun yerine 7.3 sürümünü seçtiyseniz php7.4-fpm.sock yazmak php7.4-fpm.sock.

80 numaralı bağlantı noktasını dinleyin server_nameroot isteğine geldiğimizde /var/www/html indeks dosyasını alın. Eğer sonra server_name Bir şey var, böyle bir dosya arıyoruz. Eğer bulamazsak 404’ü atıyoruz. Eğer bitiyorsa XNUMX’ü atıyoruz. .php, hızlıca gözden geçirme fpm. Eğer varsa .ht, yasakla (403).

  • Şuradan bağlantı oluşturma sites-available в sites-enabled: sudo ln -s /etc/nginx/sites-available/<Ваш домен> /etc/nginx/sites-enabled/
  • Bağlantının kaldırılması default: sudo unlink /etc/nginx/sites-enabled/default
  • Hataların kontrol edilmesi: sudo nginx -t
  • Yeniden başlat: sudo systemctl reload nginx

İşin kontrol edilmesi:

  • sudo vim /var/www/html/info.php
  • Biz yazarız: <?php phpinfo();
  • Hadi gidelim <Ваш IP>/info.php

Bunun gibi bir şey görmelisiniz:

Bir uygulamayı Ubuntu ve Nginx'te Laravel 7'ye dağıtma

Artık bu dosya silinebilir: sudo rm /var/www/html/info.php

Laravel'i yükleyin

  • 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'e gidelim: mysql -u root -p

  • Adıyla bir veritabanı oluşturun Laravel: CREATE DATABASE laravel DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

  • Root erişimi sağlıyoruz Laravel: GRANT ALL ON laravel.* TO 'root'@'localhost' IDENTIFIED BY '<Ваш пароль от MySQL>';

  • FLUSH PRIVILEGES;

  • exit

  • cd /var/www/html

  • Proje için bir klasör oluşturun: sudo mkdir -p <Имя проекта>

  • Kullanıcıya sağlıyoruz Laravel proje hakları: sudo chown laravel:laravel <Имя проекта>

Daha sonra projeyi aktarmanız gerekir. Örneğin Github'dan klonlama.

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

Statik dosyaları kaydetmediyseniz (örneğin, /public) Github'da, o zaman doğal olarak bunlara sahip olmayacaksınız. Örneğin, bunu çözmek için ayrı bir konu oluşturdum deploy, buradan zaten klonladım: git clone -b <имя ветки> --single-branch <ссылка на проект> ..

  • Bağımlılıkları yükleme: composer install
  • .env'yi oluşturun: vim .env

Bunun temel versiyonu şöyle görünür:

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 dosyanızı kopyalarsanız, APP_ENV'yi üretimle, APP_DEBUG'ı false ile değiştirin ve MySQL için doğru ayarları girin.

  • Veritabanını taşıma: php artisan migrate
  • Kodun oluşturulması: php artisan key:generate

İzinleri değiştirme:

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

Geriye kalan son şey Laravel için Nginx'i yeniden yapılandırmak:

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

Geçen seferki gibi, bunun yerine 7.3 sürümünü seçtiyseniz php7.4-fpm.sock yazmak php7.4-fpm.sock.

DigitalOcean'da alan adı kurma

Aslında her şey çok basit. Bir alan adı satın alırsınız (herhangi bir yerden), şu adreste DigitalOcean'a geçersiniz: oluşturmak->Etki alanları/DNS... alanında Alan ekle bu alana girip ekleye tıklıyorsunuz. Daha sonra alan adı ayarlarına ve alana gidin HOST ADI girmek @. Bir proje seçin ve tıklayın Kayıt oluştur.
Şimdi alan adını satın aldığınız siteye gidin, orada “DNS Sunucularını” (veya benzer bir şeyi) bulun ve DigitalOcean sunucularına girin (yani ns1.digitalocean.com, ns2.digitalocean.com, ns3.digitalocean.com). Artık bu ayarlar kabul edilene kadar biraz (veya çok) beklemeniz gerekiyor. Hazır!
Tek sorun sitenizin sadece HTTP olarak açılmasıdır. HTTPS'ye sahip olmak için bir sonraki bölüme geçin.

HTTPS'yi ayarlama

Certbot'u yükleyin ve alan adını (biçim) iletin mysite.ru) ve www ( ile alan adı)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.<Ваш домен>

Şimdi Nginx'i yeniden yapılandırmanız gerekiyor (değerlerinizi değiştirmeyi unutmayın):

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

Sanırım PHP 7.3 için nelerin değiştirilmesi gerektiğini zaten anladınız.

Burada aslında her şey basit. Tüm istekleri HTTP'den (port 80) HTTPS'ye (port 443) yönlendiriyoruz. Ve orada her şeyi eskisi gibi yapıyoruz, ancak şifrelemeyle.

Geriye kalan tek şey güvenlik duvarındaki izinleri ayarlamaktır:

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

Artık her şey olması gerektiği gibi çalışmalı.

[Gelişmiş] Node.js'yi Yükleme

Aniden npm komutlarını doğrudan sunucuda çalıştırmanız gerekirse, Node.js'yi yüklemeniz gerekir.

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

İşte bu aşamada durdum. Prensip olarak sonuçtan memnunum. Belki DigitalOcean'dan Rusya'ya daha yakın ve daha ucuz bir yere geçiş yapacağım. Ancak sitedeki tüm doğrulama turlarından zaten geçtiğim ve her şeyi orada yaptığım için onlara örnek olarak gösterdim. Ek olarak, başlangıç ​​100$'ı eğitim için mükemmel bir sıçrama tahtasıdır.

PS Yazara özel teşekkürler bu özetYukarıdaki eylemlerin tümüne temel teşkil eden. Bazı durumlarda Laravel 7'de çalışmıyor, düzelttim.

PPS Bash komutlarıyla düşünen üst düzey bir mühendisseniz lütfen sert bir şekilde yargılamayın. Bu makaleyi düşük düzeyde bulabilirsiniz, ancak ihtiyacım olduğunda bir tane bulmaktan memnuniyet duyardım. İyileştirme önerileri varsa, ben de buna varım.

Kaynak: habr.com

Yorum ekle