ایمان سیف الهی
3 سال پیش توسط ایمان سیف الهی مطرح شد
5 پاسخ

راهنمایی در مورد اعمال گیت در cpanel

با عرض سلام و خسته نباشید
من میخوام از ریپوزیتوری گیت های برای کنترل پروژه در سایت خودم استفاده کنم . با موفقیت این ریپو رو در سی پنل clone میکنم فقط مشکلی که وجود داره
۱- این ریپو در یک دایرکتوری جداگانه در سی پنل بارگزاری میشه و حالا چطور باید این ریپو رو اعمال کنم ؟
۲- پروژه من لاراول است و با توجه به اینکه برخی دایرکتوری ها قبل public- html قرار داره و درواقع در روت سی پنل جای میگیره آیا اصلا با گیت این کار ممکن است ؟
نکته: به ssh دسترسی دارم

@hesammousavi
@mhyeganeh


ثبت پرسش جدید
فرید وطنی
تخصص : Software Developer
@faridvatani 3 سال پیش آپدیت شد
1

سلام دوست عزیز
اگر قصد دارید برای فرایند دیپلوی از گیت سی پنل هاست تون استفاده کنید. سی پنل دو روش برای اتوماتیک سازی فرآیند دیپلوی با استفاده از گیت معرفی کرده . یک روش Automatic or push deployment و روش دیگر Manual or pull deployment است.
در روش Automatic deployment مخزن تون باید بر روی هاست سی پنل باشه و برای اینکار هاستتون باید دسترسی Shell بهتون بده که معمولا هاستینگ ها بعیده اجازه دسترسی بدهند. پس روش دومی که Manual deployment هست رو پیشنهاد میکنم که انجام بدید که نیازی به ssh هم نداره و در ادامه در مورد این روش توضیح میدم.

  • ابتدا قبل از اینکه پروژه مون رو در سی پنل کلون کنیم باید مشخص کنیم که پروژه مون رو روی کدوم دامین یا مسیر قراره دیپلویش کنیم. ما باید یک فایل به اسم cpanel.yml. در دایرکتوری پروژه مون ایجاد کنیم. در داخل فایل بدین صورت هست.

    ---
    deployment:
    tasks:
    - export DEPLOYPATH=/home/cpanelUserName/public_html/
    - /bin/cp * $DEPLOYPATH

    خط اول (---) نشون دهنده ی فایل yml هست و خط دوم و سوم نیز پروسه دیپلویمنت و تسک رو مشخص میکنه.در خط چهارم مشخص میکنیم که پروژه مون کجا دیپلوی بشه و در خط پنجم مشخص می کنیم که چه فایل هایی رو کپی کنه که ما * گذاشتیم تا همه رو کپی کنیم.البته برای کانفینگ بیشتر مستندات سی پنل رو مطالعه کنید.

  • حالا در سی پنل مون از تب Files گزینه Git™ Version Control رو انتخاب می کنیم و ما مثلا پروژه مون رو در مخزن های انلاین دیگر مثل گیتلب یا گیتهاب پوش کردیم و مخزن مون پابلیک هست و قرار در هاست مون کلون کنیم.(درمورد کلون کردن پروژه های خصوصی توسط گیت سی پنل این لینک رو مطالعه کنید.)
  • یک مخزن ایجاد میکنیم و ادرس پروژه مون که قراره کلون بشه رو بهش میدیم و دکمه create رو میزنیم تا پروژه مون کلون بشه.زمانی که یک مخزنی رو کلون می کنید در فایل منجر تون دایرکتوری repositories ذخیره میشه.
  • حالا کار تمومه و میتونید دامین سایت تون رو بالا بیارید و برای تست میتونید یک تغییر در پروژه تون ایجاد کنید و بعد از کامیت کردن و پوش کردن به مخزن انلاین تون، در سی پنل مون از تب Files گزینه Git™ Version Control انتخاب می کنیم و بعد روی مخزن مورد نظر مون دکمه manage رو انتخاب میکنیم و از تب pull or deploy برنچ مون رو با دکمه Update from remote و بعد گزینه Deploy HEAD Commit رو میزنیم تا پروژه مون اپدیت بشه و با همین روش هر زمان که تغییری داشتیم میتونیم در کمترین زمان ممکن با استفاده از گیت سی پنل پروژه مون رو اپدیت کنیم.

