سلام
دوستان کرون جابی هست که در سی پنل تعریف بشه ، و اون کرون جاب دسترسی پوشه رو در ساعت خاصی تغییر بده ؟ اگر هست ممنون میشم لطف کنید بدید.خودم گشتم چیز خاصی پیدا نکردم
سلام
دوستان کرون جابی هست که در سی پنل تعریف بشه ، و اون کرون جاب دسترسی پوشه رو در ساعت خاصی تغییر بده ؟ اگر هست ممنون میشم لطف کنید بدید.خودم گشتم چیز خاصی پیدا نکردم
سلام
خود php تابع chmod برای تغییر دسترسی فایل ها و پوشه ها داره.
http://php.net/manual/en/function.chmod.php
فقط در کرون جاب نمی تونید از آدرس دهی نسبی (Relative) مثل فقط اسم پوشه یا ../ استفاده کنید چون موقعیت دایرکتوری فعلی (Current Dir) هنگام اجرای کرون جاب دیگه دایرکتوری اصلی فایل PHP مورد نظر نیست و احتمالآً دایرکتوری /tmp در سرور هستش.
برای همین برای تغییرات در فایل ها و پوشه ها با کرون جاب یا باید دستی آدرس کامل اینطوری /home/username/domains/mydomain.com/public_html بدید یا اینکه توسط تابع dirname و ثابت سراسری __FILE__ آدرس پوشه فعلی رو پیدا کنید اینطوری:
پس از ایجاد فایل php که دسترسی رو تغییر میده می تونید کرون جاب اجرای مفسر PHP رو در بخش کرون جاب ها با آدرس دهی دقیق به این فایل اضافه کنید.کد PHP:
<?php
$dir = dirname(__FILE__);
chmod($dir . '/myfolder/', 0755);
ویرایش توسط AtrafNet : March 30th, 2017 در ساعت 10:11
بعضی اوقات جو میگیردم حس معلم بودن بهم دست میده قلمبه سلمبه می نویسم بعداً خودمم چیزی نمی فهمم
ببینید شما الان هر جای هاستتون که خواستید یه فایل php با هر اسمی که خواستید بسازید (خارج از public_html هم باشه موردی نداره و حتی بهتره خارج از public_html باشه که کسی نتونه فایل رو مستقیم اجرا کنه).
بعدش کد زیر رو تو فایل بذارید:
در این کد به جای myfolder باید اسم پوشه ای که می خواین دسترسی اش با کرون جاب عوض بشه رو بنویسید و به جای 0755 هم دسترسی مورد نظر رو.کد PHP:
<?php
$dir = dirname(__FILE__);
chmod($dir . '/myfolder/', 0755);
تو تابع chmod برخلاف دسترسی های خود کنترل پنل های سی پنل و دایرکت ادمین باید یه 0 قبل از هر دسترسی باشه یعنی مثلاً 644 میشه 0644.
بعدش اگر طبق توصیه من فایل php که ساختید رو خارج از public_html قرار دادید ولی پوشه مورد نظر که باید دسترسیش عوض بشه داخل public_html هست باید کد رو به شکل زیر تغییر بدید:
چون همونطور که تو پست قبل هم گفتم این کد میگرده در کنار خود فایل php که ساختید دنبال آدرس اون پوشه هست خب فرض کنید فایل php شما یه مرحله بالاتر از پوشه public_html ساخته شده باشه پس مسلماً در آدرس دهی به پوشه ای که می خوایم دسترسی اش رو عوض کنیم باید این یه مرحله public_html هم قید کنیم حالا اگر دیگه بعد از public_html باز پوشه مورد نظر شما تو در تو هستش دیگه خودتون آدرسش رو بعد public_html بنویسید.کد PHP:
<?php
$dir = dirname(__FILE__);
chmod($dir . '/public_html/myfolder/', 0755);
بعد از اینکه کلاً کار فایل php تموم شد باید بریم سراغ ایجاد کرون جاب.
همچنین می تونید یه بار فایل php رو تو public_html با آدرس دهی در مرورگر تست هم کنید ببینید کار میکنه یا نه (مسلماً در تست در public_html باید داخل کد دیگه public_html آدرس دهی نشده باشه چون گفتم که این فایل php از آدرس پوشه فعلی خودش شروع میکنه).
بعدش به بخش کرون جاب های سی پنل یا دایرکت ادمین میریم یه کرون جاب با دستور php که مفسر php رو فراخوانی کنه و آدرس دهی کامل به فایل php که ساختیم میسازیم.
نمونه آدرس دهی این کرون جاب در سی پنل:
نمونه آدرس دهی این کرون جاب در دایرکت ادمین:کد:php /home/UserName/public_html/mycronjob.php
به جای UserName در هر دو آدرس یوزر هاست که باهاش لاگین میکنید هستش.کد:php /home/UserName/domains/MyDomain.COM/public_html/mycronjob.php
در آدرس دومی به جای MyDomain.COM هم آدرس دامنه به صورت حروف کوچک هستش.
اگر هم فایل php که ساختید خارج از public_html هستش کافیه فقط این بخش public_html تو آدرس کرون جاب نباشه.
بعدش باید زمان بندی کرون جاب رو انجام بدید که آیا مثلاً هر روز اجرا بشه هر ساعت یا ....
پ.ن: بازم احساس میکنم آمدم ساده بنویسم سخت ترشم کردم![]()
ویرایش توسط AtrafNet : March 30th, 2017 در ساعت 10:37
عاغا خیلی ممنون نمیدونم چجوری تشکر کنم ازت ،شما ماشالله فعالی میبینم در همه ی تاپیک ها ملت رو راهنمایی میکنی ( مثل بعضیا نیستین که فقط بحث هزینه شد میان وسط) این بارم هم مشکل ما رو حل کردید ، بازم ممنون
![]()
در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)