2009-07-28 8 views
15

मुझे किसी विशेष समय पर स्वचालित रूप से निष्पादित होने के लिए एक PHP स्क्रिप्ट चाहिए। मैं इस उद्देश्य को कैसे प्राप्त करूं?सर्वर पक्ष पर एक PHP स्क्रिप्ट के निष्पादन को शेड्यूल कैसे करें?

+9

आपका ओएस क्या है? यह सभी अंतर बनाता है। – Eric

उत्तर

26

यदि आप लिनक्स/यूनिक्स (मैक ओएसएक्स समेत) का स्वाद चला रहे हैं, create a cron job

यदि आप विंडोज़ चला रहे हैं, create a scheduled task

नोट: उपरोक्त दोनों लिंक विशेष रूप से एक PHP दर्शकों से संबंधित हैं।

1

यदि आप लिनक्स/यूनिक्स का उपयोग करके नहीं हैं, तो अपने होस्ट से पूछें कि क्या वे आपके लिए विंडोज निर्धारित नौकरी स्थापित कर पाएंगे। इस पर निर्भर करते हुए कि क्या आप कुछ मेजबानों के समर्थन विभागों के झुंड से गुजर सकते हैं, उन्हें खुश होना चाहिए क्योंकि यह आवश्यक रूप से सुरक्षा जोखिम उत्पन्न नहीं करता है

5

मुझे लगता है कि आप किसी प्रकार का वेबपैप बना रहे हैं और आपको भाग की आवश्यकता है सिस्टम को समय-समय पर चलाने के लिए, इसलिए इसे ब्राउज़र के माध्यम से नहीं चलाया जा सकता है। ऐसा करने में थोड़ा मुश्किल है यदि आप बहुत से तृतीय पक्ष libs लोड कर रहे हैं या बहुत सी सर्वर कार्यक्षमता का उपयोग कर रहे हैं, लेकिन यदि यह सीधे PHP है, तो आप इसे बहुत आसानी से कर सकते हैं। किसी प्रकार का शेड्यूल जॉब बनाएं (लिनक्स पर क्रॉन जॉब, विंडोज़ पर अनुसूचित कार्य, इत्यादि) जो php -f filename.php कमांड चलाता है। यह आपकी PHP स्क्रिप्ट को सीएलआई PHP दुभाषिया के माध्यम से निष्पादित करेगा, जो सीजीआई के माध्यम से PHP स्क्रिप्ट को निष्पादित करने के तरीके के समान (शायद समान) है, लेकिन कुछ सर्वर-विशिष्ट पर्यावरण चर को घटाता है।

16

यदि आप crontab -e के साथ मैन्युअल रूप से crontab संपादित करते हैं या crontab -l के साथ सूचीबद्ध करने के लिए जाते हैं, तो crontab के शीर्ष पर डालने के लिए एक उपयोगी टिप्पणी नीचे दी गई है।

# .---------------- minute (0 - 59) 
# | .------------- hour (0 - 23) 
# | | .---------- day of month (1 - 31) 
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ... 
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat 
# | | | | | 
# * * * * * command to be executed 

    30 3 * * * php /home/scripts/do_something.php 
+1

कुछ मामलों में, इस पर निर्भर करता है कि यह "do_something.php" किस प्रकार की स्क्रिप्ट है, यह वेबसर्वर के अंदर इसे निष्पादित करना बेहतर होगा, इसलिए विकल्प "php /home/scripts/do_something.php" को " wget http://your.domain.com/do_something.php " – rasjani

+0

निश्चित रूप से, यदि यह वेब आधारित था, तो स्क्रिप्ट को भूल जाओ। अन्यथा अगर यह एक PHP क्ली ऐप था, तो इसे प्रदर्शित के रूप में कॉल करें। किसी भी तरह से, मैं उपयोगी टिप्पणी का प्रदर्शन कर रहा था। – jmoz

संबंधित मुद्दे