برای مطالعه ی بیشتر میتوانید داکیومنت Cpanel و اشنایی با گیت Cpanel رو مطالعه کنید.
موفق باشید


ایمان سیف الهی
تخصص : Full Stack Developer
@iseifollahi 3 سال پیش مطرح شد
0

باتشکر بابت توضیحات
این کار رو انجام دادم و مشکلی که داره اینکه با این دستور تمام فایل هارو میبره کپی میکنه جایی که میخوایم
مثلا اگه تو آپدیت بعدی یک فایل یا دایرکتوری رو از ریپو پاک کرده باشیم با این دستور فایل ها در سایت پاک نمیشه و تنها اتفاقی که میوفته فایل های جدید اضافه میشه و فایل های تغییر یافته ویرایش میشه
ولی فایل های حذف شده رو پاک نمیکنه و باقی میمونه
برای این مشکل چه کاری میشه کرد؟


فرید وطنی
تخصص : Software Developer
@faridvatani 3 سال پیش مطرح شد
1

@iseifollahi
باید از متد rsync استفاده کنید.این کانفینگ رو تست کنید.البته اگر کانفینگ خاصی میخواهید ست کنید حتما داکیومنت سی پنل رو بررسی کنید.

---
deployment:
  tasks:
    # NOTE: public_html on cPanel must not be removed or renamed.
    # This folder has owner USER:nobody, and the USER user does not have
    # access to change owner. So this folder must stay as-is to keep the nobody
    # group, which is critical to the site working. A new folder won't work.
    - export DEPLOYPATH=/home/USER/public_html
    - export REPOPATH=/home/USER/repositories/PROJECT
    # Remove previous old files, if any.
    - /bin/rm -Rf ${DEPLOYPATH}_old
    # Copy old site files to another directory.
    - /bin/cp -R ${DEPLOYPATH} ${DEPLOYPATH}_old
    # Sync repository files to the deploy target path, excluding .git folder.
    # --delete-after will remove deleted files and folders after syncing.
    - /bin/rsync -aP --exclude '.git' --exclude '.well-known' ${REPOPATH}/ ${DEPLOYPATH} --delete-after
    # Set correct permissions.
    - /bin/chmod 755 ${DEPLOYPATH}
    - /bin/find ${DEPLOYPATH} -type d -exec /bin/chmod 755 '{}' \;
    - /bin/find ${DEPLOYPATH} -type f -exec /bin/chmod 644 '{}' \;

ایمان سیف الهی
تخصص : Full Stack Developer
@iseifollahi 3 سال پیش مطرح شد
0

با تشکر بابت پاسخگویی
اینطور که از این کد پیداست میاد یک دایرکتوری با پسوند old میسازه و اول یه کپی از محتویات سایت میگیره و بعد محتویات جدید رو جایگزین قبلی میکنه
که این هم مشکل ایجاد میکنه
مثلا ما در پوشه public_html اصلی سایت تصاویر آواتار کاربران و تصاویر محصولات و . . . ذخیره میکنیم که با این کار تمام اون ها هم پاک میشه و به نظرم مشکل ساز است


0

سلام
من کد زیر رو در دایرکتوری پروژم قرار دادم اما کپی رو انجام نمیده میشه راهنمایی کنید؟
من یه پروژه ی نودجی اس دارم که پروژم در فولدر project قرار داره و یک فایل pakage.json رو می خوام تغییر بدم

deployment:
tasks:

  • export DEPLOYPATH=/home/digibed1/project/
  • /bin/cp * $DEPLOYPATH

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام