
تصمیم گرفتم نمونهکارهایم را با استفاده از لاراول ۷ بسازم. میخواستم صفحه اصلی یک صفحه فرود باشد و تمام اطلاعات روی آن از طریق پنل مدیریت قابل ویرایش باشد. مسئلهی مهمی نبود. وقت استقرار بود. چند آموزش خوب در مورد نحوهی انجام این کار روی یک سرور کامل، با تمام پیچیدگیهایش، پیدا کردم. من در استقرار خیلی قوی نیستم؛ من بیشتر یک توسعهدهندهی front-end هستم تا یک توسعهدهندهی full-stack. و در حالی که میتوانم PHP بنویسم و تست کنم، اما کاملاً از پس مدیریت سرور و موارد مشابه برنمیآیم. اما باید این را کشف میکردم.
حالا تمام مراحل را بررسی خواهیم کرد، از راهاندازی از طریق SSH تا داشتن یک وبسایت فعال. سعی خواهیم کرد از همه مشکلات اجتناب کنیم.
شاید بتوانید دستورالعملهای مشابهی را بهصورت آنلاین پیدا کنید. من که پیدا کردم. درست است، همه چیز یکجا نبود، به کمک StackOverflow نیاز داشت و بعید است که به زبان روسی باشد. این یک چالش بود. بنابراین تصمیم گرفتم کار را برای شما آسانتر کنم.
ما همه کارها را با یک سرور مجازی در DigitalOcean انجام خواهیم داد. البته این اختیاری است؛ میتوانید هر میزبانی را انتخاب کنید. شما به سرور فعال از طریق ... خواهید رسید. Ubuntu، برگردید. برای کسانی که هنوز تصمیم به استفاده از DigitalOcean دارند، نکات بیشتری در مورد تنظیم دامنه وجود خواهد داشت. و همچنین .
تمام مراحل خاص DigitalOcean در پاورقیهایی مانند این موارد ارائه خواهد شد.
بیا شروع کنیم.
TL;DR (فقط دستورات پایه)
یک کاربر ایجاد کنید
ssh root@[IP-адрес вашего дроплета]adduser laravelusermod -aG sudo laravelsu laravel
بیایید SSH را به آن اضافه کنیم
mkdir ~/.sshchmod 700 ~/.sshvim ~/.ssh/authorized_keys- کلید عمومی را وارد کنید
chmod 600 ~/.ssh/authorized_keys
فایروال
sudo ufw allow OpenSSHsudo ufw enablesudo ufw status
Nginx
sudo apt updatesudo apt install -y nginxsudo ufw allow 'Nginx HTTP'sudo ufw status
خروجی
sudo apt install -y mysql-serversudo mysql_secure_installation,NYNNYsudo mysqlALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<Ваш пароль для MySQL>';SELECT user,authentication_string,plugin,host FROM mysql.user;FLUSH PRIVILEGES;exit
پی اچ پی
sudo apt updatesudo apt install -y curl wget gnupg2 ca-certificates lsb-release apt-transport-httpssudo apt-add-repository ppa:ondrej/phpsudo apt update7.3:
sudo apt install -y php7.3-fpm php7.3-mysql7.4:
sudo apt install -y php7.4-fpm php7.4-mysqlsudo 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;
}
}تنظیمات فقط 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;
}
}تنظیمات 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/defaultsudo nginx -tsudo systemctl reload nginx
فریم ورک Laravel
7.3:
sudo apt install -y php7.3-mbstring php7.3-xml composer unzip7.4:
sudo apt install -y php7.4-mbstring php7.4-xml composer unzipmysql -u root -pCREATE DATABASE laravel DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;GRANT ALL ON laravel.* TO 'root'@'localhost' IDENTIFIED BY '<Ваш пароль от MySQL>';FLUSH PRIVILEGES;exitcd /var/www/htmlsudo mkdir -p <Имя проекта>sudo chown laravel:laravel <Имя проекта>cd ./<Имя проекта>git clone <ссылка на проект> ./git clone -b <имя ветки> --single-branch <ссылка на проект> .composer installvim .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 migratephp artisan key:generatesudo chown -R $USER:www-data storagesudo chown -R $USER:www-data bootstrap/cachechmod -R 775 storagechmod -R 775 bootstrap/cache
HTTPS
sudo add-apt-repository ppa:certbot/certbotsudo apt install -y python-certbot-nginxsudo certbot certonly --webroot --webroot-path=/var/www/html/<Имя проекта>/public -d <Ваш домен> -d www.<Ваш домен>sudo nginx -tsudo ufw allow 'Nginx HTTPS'sudo ufw statussudo systemctl reload nginx
یک سرور در DigitalOcean ایجاد کنید و یک کلید SSH جدید ثبت کنید
من صمیمانه معتقدم که خودتان میتوانید نحوه ثبت نام در DigitalOcean را پیدا کنید. این کار پیچیده است، با کلی مراحل تأیید و موارد بیمعنی دیگر. اگر هنگام تأیید اسناد، مدام با خطاهای شبکه مواجه میشوید، سعی کنید از VPN استفاده کنید؛ این باید کمک کند.
در منوی بالا، کلیک کنید ساختن->قطره... ما انتخاب میکنیم Ubuntu.
به محض ثبت نام، ۱۰۰ دلار به حسابتان واریز میشود. اما زیاد ذوقزده نشوید. فقط ۶۰ روز فرصت دارید تا آن را خرج کنید. و این خیلی کم است. شاید مثل من بخواهید از یک طرح گرانتر استفاده کنید تا بعداً، وقتی پول واقعی شروع به ورود کرد، بتوانید به یک طرح ارزانتر تغییر دهید. همین الان به شما میگویم، این امکانپذیر نیست. میتوانید آن را افزایش دهید، اما نمیتوانید آن را کاهش دهید. این روشی است که من انتخاب میکنم. استاندارد->$5.
من نزدیکترین منطقه به خودمان را انتخاب میکنم. فرانکفورت. شبکه VPC->پیشفرض-fra1
ما مستقیماً از طریق SSH احراز هویت خواهیم کرد. کلیک کنید کلید SSH جدیداگر SSH ندارید، یک دستورالعمل بسیار ساده در سمت راست وجود دارد. یک ترمینال bash باز کنید، دستور زیر را پیست کنید.
ssh-keygenسپس به سراغ فایل حاوی کلید عمومی میرویم./Users/<Ваше имя пользователя>/.ssh/id_rsa.pub(یا به سادگیcat ~/.ssh/id_rsa.pub) ، محتویات را کپی کرده و در پنجره سمت چپ جایگذاری کنید. نام آن هر چیزی است که میخواهید.بیایید یک نام میزبان برای قطره (droplet) انتخاب کنیم.
فشار ایجاد قطره
ایجاد یک کاربر جدید
ssh root@[IP-адрес вашего дроплета]- آیا مطمئن هستید که میخواهید اتصال را ادامه دهید (بله/خیر/[اثر انگشت])؟
yes - رمز عبور SSH خود را وارد کنید
- یک کاربر ایجاد کنید لاراول:
adduser laravel - رمز عبور و سایر اطلاعات خود را وارد کنید (من فقط نام کامل خود را وارد میکنم)
- کاربر را به گروه sudo اضافه کنید:
usermod -aG sudo laravel
SSH برای یک کاربر جدید
- انتقال به یک کاربر جدید:
su laravel
تمام اقدامات بعدی، برای ادامه مقاله، به عنوان کاربر لاراول انجام خواهد شد. بنابراین، اگر وقفهای در کار شما ایجاد شد، دوباره وارد سیستم شوید و وارد شوید su laravel
mkdir ~/.sshchmod 700 ~/.sshvim ~/.ssh/authorized_keys
ما فایل را در Vim باز کردهایم. اگر اصلاً با آن آشنا نیستید، میتوانید از Nano استفاده کنید، حق با شماست..
اساسیترین دستورات 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 updatesudo apt install nginx
افزودن Nginx به تنظیمات فایروال
sudo ufw app listsudo 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 خود بروید. اگر همه چیز خوب پیش برود، باید موارد زیر را ببینید.

