2017-02-03 19 views
7

मैंने हाल ही में Wix Tool Set का उपयोग कर वेब एप्लिकेशन (हाँ, इंस्टॉलर के साथ वेब एप्लिकेशन) के लिए इंस्टॉलर विकसित किया है।PHP (या जो कुछ भी) web.config में सीजीआई कॉन्फ़िगरेशन IIS

जादूगर उपयोगकर्ता गाइड सभी बुनियादी जानकारी प्राप्त करने के लिए स्थापना के लिए साइट की जरूरत है, और नीचे की तरह दिखता है:

enter image description here

स्थापना के अंत में कस्टम कार्यों का उपयोग करते हुए मैं गतिशील आईआईएस कॉन्फ़िगर किया गया PHP, पायथन, होस्ट होस्ट करने के लिए FastCGI को कॉन्फ़िगर करने के लिए the documentation का उपयोग करके सीजीआई को संभालने के लिए। इस परिणाम को प्राप्त करने के लिए बहुत सारे कदम और विकास हैं, लेकिन समस्या यहां है:

मैंने एप्लिकेशन इंस्टॉल किया और सबकुछ ठीक काम करता है, लेकिन, अगर मैं किसी अन्य इंस्टेंस या अन्य वेब एप्लिकेशन को अनइंस्टॉल या इंस्टॉल करता हूं तो आईआईएस द्वारा कॉन्फ़िगर किए गए हैंडलर हैं वैश्विक स्तर की तरह और हमेशा पहले स्थापित करने के लिए इंगित करता है। (समस्या तब होती है जब मैं एप्लिकेशन को अनइंस्टॉल करता हूं) applicationHost.configसी में स्थित: \ Windows \ System32 \ inetsrv \ config जो आईआईएस की कॉन्फ़िगरेशन है, वह वैश्विक की तरह "कॉन्फ़िगर" है।

<handlers accessPolicy="Read, Script"> 
      <add name="PHP-FastCGI" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="E:\CIM_dev\bin\php-v5.6\php-cgi.exe" resourceType="Either" /> 
      <add name="CGI-exe_2" path="*.exe" verb="*" modules="CgiModule" resourceType="File" requireAccess="Execute" allowPathInfo="true" /> 
      <add name="TRACEVerbHandler2" path="*" verb="TRACE" modules="ProtocolSupportModule" requireAccess="None" /> 
      <add name="OPTIONSVerbHandler2" path="*" verb="OPTIONS" modules="ProtocolSupportModule" requireAccess="None" /> 
      <add name="StaticFile2" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read" /> 
     </handlers> 

मेरे सवाल है, वहाँ web.config में प्रत्येक वेब साइट के लिए इस विन्यास करने के लिए कोई तरीका है? मैं सफलता के बिना सभी चीजों की कोशिश कर रहा हूं।

+1

कृपया टेक्स्ट सामग्री के लिए छवियों का उपयोग न करें। – Andy

+0

@ एंडीसी धन्यवाद! संपादित – wrivas

उत्तर

3

इसलिए यदि मैं इसे सही समझता हूं, तो आप PHP/हैंडलर को सर्वर/वेबसाइट स्तर से अलग-अलग एप्लिकेशन में ले जाना चाहते हैं। आप अपने php एप्लिकेशन फ़ोल्डर में web.config फ़ाइल क्यों नहीं जोड़ते हैं और वहां एप्लिकेशन विशिष्ट हैंडलर को स्थानांतरित करते हैं।

  1. https://stackoverflow.com/a/35332431/1766402 - इस उत्तर की जांच करें (मुझे उम्मीद है कि आपके पास आईआईएस में सीजीआई सक्षम है?)। इसे wix के माध्यम से करने के लिए, क्या आप निम्न कार्य को कस्टम क्रिया के भीतर जोड़ सकते हैं और निष्पादित कर सकते हैं। यह मूल कॉन्फ़िगरेशन फ़ाइल अनलॉक करेगा।

% windir% \ system32 \ inetsrv \ appcmd.exe अनलॉक config "SiteName/APP1" -section: system.webServer/संचालकों

: निम्नलिखित सामग्री के साथ एक web.config फ़ाइल बनाने: PHP आवेदन फ़ोल्डर के भीतर (\ php \ APP1 मान लीजिए कि ग भी नहीं) 10
<?xml version="1.0"?> 
<configuration> 
    <system.webServer>  
     <handlers> 
      <add name="PHPviaFastCGI" path="*.php" verb="*" modules="FastCgiModule" scriptProcessor="C:\Users\axputhe\Documents\PHP\php-cgi.exe" resourceType="Unspecified" /> 
     </handlers> 
    </system.webServer> 
</configuration> 
  1. अब अगर आप आईआईएस प्रबंधक के भीतर आपके आवेदन को देखने के आप कुछ इस तरह देखना चाहिए (एप्लिकेशन डिर -> हैंडलर मैपिंग)

enter image description here

नोट "स्थानीय" यह पुष्टि करता है कि सेटिंग आपके स्थानीय web.config से आ रही है और applicationhost.config फ़ाइल से नहीं।

+0

मैं इसे आज़माता हूं और हमेशा प्राप्त करता हूं: इस कॉन्फ़िगरेशन अनुभाग का उपयोग इस पथ पर नहीं किया जा सकता है। यह तब होता है जब अनुभाग अभिभावक स्तर पर बंद हो जाता है। लॉकिंग या तो डिफ़ॉल्ट रूप से है (overrideModeDefault = "Deny"), या ओवरराइड मोड = "अस्वीकार करें" या विरासत अनुमतिऑवर्राइड = "झूठी" के साथ एक स्थान टैग द्वारा स्पष्ट रूप से सेट करें। – wrivas

+0

ऐसा लगता है कि आपके हैंडलर अनुभाग को पैरेंट स्तर पर बंद कर दिया गया है। क्या आप उत्तर में अद्यतन अनुभाग का प्रयास कर सकते हैं? – Isaiah4110

+0

इस अनुभाग को applicationHost.config में अनलॉक किया जा सकता है लेकिन लक्ष्य उपयोगकर्ता हस्तक्षेप से बचने के लिए है। जैसा कि मैंने कहा, मैंने सफलता के बिना बहुत सारी चाल की कोशिश की है :( – wrivas

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