به طور مداوم سایت وردپرس خود را با GitHub Actions مستقر کنید
انتشار: شهریور 29، 1403
بروزرسانی: 25 خرداد 1404

به طور مداوم سایت وردپرس خود را با GitHub Actions مستقر کنید


استقرار مستمر بخشی ضروری از توسعه وب مدرن است. این به توسعه دهندگان اجازه می دهد تا به طور خودکار تغییرات را از یک سیستم کنترل نسخه به یک محیط زنده اجرا کنند. این رویکرد خطاهای دستی را کاهش می دهد و روند توسعه را سرعت می بخشد و اطمینان حاصل می کند که وب سایت شما همیشه با آخرین تغییرات کد به روز است.

به عنوان یک کاربر Kinsta، می توانید از SSH برای ارسال مستقیم تغییرات به سرور خود استفاده کنید. با GitHub Actions، می توانید کل فرآیند استقرار را خودکار کنید و به روزرسانی ها را به طور یکپارچه در سایت زنده خود اجرا کنید.

این مقاله شما را در راه اندازی استقرار مداوم برای سایت وردپرس خود که در Kinsta میزبانی شده است با استفاده از GitHub Actions راهنمایی می کند. ما همه چیز را از راه اندازی محیط محلی تا اعمال تغییرات در GitHub و استقرار خودکار آنها در سایت زنده شما پوشش می دهیم.

پیش نیازها

قبل از اینکه بتوانید استقرار مداوم سایت وردپرس خود را در Kinsta تنظیم کنید، به چند چیز نیاز دارید:

  1. سایت وردپرس شما باید قبلاً در Kinsta میزبانی شده باشد.
  2. شما باید سایت خود را به صورت محلی بکشید. می توانید از DevKinsta استفاده کنید یا یک نسخه پشتیبان دانلود کنید.
  3. یک مخزن GitHub برای ذخیره و ارسال کدهای سایت شما.
  4. دانش اولیه Git، مانند فشار دادن کد و استفاده از a .gitignore فایل

کشیدن سایت به صورت محلی و راه اندازی GitHub

به عنوان یک کاربر Kinsta، ساده ترین راه برای دسترسی به فایل های محلی سایت وردپرس خود استفاده از DevKinsta است. تنها با چند کلیک، می توانید سایت خود را از سرور Kinsta به DevKinsta بکشید و به شما امکان می دهد به صورت محلی روی سایت خود کار کنید.

برای انجام این کار:

  1. DevKinsta را باز کرده و کلیک کنید اضافه کردن سایت.
  2. را انتخاب کنید واردات از Kinsta گزینه با این کار همه چیز در مورد سایت شما دانلود می شود تا بتوانید به صورت محلی برای توسعه به آن دسترسی داشته باشید.

هنگامی که سایت شما به صورت محلی در دسترس است، پوشه سایت را در ویرایشگر کد دلخواه خود باز کنید. قبل از فشار دادن فایل ها به GitHub، یک را اضافه کنید .gitignore برای جلوگیری از آپلود فایل های اصلی وردپرس، آپلودها یا اطلاعات حساس غیرضروری، را در دایرکتوری ریشه پروژه خود قرار دهید. می توانید از یک استاندارد استفاده کنید .gitignore قالب برای وردپرس محتویات قالب را کپی کرده و ذخیره کنید.

در مرحله بعد، یک مخزن GitHub ایجاد کنید و فایل های سایت خود را به GitHub فشار دهید.

راه اندازی اسرار GitHub برای Kinsta

برای استقرار خودکار از GitHub به Kinsta، به برخی جزئیات مهم SSH از جمله نام کاربری، رمز عبور، پورت و آدرس IP خود نیاز دارید. از آنجایی که اینها حساس هستند، آنها را به عنوان اسرار GitHub ذخیره کنید.

برای افزودن اسرار در GitHub:

  1. به مخزن خود در GitHub بروید.
  2. را کلیک کنید تنظیمات > اسرار و متغیرها > اقدامات > راز مخزن جدید.
  3. اسرار زیر را اضافه کنید:
    • KINSTA_SERVER_IP
    • KINSTA_USERNAME
    • PASSWORD
    • PORT

شما می توانید این جزئیات را در سایت خود پیدا کنید اطلاعات صفحه در داشبورد MyKinsta شما.

جزئیات اطلاعات SFTP/SSH در MyKinsta
جزئیات اطلاعات SFTP/SSH در MyKinsta.

با تکمیل این تنظیمات، اکنون می توانید استقرار خودکار را برای سایت وردپرس خود پیکربندی کنید.

در حال پیکربندی سرور Kinsta خود

قبل از خودکارسازی فرآیند استقرار با GitHub Actions، باید سرور Kinsta خود را برای دریافت و استقرار کد از مخزن GitHub خود پیکربندی کنید.

این شامل دو مرحله است: ایجاد یک مخزن Git بر روی سرور Kinsta و راه اندازی a post-receive قلاب کنید تا آخرین تغییرات به صورت خودکار در سایت زنده شما اعمال شود.

1. یک مخزن Git خالی در Kinsta ایجاد کنید

