برنامه نویسی

استقرار پشته LAMP لاراول: راه اندازی خودکار با اسکریپت Bash در سرور اوبونتو

Summarize this content to 400 words in Persian Lang

مقدمه

Automating Deployment of a Laravel LAMP Stack Application using Bash Script یک روش کارآمد برای استقرار برنامه های کاربردی وب ساخته شده با لاراول، یک چارچوب محبوب PHP که به دلیل نحو زیبا و ویژگی های قدرتمندش شناخته شده است، معرفی می کند.

در این مقاله ما به بررسی خودکار استقرار یک برنامه وب مبتنی بر لاراول در a LAMP (Linux, Apache, MySQL, PHP) پشته با استفاده از Bash Scripting. با خودکارسازی این فرآیند، می‌توانیم از ثبات، کاهش خطاهای دستی و سرعت بخشیدن به زمان‌های استقرار اطمینان حاصل کنیم. خواه توسعه‌دهنده‌ای باشید که هدف آن ساده‌سازی استقرار است یا مهندس عملیاتی که به دنبال ساده‌سازی فرآیندها است، این راهنما شما را در مراحل خودکارسازی موثر استقرار پشته Laravel LAMP راهنمایی می‌کند.

پیش نیازها

سرور اوبونتو: مطمئن شوید که یک نمونه سرور اوبونتو راه‌اندازی و در دسترس دارید.
دسترسی به SSH: مطمئن شوید که می توانید SSH را به سرور اوبونتو وارد کنید.
دستورات پایه لینوکس: آشنایی با دستورات پایه لینوکس و ترمینال.

فهرست مطالب

مقدمه
پیش نیازها
اسکریپت Bash چیست؟
نصب خودکار لاراول LAMP Stack
استقرار برنامه لاراول
نتیجه گیری

اسکریپت Bash چیست؟

اسکریپت Bash یک فایل متنی حاوی یک سری دستورات است که توسط پوسته Bash (Bourne Again SHell) که مفسر خط فرمان پیش‌فرض برای سیستم‌های عامل یونیکس مانند لینوکس و macOS است، اجرا می‌شود. اسکریپت های Bash معمولاً برای خودکارسازی وظایف تکراری، مدیریت سیستم و عملیات پیچیده خط فرمان استفاده می شوند. آنها را می توان مستقیماً از خط فرمان اجرا کرد یا برنامه ریزی کرد تا در زمان های خاص با استفاده از cron job یا سایر ابزارهای زمان بندی اجرا شوند.

نصب خودکار لاراول LAMP Stack

مرحله 1: یک فایل اسکریپت ایجاد کنید laravel.sh و آن را اجرایی کنید.

touch laravel_app.sh && chmod +x laravel_app.sh

استفاده خواهیم کرد vim به عنوان ویرایشگر متن ما، اما اگر با آن آشنایی دارید، می توانید از نانو استفاده کنید

مرحله ۲: فایل را در یک ویرایشگر متن باز کنید و “i” را فشار دهید تا وارد حالت درج شوید.

vim laravel_app.sh

مرحله 3: بیایید ابتدا با اعلام شبانگ خود شروع به نوشتن فیلمنامه کنیم.

#!/bin/bash

اسکریپت ما به توابع برای رسیدگی به وظایف مختلف تقسیم می شود. شما می توانید عملکرد خود را به دو صورت اعلام کنید

function setup() {

}

setup() {

}

و از الف تشکیل شده است

اعلام عملکرد – “عملکرد” ​​(اختیاری)

نام تابع – “تنظیم”

پارامترهای تابع – “( )” اختیاری است

بلوک کد – “{}”

پارامتر تابع می تواند خالی باشد به این معنی که تابع هیچ آرگومانی نمی گیرد

یک تابع اجرا نمی شود مگر اینکه فراخوانی شود. برای فراخوانی یک تابع کافی است نام تابع را تایپ کنید (setup)

setup

مرحله 4: ما به راهی برای پیگیری خطی که اسکریپت ما در حال اجرا است نیاز داریم، بنابراین اجازه دهید خروجی فرمان echo را دستکاری کنیم تا هنگام اجرای اسکریپت، آن را تعاملی کنیم. تابعی بنویسید که رنگ خروجی اکو ما را تغییر دهد.

# تابع نمایش پیام ها در تابع طلایی gold_echo() { echo -e “\e[38;5;220m$@\e[0m”
}

Step 5: Write a function that installs the lamp stack (Apache, MySQL and PHP).

function install_lamp() {
# Install PHP
gold_echo “———————update php repository———————–”

sudo apt update
sudo add-apt-repository ppa:ondrej/php -y

gold_echo “———————–Installing Php8.2—————————————–”
sudo apt install php8.2 -y

gold_echo “————————————-Installing php dependencies—————————-”

sudo apt install php8.2-curl php8.2-dom php8.2-mbstring php8.2-xml php8.2-mysql zip unzip -y

gold_echo “————————– php done ———————————-”

#Install Apache web server

gold_echo “—————————-Installing Apache————————————————–”

sudo apt install apache2 -y
sudo apt update
sudo systemctl restart apache2

#Install Mysql-server

gold_echo “————————————Installing mysql-server———————————————-”

sudo apt install mysql-server -y
}

Check if there are other PHP extensions that are not currently present in your server.

php -m

Laravel PHP extensions requirements:

✅ Ctype PHP Extension
❌ cURL PHP Extension
❌ DOM PHP Extension
✅ Fileinfo PHP Extension
✅ Filter PHP Extension
✅ Hash PHP Extension
❌ Mbstring PHP Extension
✅ OpenSSL PHP Extension
✅ PCRE PHP Extension
✅ PDO PHP Extension
✅ Session PHP Extension
✅ Tokenizer PHP Extension
❌ XML PHP Extension

The items marked in red were not currently present on my server, so I’ll be install them.

sudo apt install php8.2-curl php8.2-dom php8.2-mbstring php8.2-xml php8.2-mysql zip unzip -y

We also need to install zip and unzip which will be needed later by composer

Step 6: Write a function to install and setup composer

function composer_setup() {
cd ~

if [ -d “$HOME/composer” ]; سپس gold_echo “————————————– فهرست آهنگساز موجود است—— ————————————–” else mkdir composer cd composer gold_echo “—- —————دایرکتوری با موفقیت ایجاد شد——————————– ” curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer gold_echo “——————- آهنگساز با موفقیت اضافه شد———— ————-” fi }

مرحله 7: تابعی بنویسید که برنامه لاراول را شبیه سازی و راه اندازی کند