نصب 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;برای root رمز عبور تعیین کنید:
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و رمز عبور را وارد کنید
نصب پی اچ پی
بیایید از یک مخزن شخص ثالث از ... استفاده کنیم
sudo apt updatesudo apt install -y curl wget gnupg2 ca-certificates lsb-release apt-transport-httpssudo apt-add-repository ppa:ondrej/phpsudo apt update
حالا بیایید انتخاب کنیم. برای لاراول ۷، میتوانید PHP 7.3 یا ۷.۴ را انتخاب کنید. تنها تفاوت در اعداد ۳ و ۴ خواهد بود.
- 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 را مدیریت میکند. البته MySQL کوئریهای MySQL را مدیریت میکند.
از این به بعد همه کارها رو با ۷.۴ انجام میدم.
پیکربندی Nginx
sudo vim /etc/nginx/sites-available/<Ваш домен>
به جای "<Your domain>" دامنه خود را قرار دهید (مثلاً 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;
}
}اگر نسخه ۷.۳ را انتخاب کردهاید php7.4-fpm.sock وارد شوید php7.4-fpm.sock.
به پورت ۸۰ گوش دهید server_nameوقتی درخواستی را در ریشه دریافت میکنیم /var/www/html فایل ایندکس را میگیریم. اگر بعد از server_name چیزی آنجا هست، ما دنبال چنین فایلی میگردیم. اگر آن را پیدا نکنیم، خطای ۴۰۴ میدهیم. اگر به ... ختم شود .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
شما باید چیزی شبیه به این را ببینید:

