2012-08-10 29 views
28

बंद है मैंने इस मुद्दे के लिए लगभग हर संभव चीज़ पढ़ी है और मेरी समस्या को हल करने वाली कुछ भी नहीं मिल सका। यह लोग इन erorr मैं हो रही है: विकल्प FollowSymLinks या SymLinksIfOwnerMatch जिसका मतलब है कि फिर से लिखना निर्देश मना किया है बंद है: /var/www/vhosts/site.com/httpdocs/cgi-bin/cron.plविकल्प FollowSymLinks या SymLinksIfOwnerMatch

जब साइट तक पहुंचने के लिए मुझे 403 निषिद्ध है "आपको इस दस्तावेज़ तक पहुंचने की अनुमति नहीं है।" त्रुटि।

मैं अपने .htaccess इस राशि के लिए संशोधित किया है:

AddHandler cgi-script .cgi 
AddHandler cgi-script .pl 

<Directory /> 
Options -ExecCGI FollowSymLinks -Includes -IncludesNOEXEC -Indexes -MultiViews -SymLinksIfOwnerMatch 
AllowOverride All 
</Directory> 

सच मुझे आगे क्या करना कर सकते हैं:

Options +FollowSymLinks +SymLinksIfOwnerMatch 
AddDefaultCharset utf-8 
RewriteEngine on 
RewriteCond %{HTTP:Authorization} ^(.*) 
RewriteRule ^(.*) - [E=HTTP_CGI_AUTHORIZATION:%1] 
. 
. 
. 

मैं भी httpd.conf को यह जोड़ा?

उत्तर

11

नोट इस apache docs for option से:

के लिए + मिश्रण विकल्प या - बिना उन के साथ मान्य सिंटैक्स नहीं, है और एक बीच में बंद करें साथ वाक्य रचना चेक द्वारा सर्वर स्टार्टअप के दौरान अस्वीकार कर दिया जाएगा।

आप +/- और अपने ब्लॉक के बिना विकल्पों को मिश्रित कर रहे हैं (यानी FollowSymLinks देखें)।

मेरे पास एक ही सटीक त्रुटि थी जो आज मेरी साइटों में से एक पर दिखाई दे रही थी जहां मैं एक विकल्प के सामने "+" जोड़ना भूल गया था। मैंने "+" जोड़ा और अब यह काम करता है।

16

देखें कि वह निर्देशिका जहां आपका वेब एप्लिकेशन रहता है, किसी अन्य मूल निर्देशिका में शामिल नहीं है जिसने FollowSymLinks प्रतिबंधित किया है।

समाधान शीर्ष निर्देशिका (पैरेंट निर्देशिका) पर FollowSymLinks को सक्षम करने या मूल वेब निर्देशिका में "" के दायरे के बाहर किसी निर्देशिका में आपके वेब एप्लिकेशन को स्थानांतरित करने का समाधान है।

उदाहरण के लिए, अगले apache config एक समस्या हो सकती है और निश्चित रूप से यह समस्या reproduces:

<VirtualHost *:80> 
     ... 
     <Directory "D:/"> 
     Options Indexes 
     </Directory> 

     <Directory "D:/mywebfolder/"> 
     Options Indexes FollowSymLinks 
     </Directory> 
     ... 
    </VirtualHost> 

इस समस्या से बचने के लिए:

<VirtualHost *:80> 
     ... 
     <Directory "D:/"> 
     Options Indexes FollowSymLinks 
     </Directory> 
     ... 
     ... 
    </VirtualHost> 

या जैसे कि आपका D:/mywebfolder/ एक और इकाई को स्थानांतरित E:/mywebfolder

1

अपने रूट निर्देशिका में रखें यह:

<Directory /> 
    #AllowOverride none 
    Require all denied 
    Options FollowSymLinks 
    Options SymLinksIfOwnerMatch 
</Directory> 

<Directory "root"> 
    Options FollowSymLinks 
    Options SymLinksIfOwnerMatch 
</Directory> 
+1

उस का फ़ाइल नाम क्या होना चाहिए? – brentonstrine

4

मैं हाल ही में एक ऐसी ही त्रुटि थी और मैं इसे मेरे लिए तय की। इस समस्या के लिए एक संभावित मूल कारण यह है कि लक्ष्य फ़ोल्डर (जिसे पुनर्लेखन किया जाता है), त्रुटि पाठ में वर्णित है, में FollowSymLinks विकल्प सेट नहीं है। आपके त्रुटि संदेश से, मुझे यह फ़ोल्डर दिखाई देता है: /var/www/vhosts/site.com/httpdocs/cgi-bin/

इस मामले में, आप इसका उपयोग कर सकते हैं।कि विशिष्ट फ़ोल्डर की इनको:

Options +FollowSymLinks 

यह सेटिंग ऊपर सिर्फ FollowSymLinks मौजूदा विकल्पों में से शीर्ष पर इस फ़ोल्डर के लिए जोड़ देगा (कि क्या + के लिए खड़ा है यह केवल इस विकल्प को कहते हैं।)।

उदाहरण:

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    Options +FollowSymLinks 
</IfModule> 

इस मामले में जहां मैं त्रुटि था और मैं इसे कैसे ठीक किया गया इस था। मेरे मामले में, एक अलग फ़ोल्डर था (cgi-bin नहीं) और अलग फ़ाइल (एक PHP फ़ाइल)।

चेतावनी:

  • सुनिश्चित करें कि आप वास्तव में cgi-bin को इंगित करने के लिए URL पुनर्लेखन के लिए चाहते हैं। यदि आपके पास यहां महत्वपूर्ण लिपियां हैं, तो यह सुरक्षा को प्रभावित कर सकती है और हो सकता है कि आप यह पुन: लिखना न चाहें। यदि आप इस सेटिंग को सीजीआई-बिन में बनाते हैं, तो लोग सीजीआई-बिन में आपकी स्क्रिप्ट का आउटपुट देख पाएंगे, जो तब तक अच्छा नहीं होगा जब तक कि आप नहीं जानते कि आप क्या कर रहे हैं।

नोट्स:

  • कृपया ध्यान दें कि स्थानीय सेटिंग्स/ब्राउज़र सेटिंग के आधार,, .htaccess को अद्यतन करने के तुरंत ब्राउज़र में प्रभाव प्रदान नहीं कर सकते हैं जब आप URL में टाइप करें, और प्रदर्शित कर सकते हैं .htaccess में आपके संशोधन पर विचार किए बिना, तुरंत परिणाम। इस मामले में आपको अपने संशोधनों के प्रभाव को देखने के लिए ब्राउज़र को पुनरारंभ करना पड़ सकता है। शुरुआती लोगों के लिए यह ठीक करने का प्रयास करते समय बहुत समय ले सकता है, और इस बात पर भ्रमित हो रहा है कि यह क्यों काम नहीं करेगा। साथ ही, अगर आप httpd.conf को संशोधित करते हैं (मेरी पोस्ट में मामला नहीं है), तो आपको वेब सर्वर को पुनरारंभ करना होगा।

  • जबकि मेरी त्रुटि के सुधार के लिए जांच कर रही, मैं वेब पर गौर किया है कि इस त्रुटि को भी कुछ लोगों के लिए hapened गया है, एक Plesk स्थापना के लिए, जिस स्थिति में है कि विशिष्ट समस्या का समाधान संपादित करने के लिए/etc/apache2/mods था -enabled/dir.conf, और DirectoryIndex अद्यतन करें, और index.pl से पहले index.php को ले जाएं।

5

मैं इस मुद्दे था और अंत में पाया गया है कि क्योंकि मैं तेजी से cgi के साथ के बजाय एक अपाचे मॉड्यूल के रूप में विन्यस्त था php, मैं \conf\extra\httpd-fcgid.conf अद्यतन करने के लिए किया था और उसके बाद इस ब्लॉक

<Files ~ "\.php$"> 
Options ExecCGI FollowSymLinks 
AddHandler fcgid-script .php 
FcgidWrapper "d:/php/php-cgi.exe" .php 
</Files> 
को FollowSymLinks जोड़ा

उम्मीद है कि यह किसी की मदद करता है और बर्बाद घंटों को बचाता है।

+0

इसने मेरे लिए इसे हल किया, 10x! – w00t

+0

लाइफ सेवर !! धन्यवाद!! – jiraiya

+0

@jiraiya मैं अब कैडी में चले गए हैं - एक नज़र डालें https://caddyserver.com/ –