function setup_laravel_app() {
cd /var/www/

sudo rm -r ./*
sudo git clone https://github.com/laravel/laravel
sudo chown -R $USER:$USER laravel
cd laravel
#Install dependencies using composer
composer install
cp .env.example .env
php artisan key:generate
sudo chown -R www-data bootstrap/cache
sudo chown -R www-data storage

}

مخزن GitHub به برنامه لاراول

مرحله 8: تابعی بنویسید که MySQL Server را پیکربندی کند (ایجاد پایگاه داده و کاربر)

function conf_mysql() {
cd /var/www/laravel

gold_echo “————-Setup mysql database and user——————————–”

# Configure MySQL database
sudo mysql -uroot -e “CREATE DATABASE laravel_db;”
sudo mysql -uroot -e “CREATE USER ‘laravel_user’@’localhost’ IDENTIFIED BY ‘000000’;”
sudo mysql -uroot -e “GRANT ALL PRIVILEGES ON laravel_db.* TO ‘laravel_user’@’localhost’;”
sudo mysql -uroot -e “FLUSH PRIVILEGES;”

gold_echo “—————–Done with database setup————–”
gold_echo “——————Editing .env file——————–”

sed -i ‘s/DB_CONNECTION=sqlite/DB_CONNECTION=mysql/’ .env
sed -i ‘s/# DB_HOST=127.0.0.1/DB_HOSTS=127.0.0.1/’ .env
sed -i ‘s/# DB_PORT=3306/DB_PORT=3306/’ .env
sed -i ‘s/# DB_DATABASE=laravel/DB_DATABASE=laravel_db/’ .env
sed -i ‘s/# DB_USERNAME=root/DB_USERNAME=laravel_user/’ .env
sed -i ‘s/# DB_PASSWORD=/DB_PASSWORD=000000/’ .env

gold_echo “——-Migrating database——–”

php artisan migrate

}

نام کاربری: laravel_user

نام پایگاه داده:laravel_db

رمز عبور:000000

مرحله 9:یک تابع بنویسید تا یک میزبان مجازی آپاچی جدید ایجاد کند تا برنامه جدید لاراول ما را نشان دهد.

function apache_conf() {
#Setup Virtual host for app
cd ~
sudo tee /etc/apache2/sites-available/laravel.conf <<EOF
<VirtualHost *:80 *:3000>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/laravel/public/

<Directory /var/www/laravel/public/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
EOF

cd ~
sudo a2dissite 000-default.conf
sudo a2enmod rewrite
sudo a2ensite laravel.conf
sudo systemctl restart apache2
}

مرحله 10:تابعی بنویسید تا توابع ما را فراخوانی کند

#Functions

function main() {
install_lamp
composer_setup
setup_laravel_app
conf_mysql
apache_conf
}

#Execute All Functions
main

ذخیره و خارج شوید

کلید ESC را فشار دهید
دو نقطه wq (:wq)
وارد کنید

استقرار برنامه لاراول

اجرای اسکریپت

./laravel_app.sh

خروجی:

نتیجه گیری

این راهنما یک رویکرد گام به گام برای خودکارسازی استقرار یک برنامه پشته LAMP لاراول با استفاده از اسکریپت Bash در سرور اوبونتو ارائه کرده است. با خودکارسازی این فرآیندها، توسعه دهندگان و مهندسان عملیات می توانند از ثبات، کاهش خطاها و تسریع زمان استقرار اطمینان حاصل کنند که منجر به یک محیط برنامه کاربردی کارآمدتر و کارآمدتر می شود.

مقدمه

Automating Deployment of a Laravel LAMP Stack Application using Bash Script یک روش کارآمد برای استقرار برنامه های کاربردی وب ساخته شده با لاراول، یک چارچوب محبوب PHP که به دلیل نحو زیبا و ویژگی های قدرتمندش شناخته شده است، معرفی می کند.

در این مقاله ما به بررسی خودکار استقرار یک برنامه وب مبتنی بر لاراول در a LAMP (Linux, Apache, MySQL, PHP) پشته با استفاده از Bash Scripting. با خودکارسازی این فرآیند، می‌توانیم از ثبات، کاهش خطاهای دستی و سرعت بخشیدن به زمان‌های استقرار اطمینان حاصل کنیم. خواه توسعه‌دهنده‌ای باشید که هدف آن ساده‌سازی استقرار است یا مهندس عملیاتی که به دنبال ساده‌سازی فرآیندها است، این راهنما شما را در مراحل خودکارسازی موثر استقرار پشته Laravel LAMP راهنمایی می‌کند.

پیش نیازها

  1. سرور اوبونتو: مطمئن شوید که یک نمونه سرور اوبونتو راه‌اندازی و در دسترس دارید.
  2. دسترسی به SSH: مطمئن شوید که می توانید SSH را به سرور اوبونتو وارد کنید.
  3. دستورات پایه لینوکس: آشنایی با دستورات پایه لینوکس و ترمینال.

فهرست مطالب

  • مقدمه
  • پیش نیازها
  • اسکریپت Bash چیست؟
  • نصب خودکار لاراول LAMP Stack
  • استقرار برنامه لاراول
  • نتیجه گیری

اسکریپت Bash چیست؟

اسکریپت Bash یک فایل متنی حاوی یک سری دستورات است که توسط پوسته Bash (Bourne Again SHell) که مفسر خط فرمان پیش‌فرض برای سیستم‌های عامل یونیکس مانند لینوکس و macOS است، اجرا می‌شود. اسکریپت های Bash معمولاً برای خودکارسازی وظایف تکراری، مدیریت سیستم و عملیات پیچیده خط فرمان استفاده می شوند. آنها را می توان مستقیماً از خط فرمان اجرا کرد یا برنامه ریزی کرد تا در زمان های خاص با استفاده از cron job یا سایر ابزارهای زمان بندی اجرا شوند.

نصب خودکار لاراول LAMP Stack

مرحله 1: یک فایل اسکریپت ایجاد کنید laravel.sh و آن را اجرایی کنید.

touch laravel_app.sh && chmod +x laravel_app.sh

استفاده خواهیم کرد vim به عنوان ویرایشگر متن ما، اما اگر با آن آشنایی دارید، می توانید از نانو استفاده کنید

مرحله ۲: فایل را در یک ویرایشگر متن باز کنید و “i” را فشار دهید تا وارد حالت درج شوید.

vim laravel_app.sh 

مرحله 3: بیایید ابتدا با اعلام شبانگ خود شروع به نوشتن فیلمنامه کنیم.

#!/bin/bash

اسکریپت ما به توابع برای رسیدگی به وظایف مختلف تقسیم می شود. شما می توانید عملکرد خود را به دو صورت اعلام کنید

function setup() {

}
setup() {

}

و از الف تشکیل شده است

اعلام عملکرد – “عملکرد” ​​(اختیاری)

نام تابع – “تنظیم”

پارامترهای تابع – “( )” اختیاری است

بلوک کد – “{}”

  • پارامتر تابع می تواند خالی باشد به این معنی که تابع هیچ آرگومانی نمی گیرد

یک تابع اجرا نمی شود مگر اینکه فراخوانی شود. برای فراخوانی یک تابع کافی است نام تابع را تایپ کنید (setup)

setup

مرحله 4: ما به راهی برای پیگیری خطی که اسکریپت ما در حال اجرا است نیاز داریم، بنابراین اجازه دهید خروجی فرمان echo را دستکاری کنیم تا هنگام اجرای اسکریپت، آن را تعاملی کنیم. تابعی بنویسید که رنگ خروجی اکو ما را تغییر دهد.

# تابع نمایش پیام ها در تابع طلایی gold_echo() { echo -e "\e[38;5;220m$@\e[0m"
}

Step 5: Write a function that installs the lamp stack (Apache, MySQL and PHP).

function install_lamp() {
# Install PHP
gold_echo "---------------------update php repository-----------------------"

 sudo apt update
 sudo add-apt-repository ppa:ondrej/php -y

gold_echo "-----------------------Installing Php8.2-----------------------------------------"
 sudo apt install php8.2 -y

gold_echo "-------------------------------------Installing php dependencies----------------------------"

 sudo apt install php8.2-curl php8.2-dom php8.2-mbstring php8.2-xml php8.2-mysql zip unzip -y

gold_echo "-------------------------- php done ----------------------------------"

#Install Apache web server

gold_echo "----------------------------Installing Apache--------------------------------------------------"

 sudo apt install apache2 -y
 sudo apt update
 sudo systemctl restart apache2

#Install Mysql-server

gold_echo "------------------------------------Installing mysql-server----------------------------------------------"

 sudo apt install mysql-server -y
}

Check if there are other PHP extensions that are not currently present in your server.

php -m

Laravel PHP extensions requirements:

✅ Ctype PHP Extension
❌ cURL PHP Extension
❌ DOM PHP Extension
✅ Fileinfo PHP Extension
✅ Filter PHP Extension
✅ Hash PHP Extension
❌ Mbstring PHP Extension
✅ OpenSSL PHP Extension
✅ PCRE PHP Extension
✅ PDO PHP Extension
✅ Session PHP Extension
✅ Tokenizer PHP Extension
❌ XML PHP Extension

The items marked in red were not currently present on my server, so I’ll be install them.

sudo apt install php8.2-curl php8.2-dom php8.2-mbstring php8.2-xml php8.2-mysql zip unzip -y

We also need to install zip and unzip which will be needed later by composer

Step 6: Write a function to install and setup composer

function composer_setup() {
 cd ~

 if [ -d "$HOME/composer" ]; سپس gold_echo "-------------------------------------- فهرست آهنگساز موجود است------ --------------------------------------" else mkdir composer cd composer gold_echo "---- ---------------دایرکتوری با موفقیت ایجاد شد-------------------------------- " curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer gold_echo "------------------- آهنگساز با موفقیت اضافه شد------------ -------------" fi }

مرحله 7: تابعی بنویسید که برنامه لاراول را شبیه سازی و راه اندازی کند

function setup_laravel_app() {
 cd /var/www/

 sudo rm -r ./*
 sudo git clone https://github.com/laravel/laravel
 sudo chown -R $USER:$USER laravel
 cd laravel
#Install dependencies using composer
 composer install
 cp .env.example .env
 php artisan key:generate
 sudo chown -R www-data bootstrap/cache
 sudo chown -R www-data storage

}

مخزن GitHub به برنامه لاراول

مرحله 8: تابعی بنویسید که MySQL Server را پیکربندی کند (ایجاد پایگاه داده و کاربر)

function conf_mysql() {
   cd /var/www/laravel

   gold_echo "-------------Setup mysql database and user--------------------------------"

# Configure MySQL database
sudo mysql -uroot -e "CREATE DATABASE laravel_db;"
sudo mysql -uroot -e "CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY '000000';"
sudo mysql -uroot -e "GRANT ALL PRIVILEGES ON laravel_db.* TO 'laravel_user'@'localhost';"
sudo mysql -uroot -e "FLUSH PRIVILEGES;"


gold_echo "-----------------Done with database setup--------------"
gold_echo "------------------Editing .env file--------------------"




   sed -i 's/DB_CONNECTION=sqlite/DB_CONNECTION=mysql/' .env
   sed -i 's/# DB_HOST=127.0.0.1/DB_HOSTS=127.0.0.1/' .env
   sed -i 's/# DB_PORT=3306/DB_PORT=3306/' .env
   sed -i 's/# DB_DATABASE=laravel/DB_DATABASE=laravel_db/' .env
   sed -i 's/# DB_USERNAME=root/DB_USERNAME=laravel_user/' .env
   sed -i 's/# DB_PASSWORD=/DB_PASSWORD=000000/' .env





gold_echo "-------Migrating database--------"

   php artisan migrate

}

نام کاربری: laravel_user

نام پایگاه داده:laravel_db

رمز عبور:000000

مرحله 9:یک تابع بنویسید تا یک میزبان مجازی آپاچی جدید ایجاد کند تا برنامه جدید لاراول ما را نشان دهد.

function apache_conf() {
    #Setup Virtual host for app
    cd ~
    sudo tee /etc/apache2/sites-available/laravel.conf <<EOF
    <VirtualHost *:80 *:3000>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/laravel/public/

    <Directory /var/www/laravel/public/>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
  </VirtualHost>
EOF


  cd ~
   sudo a2dissite 000-default.conf
   sudo a2enmod rewrite
   sudo a2ensite laravel.conf
   sudo systemctl restart apache2
}

مرحله 10:تابعی بنویسید تا توابع ما را فراخوانی کند

#Functions

function main() {
  install_lamp
  composer_setup
  setup_laravel_app
  conf_mysql
  apache_conf
}

#Execute All Functions
main

ذخیره و خارج شوید

  • کلید ESC را فشار دهید
  • دو نقطه wq (:wq)
  • وارد کنید

استقرار برنامه لاراول

اجرای اسکریپت

./laravel_app.sh

خروجی:

توضیحات تصویر

نتیجه گیری

این راهنما یک رویکرد گام به گام برای خودکارسازی استقرار یک برنامه پشته LAMP لاراول با استفاده از اسکریپت Bash در سرور اوبونتو ارائه کرده است. با خودکارسازی این فرآیندها، توسعه دهندگان و مهندسان عملیات می توانند از ثبات، کاهش خطاها و تسریع زمان استقرار اطمینان حاصل کنند که منجر به یک محیط برنامه کاربردی کارآمدتر و کارآمدتر می شود.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا