اجرا نشدن کامل Cron Jobs

شروع موضوع توسط Hossein ‏Nov 25, 2016 در انجمن مشکلات

  1. Hossein

    Hossein عضو تایید شده کاربر انجمن

    سلام

    گاهی اوقات Cron Jobs در WHMCS ما بصورت کامل اجرا نشده و طی ایمیلی که دریافت می کنیم در قسمت ارسال ایمیل های تاخیر پرداخت صورتحساب متوقف می شود. همچنین بعد از این مورد باید پردازش مربوطه از سرور Kill شود.
    کنترل پنل دایرکت ادمین می باشد و برای تست گزینه آپدیت میزان مصرف هاست های کاربران در هنگام اجرای Cron نیز غیر فعال کرده ایم.

    در صورت امکان عزیزانی که تجربه حل این مشکل را دارند راهنمایی فرمایند.
     
  2. farid

    farid مدیر کل انجمن عضو کادر مدیریت مدیر کل انجمن

    سلام
    کلا whmcs رو کران جاب ضعیف است خیلی ایراد پیدا میکنه آنالیزی که بنده از whmcs 7 داشتم سیستم کرانجابشون بهبود داشته توصیه می کنم به ورژن whmcs 7 به بعد ارتقا بدید
    احتمالا دیگر مشکلی نخواهید داشت البته مشکل فعلی شما هم قابل پیگیری و رفع است احتمالا اما کار زمانگیری است لذا بهتر است ارتقا دهید
     
  3. Hossein

    Hossein عضو تایید شده کاربر انجمن

    ممنون

    اتفاقا ما از آخرین نسخه ورژن 7 WHMCS استفاده می کنیم.
    اما کماکان سابق گاهی Cron متوقف شده و باید Kill کرد.

    نکته دیگه هم اینکه در ورژن 7 در صورت غیر فعال بودن php info گاهی اوقات صفحه ادمین سفید می شود که با باز و بسته کردن php info این مورد انجام می شود.
    لاگ ها نیز بررسی و مشکل خاصی مشاهده نشد. گویا WHMCS به نمایش php info نیاز داره !
    راهکاری برای این مورد ندارید ؟
     
  4. farid

    farid مدیر کل انجمن عضو کادر مدیریت مدیر کل انجمن

    سلام
    به جای php -q برای کران از wget یا GET استفاده کنید ضمن اینکه بکاپ گیری از دیتابیس ، ارسال ایمیل pdf و همچنین update usage در whmcs برای کرانجاب را غیر فعال کنید
    این موارد منجر به طولانی شدن کران جاب می شوند
    در مورد php info نظر خاصی هنوز ندارم چون تست های کاملی روی whmcs 7 نداشتیم
     
  5. Hossein

    Hossein عضو تایید شده کاربر انجمن

    ضمن تشکر از پاسخگوئی تان ، شما از بین wget یا GET کدام را توصیه می کنید ؟ ارادتمند
     
  6. farid

    farid مدیر کل انجمن عضو کادر مدیریت مدیر کل انجمن

    فرقی ندارند GET از افزونه های perl است و با اون نصب میشه گر چه روی بیشتر سیستم ها پیش فرض نصب است اما استفاده ازش به دلیل نصب نبودن روی برخی از سیستم ها
    یا نداشتن دسترسی perl به یوزر مربوطه ممکن است مشکل ساز شود لذا استفاده از wget کمتر مشکل ایجاد می کند فرمت استفاده هم چیزی مشابه زیر می باشد
    wget -O /dev/null http://www.example.com/cron.php
    استفاه از آپشن O و /dev/null برای ذخیره کردن خروجی wget روی device null یا در واقع discard کردن آن است وگر نه در مسیر کران جاب فایل های زیادی دانلود و ذخیره میشه
    که مد نظر ما نیست مد نظر ما فقط اجرا شدن url مربوطه است لذا توصیه میشه با همین فرمت استفاده کنید
     
  7. Hossein

    Hossein عضو تایید شده کاربر انجمن

    ممنون از پاسختان
    فقط بدلایل امنیتی پوشه کرون به خارج از پوشه Public_html منتقل شده است.
    برای این منظور چطور لینک کرون را فراخوانی کنیم ؟ مثل php -q امکان زدن لینک دایرکتوری ها وجود دارد ؟

    wget -O /dev/null http://www.example.com/cron.php
     
  8. farid

    farid مدیر کل انجمن عضو کادر مدیریت مدیر کل انجمن

    سلام
    وابسته به وب سرورتون ( apache , nginx , ligthspedd , ... ) میتونید دسترسی به فولدری که کران جاب در آن است یا فایل کران جاب را به آی پی فق سرور محدود کنید
    اگر وب سرور شما آپاچی با httacess میتونید اینکارو بدون تغییر در فایل های config آپاچی در سرور انجام دهید با این روش سرور امکان اجرای wget روی فایل مورد نظر که همان cron.php است را دارد اما از خارج سرور کسی دسترسی اجرا را نخواهد داشت
     
  9. Hossein

    Hossein عضو تایید شده کاربر انجمن

    ممنون ، یعنی نظر شما این هست که پوشه Cron را به داخل Public_html برگردونیم.
    سپس از طریق htaccess اجرا و دسترسی اون رو بر روی آیپی سرور محدود کنیم.
    در این صورت حتی در صورت استفاده از htaccess امکان رخ دادن مشکل امنیتی وجود ندارد ؟
     
  10. Hossein

    Hossein عضو تایید شده کاربر انجمن

    کد فوق برای انجام محدودیت مناسب است :

    Order Deny,Allow
    Deny from all
    Allow from 192.168.1.1
     
  11. farid

    farid مدیر کل انجمن عضو کادر مدیریت مدیر کل انجمن

    بله باید درست باشد البته تست بگیرید حتما که با آی پی دیگر دسترسی نداشته باشد برای اطمینان نهایی
     

به اشتراک بگذارید

س