یلدا ادامه داره... ❤️ ۴۰ درصد تخفیف همه دورهها
استفاده از تخفیفهابا عرض سلام و خسته نباشید
من میخوام از ریپوزیتوری گیت های برای کنترل پروژه در سایت خودم استفاده کنم . با موفقیت این ریپو رو در سی پنل clone میکنم فقط مشکلی که وجود داره
۱- این ریپو در یک دایرکتوری جداگانه در سی پنل بارگزاری میشه و حالا چطور باید این ریپو رو اعمال کنم ؟
۲- پروژه من لاراول است و با توجه به اینکه برخی دایرکتوری ها قبل public- html قرار داره و درواقع در روت سی پنل جای میگیره آیا اصلا با گیت این کار ممکن است ؟
نکته: به ssh دسترسی دارم
سلام دوست عزیز
اگر قصد دارید برای فرایند دیپلوی از گیت سی پنل هاست تون استفاده کنید. سی پنل دو روش برای اتوماتیک سازی فرآیند دیپلوی با استفاده از گیت معرفی کرده . یک روش 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 هست و خط دوم و سوم نیز پروسه دیپلویمنت و تسک رو مشخص میکنه.در خط چهارم مشخص میکنیم که پروژه مون کجا دیپلوی بشه و در خط پنجم مشخص می کنیم که چه فایل هایی رو کپی کنه که ما * گذاشتیم تا همه رو کپی کنیم.البته برای کانفینگ بیشتر مستندات سی پنل رو مطالعه کنید.
برای مطالعه ی بیشتر میتوانید داکیومنت Cpanel و اشنایی با گیت Cpanel رو مطالعه کنید.
موفق باشید
باتشکر بابت توضیحات
این کار رو انجام دادم و مشکلی که داره اینکه با این دستور تمام فایل هارو میبره کپی میکنه جایی که میخوایم
مثلا اگه تو آپدیت بعدی یک فایل یا دایرکتوری رو از ریپو پاک کرده باشیم با این دستور فایل ها در سایت پاک نمیشه و تنها اتفاقی که میوفته فایل های جدید اضافه میشه و فایل های تغییر یافته ویرایش میشه
ولی فایل های حذف شده رو پاک نمیکنه و باقی میمونه
برای این مشکل چه کاری میشه کرد؟
@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 '{}' \;
با تشکر بابت پاسخگویی
اینطور که از این کد پیداست میاد یک دایرکتوری با پسوند old میسازه و اول یه کپی از محتویات سایت میگیره و بعد محتویات جدید رو جایگزین قبلی میکنه
که این هم مشکل ایجاد میکنه
مثلا ما در پوشه public_html اصلی سایت تصاویر آواتار کاربران و تصاویر محصولات و . . . ذخیره میکنیم که با این کار تمام اون ها هم پاک میشه و به نظرم مشکل ساز است
سلام
من کد زیر رو در دایرکتوری پروژم قرار دادم اما کپی رو انجام نمیده میشه راهنمایی کنید؟
من یه پروژه ی نودجی اس دارم که پروژم در فولدر project قرار داره و یک فایل pakage.json رو می خوام تغییر بدم
deployment:
tasks:
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