اجرای اسکریپت PHP توسط کرون جاب CPanel
سلام بر همه
همون طور که احتمالا همه میدونید اسکریپت PHP رو به دو شکل میشه توی CPanel در بخش Cronjob اجرا کرد.
کد:
/usr/bin/php -q /home/username/public_html/script.php
و حالت دوم:
کد:
/usr/bin/curl http://example.com/script.php
البته حالت دوم رو میشه با wget هم پیاده کرد.
تفاوتی که من بین اینا میبینم توی حالت اول فایل php به صورت داخلی اجرا میشه ولی در حالت دوم با درخواست HTTP اجرا میشه.
حالت سوال اینه که تفاوت های دیگر این دو حالت چیه؟
تشکر
پاسخ : اجرای اسکریپت PHP توسط کرون جاب CPanel
نقل قول:
نوشته اصلی توسط
mehran-b
سلام بر همه
همون طور که احتمالا همه میدونید اسکریپت PHP رو به دو شکل میشه توی CPanel در بخش Cronjob اجرا کرد.
کد:
/usr/bin/php -q /home/username/public_html/script.php
و حالت دوم:
کد:
/usr/bin/curl http://example.com/script.php
البته حالت دوم رو میشه با wget هم پیاده کرد.
تفاوتی که من بین اینا میبینم توی حالت اول فایل php به صورت داخلی اجرا میشه ولی در حالت دوم با درخواست HTTP اجرا میشه.
حالت سوال اینه که تفاوت های دیگر این دو حالت چیه؟
تشکر
سلام وقت بخیر
جواب خیلی سادست
با آدرس داخلی میشه امنیت کد رو فراهم کرد
فایل رو خارج از دایرکتوری اصلی میزارید دیگه لود خارجی نمیشه
کد PHP:
/usr/bin/php -q /home/Cronjob/script.php
پاسخ : اجرای اسکریپت PHP توسط کرون جاب CPanel
نقل قول:
نوشته اصلی توسط
omid1991
سلام وقت بخیر
جواب خیلی سادست
با آدرس داخلی میشه امنیت کد رو فراهم کرد
فایل رو خارج از دایرکتوری اصلی میزارید دیگه لود خارجی نمیشه
کد PHP:
/usr/bin/php -q /home/Cronjob/script.php
به نکته خوبی اشاره کردید.
توی آدرس داخلی timeout داریم مانند حالت خارجی یا خیر؟
پاسخ : اجرای اسکریپت PHP توسط کرون جاب CPanel
این توضیح مورد نیاز شما به انگلیسی , جواب شما رو هایلایت کردم.
نقل قول:
General cron job format is as follows:
[path to environment] [Path to script] [Script parameters]
For example, if you want to run a
PHP script located in the public_html directory, the correct cron command will be:
/usr/local/bin/php /home/cPaneluser/public_html/yourscript.php
or if you want to use a relative path (different commands are divided by “;”):
cd /home/YourcPuser/public_html/; /usr/local/bin/php yourscript.php
For
Python and
Perl scripts, there is no need to use a full path to the environment, the environment interpreter directive will be enough on shared servers.
python /home/YourcPuser/public_html/yourscript.py
perl /home/YourcPuser/public_html/yourscript.pl
Alternatively, you can just use
curl request as the cron job command for the same purpose:
curl “http://yourdomain.com/script.php?arg...ument2=arg2”
curl “http://yourdomain.com/script.py”
curl “http://yourdomain.com/script.pl”
However, unlike the first method, curl-based cron jobs will work only if URLs specified in curl requests are resolving, e.g., DNS records for the domain are correct and running.
پاسخ : اجرای اسکریپت PHP توسط کرون جاب CPanel
نقل قول:
نوشته اصلی توسط
mehran-b
به نکته خوبی اشاره کردید.
توی آدرس داخلی timeout داریم مانند حالت خارجی یا خیر؟
تایم اوتی که curl داره با تایم اوت سرور فرق داره تو حالت داخلی بستگی به کانفیگ سرورتون داره بهترین حالت کرون جاب حالت داخلی هست
یخورده کار کنید خودتون به نتایج جالبی میرسید ;)
پاسخ : اجرای اسکریپت PHP توسط کرون جاب CPanel
تشکر بابت راهنمایی هایی که انجام دادید.
فقط یه سوال فنی برام پیش اومد وقتی با curl فایل php رو اجرا میکنی curl دقیقا مثل یه مرورگر صبر میکنه تا اجرای فایل تموم بشه یا نه فقط بازش میکنه؟
پاسخ : اجرای اسکریپت PHP توسط کرون جاب CPanel
نقل قول:
نوشته اصلی توسط
mehran-b
تشکر بابت راهنمایی هایی که انجام دادید.
فقط یه سوال فنی برام پیش اومد وقتی با curl فایل php رو اجرا میکنی curl دقیقا مثل یه مرورگر صبر میکنه تا اجرای فایل تموم بشه یا نه فقط بازش میکنه؟
سلام وقت بخیر
بله باید کامل اجرا بشه بستگی به کدتون داره
ببنید تقریبا همه درخواست های http, https با curl انجام میشه
مثال همین درگاه های بانکی همشون با curl کار میکنند
پ.ن : حالا یکی پیدا میشه میگه این چه حرفیه پس soap چیه soap هم یه کلاس هست مثل خیلی از کلاس هایی که خودتون مینویسید مثلا این کلاس
کد:
class Oa
{
public function oCurl($url='', $data=[], $timeout=20, $header=false)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
if(!empty($data))
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
if($header)
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
$res = curl_exec($ch);
curl_close($ch);
return $res;
}
}
پاسخ : اجرای اسکریپت PHP توسط کرون جاب CPanel
کرون جاب با curl و wget بدون دامنه هم اجرا نمیشن ولی php میشه
امکانش هست با دستور php فایل رو بیرون از دایرکتوری پابیک قرار داد.
و...