یک مخزن گیت خالی یک مقصد راه دور است که در آن GitHub کد شما را فشار می دهد. این مخزن یک دایرکتوری فعال ندارد - یک مخزن مرکزی است که برای دریافت و ذخیره کد شما طراحی شده است.

برای انجام این کار، ابتدا با استفاده از SSH وارد سرور Kinsta خود شوید دستور ترمینال SSH موجود در داشبورد MyKinsta شما:

دستور ترمینال SSH MyKinsta.
دستور ترمینال SSH MyKinsta.

سپس، به پوشه خصوصی روی سرور خود بروید (یا اگر قبلاً وجود ندارد، آن را ایجاد کنید):

mkdir -p /www/your-site/private
cd /www/your-site/private

در اینجا، جایگزین کنید your-site با نام پوشه واقعی برای سایت خود، که می توانید آن را در مسیر داشبورد خود پیدا کنید.

مسیر سایت زنده Kinsta
مسیر سایت زنده Kinsta.

در نهایت، مخزن Git خالی را ایجاد کنید:

git init --bare your-repo.git

برای your-repo، می توانید از نام مخزن GitHub خود برای سازگاری استفاده کنید، اما می توانید آن را هر چیزی که دوست دارید نام گذاری کنید.

این مخزن خالی کدی را که از GitHub ارسال شده دریافت می کند.

2. قلاب پس از دریافت را راه اندازی کنید

هنگامی که مخزن Git برهنه شما آماده شد، a را راه اندازی کنید post-receive قلاب بعدی است این اسکریپت به طور خودکار کد را در سایت زنده شما مستقر می کند هر زمان که تغییرات جدیدی در آن اعمال شود main شعبه در GitHub

برای انجام این کار، به دایرکتوری hooks در مخزن Git برهنه خود بروید:

cd /www/your-site/private/your-repo.git/hooks

را ایجاد و ویرایش کنید post-receive قلاب:

nano post-receive

سپس اسکریپت زیر را به آن اضافه کنید post-receive فایل این اسکریپت آخرین کد را بررسی می کند public دایرکتوری سایت زنده شما:

#!/bin/bash
TARGET="/www/your-site/public"
GIT_DIR="/www/your-site/private/your-repo.git"

while read oldrev newrev ref
do
    BRANCH=$(git rev-parse --symbolic --abbrev-ref $ref)

    if (( $BRANCH == "main" ));
    then
        echo "Ref $ref received. Deploying ${BRANCH} branch to production..."
        git --work-tree=$TARGET --git-dir=$GIT_DIR checkout -f
    else
        echo "Ref $ref received. Doing nothing: only the main branch may be deployed on this server."
    fi
done

اسکریپت بالا کد را فقط از main شاخه را TARGET متغیر به دایرکتوری که فایل های سایت زنده شما در آن قرار دارد اشاره می کند (/www/your-site/public). را GIT_DIR متغیر به مخزن Git خالی اشاره می کند.

با فشار دادن فایل را ذخیره کرده و از آن خارج شوید Ctrl + X، سپس Y، و وارد کنید.

در نهایت، اسکریپت را قابل اجرا کنید تا بتواند پس از هر فشار به طور خودکار اجرا شود:

chmod +x post-receive

در این مرحله، post-receive قلاب آماده است تا هر زمان که تغییرات در آن اعمال شود، کد را به طور خودکار اجرا کند main در مخزن GitHub خود شعبه کنید.

3. یک نشانه دسترسی شخصی GitHub (PAT) ایجاد و اضافه کنید

از آنجایی که GitHub دیگر از احراز هویت مبتنی بر رمز عبور پشتیبانی نمی کند، هنگام ارسال کد به GitHub از طریق SSH باید از PAT برای احراز هویت استفاده کنید. این توکن به GitHub اجازه می دهد تا فشارهای شما را به طور ایمن بپذیرد.

برای تولید توکن:

  1. به حساب GitHub خود بروید و روی عکس نمایه خود کلیک کنید، سپس انتخاب کنید تنظیمات.
  2. در نوار کناری سمت چپ، کلیک کنید تنظیمات برنامه نویس.
  3. کلیک کنید نشانه های دسترسی شخصی > توکن ها (کلاسیک).
  4. کلیک کنید توکن جدید تولید کنید، و نامی برای آن بگذارید (به عنوان مثال، "Kinsta Deployment Token").
  5. زیر محدوده ها را انتخاب کنید، بررسی کنید repo (برای کنترل کامل مخازن خصوصی).
  6. کلیک کنید توکن تولید کنیدو توکن را کپی کنید. (شما دیگر نمی توانید آن را ببینید.)

در مرحله بعد، دستور زیر را اجرا کنید تا مخزن GitHub خود را به عنوان یک کنترل از راه دور اضافه کنید و مکان ها را با جزئیات واقعی خود جایگزین کنید:

git remote add origin https://your-username:(email\xa0protected)/your-username/your-repo.git