حالا این فایل قابل حذف است: sudo rm /var/www/html/info.php
نصب لاراول
7.3:
sudo apt install php7.3-mbstring php7.3-xml composer unzip7.4:
sudo apt install php7.4-mbstring php7.4-xml composer unzipبریم سراغ MySQL:
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;exitcd /var/www/htmlایجاد پوشه برای پروژه:
sudo mkdir -p <Имя проекта>در اختیار کاربر قرار میدهیم لاراول حقوق پروژه:
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 را با production و APP_DEBUG را با false جایگزین کنید و تنظیمات صحیح را برای MySQL وارد کنید.
- انتقال پایگاه داده:
php artisan migrate - تولید کد:
php artisan key:generate
تغییر مجوزها:
sudo chown -R $USER:www-data storagesudo chown -R $USER:www-data bootstrap/cachechmod -R 775 storagechmod -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;
}
}درست مثل دفعه قبل، اگر به جای آن نسخه ۷.۳ را انتخاب کرده باشید php7.4-fpm.sock وارد شوید php7.4-fpm.sock.
راه اندازی دامنه در DigitalOcean
همه چیز واقعاً ساده است. شما یک دامنه (از هر جایی) میخرید، به DigitalOcean در ... منتقل میشوید. ساختن->دامنهها/DNSبه در زمینه اضافه کردن دامنه شما این دامنه را وارد کنید، روی افزودن کلیک کنید. سپس به تنظیمات دامنه بروید و در فیلد نام خانوادگی وارد می شوید @پروژه را انتخاب کنید و کلیک کنید ایجاد یک رکورد.
حالا به وبسایتی که دامنه را از آن خریداری کردهاید بروید، عبارت "DNS Servers" (یا چیزی شبیه به آن) را در آنجا پیدا کنید و سرورهای DigitalOcean (یعنی ...) را وارد کنید.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/certbotsudo apt install python-certbot-nginxsudo 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 (پورت ۸۰) به HTTPS (پورت ۴۴۳) هدایت میکنیم. سپس همان کار قبلی را انجام میدهیم، اما با رمزگذاری.
تنها کاری که باقی مانده تنظیم مجوزها در فایروال است:
sudo nginx -tsudo ufw app listsudo ufw allow 'Nginx HTTPS'sudo ufw statussudo systemctl reload nginx
حالا همه چیز باید همانطور که باید کار کند.
[اختیاری] نصب Node.js
اگر ناگهان نیاز پیدا کردید که دستورات npm را مستقیماً روی سرور اجرا کنید، باید Node.js را نصب کنید.
sudo apt updatesudo apt install -y nodejs npmnodejs -v
همین، من اینجا متوقف شدم. من اساساً از نتیجه راضی هستم. ممکن است از DigitalOcean به جایی نزدیکتر به روسیه و ارزانتر نقل مکان کنم. اما از آنجایی که من قبلاً تمام مراحل تأیید را در وبسایت طی کردهام و همه کارها را آنجا انجام دادهام، از مثال آنها استفاده کردم. علاوه بر این، مبلغ اولیه ۱۰۰ دلار آنها نقطه شروع بسیار خوبی است.
پینوشت: تشکر ویژه از نویسنده که به عنوان پایه و اساس تمام مراحل فوق عمل کرد. این کد از بعضی جهات در لاراول ۷ کار نمیکند، اما من آن را اصلاح کردهام.
پینوشت: اگر شما یک مهندس سطح بالا هستید که با دستورات bash فکر میکنید، لطفاً خیلی سختگیرانه در مورد من قضاوت نکنید. ممکن است این مقاله کمی بیکیفیت به نظر برسد، اما خوشحال میشوم وقتی به آن نیاز داشتم، یکی مثل این را پیدا کنم. اگر پیشنهادی برای بهبود دارید، کاملاً موافقم.
منبع: www.habr.com
