2012-11-27 9 views
6

सीओआरएस (क्रॉस-डोमेन अनुरोध) के लिए उचित परीक्षण सूट सेट अप करने के लिए मुझे सीधे स्क्रिप्ट से HTTP विकल्प विधि को संभालने में सक्षम होना चाहिए। इसलिए मेरे पास एक साधारण PHP स्क्रिप्ट है जो विकल्प विधि का पता लगाती है, और कुछ विशिष्ट शीर्षकों को आउटपुट करके तदनुसार प्रतिक्रिया करती है।PHP हैंडल HTTP अनुरोधों को देने के लिए अपाचे को कॉन्फ़िगर कैसे करें?

PHP पक्ष कोई समस्या नहीं है। अगर मैं जीईटी/पोस्ट/हेड/पुट/इत्यादि जारी करने के लिए कर्ल का उपयोग करता हूं। अनुरोध है कि वे सभी स्क्रिप्ट पर जाएं और यह स्पष्ट रूप से उन्हें ठीक से संभालता है। यदि मैं एक विकल्प अनुरोध जारी करता हूं, हालांकि, यह कभी भी स्क्रिप्ट तक नहीं पहुंचता है: अपाचे तुरंत उन विधियों के एक समूह को सूचीबद्ध करने का उत्तर देता है जो इसे इस संसाधन के लिए उचित मानते हैं। मैं बता सकता हूं कि स्क्रिप्ट नहीं चलती है (कोई लॉगिंग नहीं, इसका कोई भी आउटपुट इसे प्रतिक्रिया में नहीं बनाता है)।

मैं अपाचे कॉन्फ़िगरेशन के माध्यम से जा रहा हूं, सुनिश्चित नहीं किया है कि कोई भी लागू नहीं है। Htaccess रास्ते में है, मैंने सीमा/LimitExcept निर्देशों जैसी चीजों का एक समूह tweaked है, लेकिन मैं इसे बदलने के लिए नहीं मिल सकता इसका व्यवहार मैंने अपने युवाओं की एक तकनीक पर जानकारी खोजने का भी प्रयास किया है जो यहां मदद कर सकता था: एनपीएच (गैर-वर्णित शीर्षलेख) स्क्रिप्ट; लेकिन जाहिर है कि अब गायब हो गया है (कम से कम, मुझे इसके बारे में कोई हालिया जानकारी नहीं मिल रही है)।

तो सवाल यह है कि: मैं अपाचे की कॉन्फ़िगरेशन को कैसे बदलूं ताकि यह मेरी स्क्रिप्ट को विकल्प को संभालेगा?

+0

यह सिर्फ काम करना चाहिए - जब तक आपके पास LIMIT नहीं है या विकल्प के लिए एक विशिष्ट हैंडलर सक्षम है। लेकिन ए) हमें आपकी .conf फ़ाइल देखने की आवश्यकता होगी, और दूसरी बात यह सर्वर गलती पर है। यह माइग्रेट करने का सुझाव देगा, लेकिन इस बीच .conf फ़ाइल जोड़ें। – Robbie

+0

में मैंने .conf शामिल किया होगा, लेकिन यह एक विस्तृत कॉन्फ़िगरेशन है जिसे बहुत सी चीजों को करने की आवश्यकता है (परीक्षण के लिए बहुत सी कॉन्फ़िगरेशन भिन्नता आवश्यक है)। मेरा अगला कदम यह है कि जब तक यह काम नहीं करता है, तब तक यह पता लगाना है, लेकिन मैं इससे पहले कि लीड की उम्मीद कर रहा था, क्योंकि यह एक छोटा उपक्रम नहीं है। –

उत्तर

3

मैंने अभी अपने स्वयं के PHP (5.3, अपाचे 2.2) का परीक्षण किया और यह अभी भी काम करता है (जैसा कि यह थोड़ी देर के लिए है)। विकल्प $ _SERVER सरणी में भेजे जाते हैं, और आपको

लक्ष्य को सेटिंग को डिफ़ॉल्ट रूप से चालू करना (जो काम करना चाहिए) को फिर से बदलना चाहिए, फिर आपको अपनी आवश्यकतानुसार अन्य विकल्पों के साथ बैक अप बनाना होगा।

अन्यथा, .conf फ़ाइल को देखे बिना, हम अंधेरे उड़ रहे हैं - इसलिए कुछ चीजें देखने के लिए यहां हैं।

  1. सीमा निर्देश। आपने कहा कि आपने वहां जांच की है, लेकिन बस डीबग करने के लिए, सभी संदर्भों को हटा दें। Vhosts में किसी भी शामिल करें साथ ही निर्देशिकाओं को व्यक्तिगत रूप से बदला जा सकता है।
  2. LimitExcept के लिए एक ही (आप ने कहा आप की कोशिश की है - बस उन सब को निकालने के लिए)
  3. चेक दोनों .conf और RequestHeader या REQUESTHEADER के आधार पर किसी भी रीडायरेक्ट या अन्य स्थितियों के लिए .htaccess (खोज और विश्लेषण करते हैं)
  4. [मैं THE_REQUEST की जांच के बारे में अभी कुछ भी पढ़ा है लेकिन पहले कभी नहीं सुना है। वर्थ चेकिंग भी?]
  5. अंत में, जांचें कि आपके पास विकल्प के लिए निर्दिष्ट विशिष्ट हैंडलर नहीं है, यानी Script OPTIONS /cgi-bin/optionshandler और यह कि आपका PHP हैंडलर भी जीईटी और पोस्ट को संभालने के लिए निर्दिष्ट है। फिर से vhosts और निर्देशिका याद रखें और। Htaccess व्यक्तिगत रूप से बदला जा सकता है तो उन सभी की जांच करें।

मैं बस इतना सोच सकता हूं। अन्यथा, जैसा कि मैंने सुझाव दिया है, स्क्रैच से शुरू होता है (यह काम करता है) और जब तक यह काम नहीं करता तब तक सबकुछ तैयार करें।

+0

एक प्राचीन पोस्ट, लेकिन यह सबसे जानकारीपूर्ण है जिसे मैंने हाल ही की समस्या का शोध करते समय पाया। अंत में, मेरी समस्या यह थी कि मैं mod-php5 के बजाय libapache2-mod-php5filter चला रहा था। (कोई विचार नहीं, मैंने इसे बहुत समय पहले स्थापित किया था)। Php5filter PHP पर विकल्प पास नहीं करता है। मॉड-php5 पर स्विचिंग मेरे लिए समस्या तय की। – Fanjita

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