جایگزین کنید:

  • your-username با نام کاربری GitHub شما.
  • YOUR_PERSONAL_ACCESS_TOKEN با توکنی که به تازگی ایجاد کرده اید.
  • your-repo با نام مخزن GitHub شما.

ایجاد گردش کار GitHub Actions برای استقرار خودکار

اکنون که سایت وردپرس شما بر روی دستگاه محلی شما قرار دارد، به GitHub فشار داده شده است، و شما اسرار GitHub لازم را تنظیم کرده اید، زمان ایجاد یک گردش کاری GitHub Actions فرا رسیده است. این گردش کار هر زمان که به Kinsta فشار می آورید، تغییرات را به طور خودکار در Kinsta پیاده می کند main شاخه

برای خودکار کردن استقرار، یک فایل YAML ایجاد خواهید کرد که نحوه استقرار را تعریف می کند. در اینجا نحوه تنظیم آن آمده است:

  1. یک دایرکتوری جدید به نام ایجاد کنید .github/workflows در مخزن GitHub شما.
  2. در داخل این دایرکتوری یک فایل جدید به نام ایجاد کنید deploy.yml.
  3. مطالب زیر را به deploy.yml فایل:
name: Deploy to Kinsta

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v2

      - name: Deploy to Kinsta via SSH
        uses: appleboy/(email\xa0protected)
        with:
host: ${{ secrets.KINSTA_SERVER_IP }}
username: ${{ secrets.KINSTA_USERNAME }}
password: ${{ secrets.PASSWORD }}
port: ${{ secrets.PORT }}
script: |
  cd /www/your-site/private/your-repo.git  # Navigate to the bare Git repository on Kinsta
  git --work-tree=/www/your-site/public --git-dir=/www/your-site/private/your-repo.git fetch origin main  # Fetch the latest changes from GitHub
  git --work-tree=/www/your-site/public --git-dir=/www/your-site/private/your-repo.git reset --hard origin/main  # Deploy changes to the live site

نگاهی دقیق تر به این گردش کار

در اینجا خلاصه ای از گردش کار آمده است:

  • ماشه: هر بار که کد به سمت فشار داده می شود، گردش کار فعال می شود main شاخه ای از مخزن GitHub شما.
  • مشاغل: گردش کار شامل یک است job تماس گرفت deploy، که روی یک ماشین مجازی اوبونتو اجرا می شود (ubuntu-latest).
  • کد پرداخت: در این مرحله از actions/checkout@v2 اقدامی برای کشیدن آخرین کد از مخزن GitHub شما.
  • استقرار از طریق SSH: appleboy/ssh-action برای اتصال ایمن به سرور Kinsta خود از طریق SSH با استفاده از اسرار پیکربندی شده (IP سرور، نام کاربری، رمز عبور و پورت) استفاده می شود. اسکریپت در این مرحله دستورات زیر را اجرا می کند:
    • cd /www/your-site/private/your-repo.git: به مخزن Git خالی در سرور Kinsta شما هدایت می شود.
    • git fetch origin main: آخرین تغییرات را از main در مخزن GitHub خود شعبه کنید.
    • git reset --hard origin/main: این تغییرات را با به روز رسانی سایت زنده در قسمت اعمال می کند public دایرکتوری که وردپرس در آن میزبانی می شود.

تست گردش کار

هنگامی که گردش کار را تنظیم کردید، می توانید آن را با فشار دادن یک تغییر کوچک در مخزن GitHub خود آزمایش کنید. main شاخه هر بار که تغییری را اعمال می کنید، GitHub Actions به طور خودکار استقرار را آغاز می کند، آخرین نسخه کد شما را می کشد و آن را در سایت زنده شما در Kinsta مستقر می کند.

شما می توانید وضعیت استقرار خود را با رفتن به زیر نظارت کنید اقدامات برگه در مخزن GitHub شما. اگر گردش کار با خطا مواجه شد، گزارش های دقیقی را مشاهده خواهید کرد تا به شما در عیب یابی و رفع مشکلات کمک کند.

خلاصه

با راه اندازی استقرار مداوم برای سایت وردپرس خود با استفاده از GitHub Actions، گردش کار توسعه خود را خودکار می کنید و اطمینان حاصل می کنید که هر تغییری که در GitHub اعمال می شود به طور خودکار در سایت زنده شما در Kinsta مستقر می شود.

همچنین به شما امکان می دهد گردش های کاری اضافی را در خط لوله ادغام کنید، مانند آزمایش و قالب بندی با استفاده از بسته @wordpress/scripts.

نظر شما در مورد این فرآیند چیست؟ آیا چیز دیگری وجود دارد که بخواهید توضیح دهیم، یا آیا هنگام دنبال کردن این راهنما با خطا مواجه شده اید؟ لطفا سوالات یا نظرات خود را در بخش نظرات زیر به اشتراک بگذارید!

جوئل اولاوانلهکینستا

جوئل یک توسعه دهنده Frontend است که در Kinsta به عنوان یک ویرایشگر فنی کار می کند. او یک معلم پرشور با عشق به منبع باز است و بیش از 300 مقاله فنی عمدتاً در مورد جاوا اسکریپت و چارچوب های آن نوشته است.