2010-11-26 13 views
5

पर सार्वजनिक पहुंच प्रतिबंधित करें मेरे पास यह script.php फ़ाइल है जिसे मैं अपने लिनक्स/अपाचे सर्वर पर क्रॉन जॉब के रूप में चलाने के लिए चाहता हूं।लिनक्स/अपाचे सर्वर पर क्रॉन जॉब पर एक script.php चलाएं लेकिन PHP फ़ाइल

हालांकि, मैं नहीं चाहता कि जनता www.mycompanyname.com/script.php तक पहुंचें और साथ ही स्क्रिप्ट को एक साथ चलाएं।

हम इसे कैसे रोक सकते हैं? हम स्क्रिप्ट को केवल सर्वर की पहुंच तक सीमित कैसे कर सकते हैं? क्या यह chmod का उपयोग कर रहा है या .htaccess फ़ाइल के अंदर कुछ सेट कर रहा है, लाइन के साथ कुछ?

कोई सलाह?

उत्तर

2

आपके पास शायद public_html निर्देशिका जैसा कुछ है, जिसमें आपके पास सभी PHP हैं। बस इसे उस निर्देशिका के बाहर रखें।

+0

ओह, तार्किक लगता है मैंने कभी सोचा नहीं .. मैं शायद public_html भूल गया रूट बाहरी निर्देशिकाओं के बजाय होस्टनाम में मैप किया गया है। जैसा कि मेरी script.php को चलाने के लिए अपाचे की आवश्यकता है, मैं presumme, public_html के बाहर निर्देशिका अभी भी चलने योग्य है? – flyclassic

+0

ज़रूर! आपको बस अपने उपयोगकर्ता के लिए डीआईआर में अनुमति की आवश्यकता है (मुझे लगता है कि क्रॉन आपके उपयोगकर्ता के रूप में चलता है) – cambraca

7

आप script.php में पीएचपी की पहली पंक्ति के रूप में यह कर सकते हैं ...

if (PHP_SAPI !== 'cli') { 
    exit; 
} 

किसी HTTP के माध्यम से अपनी स्क्रिप्ट मारता है, PHP_SAPIcgi मुझे विश्वास है, और नहीं cli हो जाएगा, करने के लिए अपनी स्क्रिप्ट के कारण सीधे बाहर निकलें।

बेशक, यह आपके क्रॉन को php script.php पर कॉल करने पर निर्भर करता है।

तुम भी भेज सकते हैं ...

header('HTTP/1.0 404 Not Found'); 

... या निश्चित रूप से, यह अपने वेब जड़ के बाहर छोड़ दें।

6

यदि आप वेबूट फ़ोल्डर के बाहर स्क्रिप्ट डालते हैं तो यह आपके वेबसर्वर के माध्यम से पहुंच योग्य नहीं होगा। उदा। आपका वेबूट/var/www/public_html/ पर है, आप उस फ़ोल्डर के बाहर script.php डालते हैं, उदाहरण के लिए:/var/www/

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