यदि mod_rewrite सक्षम है तो मैं कैसे परीक्षण कर सकता हूं?


17

मैं अपाचे 2 पर वर्डप्रेस के लिए एक वातावरण स्थापित कर रहा हूं, उबंटू 12.04 की एक ताजा स्थापना पर।

अनुकूल URLS प्राप्त करने के लिए, मैं mod_rewrite सेट करने का प्रयास कर रहा हूं। मैंने नेट पर पाए गए कुछ निर्देशों का पालन किया, और a2enmod का उपयोग किया।

अभी। अपाचे को फिर से शुरू करने के बाद, मैं जांचना चाहूंगा कि क्या मॉड्यूल वास्तव में लोड है।

लोड किए गए मॉड्यूल की सूची प्राप्त करने के लिए मैंने जो आदेश पाया है वह यह है:

apache2 -t -D DUMP_MODULES

हालाँकि, यह एक त्रुटि देता है:

apache2: बुरा उपयोगकर्ता नाम $ {APACHE_RUN_USER}

इसलिए, मैं वास्तव में सभी लोड किए गए मॉड्यूल को कैसे सूचीबद्ध करूं, या अन्यथा यह देखने के लिए जांचें कि क्या mod_rewrite सक्षम किया गया है?

जवाबों:


18

KM01 का मतलब था, apachectlलेकिन यह आपको वह नहीं देगा जिसकी आपको आवश्यकता है। यह कुछ स्थिति की जानकारी देने के साथ-साथ सर्वर को शुरू / बंद / पुनः आरंभ करने को नियंत्रित करेगा। Php फ़ाइल विकल्प काम करता है, लेकिन आपके हिस्से पर कुछ अतिरिक्त काम करने की आवश्यकता होती है। इसके बजाय, कमांड लाइन से php चलाने का प्रयास करें $ php -i:। यह आउटपुट जो phpinfo()आउटपुट देता है, केवल कमांड लाइन पर।

आप संकलित मॉड्यूल की सूची चलाकर प्राप्त कर सकते हैं $ apache2 -l, लेकिन यह लोडमॉड्यूल (या अन्य) निर्देशों का उपयोग करके गतिशील रूप से लोड किए गए मॉड्यूल को देखने में मदद नहीं करता है।

आप देख सकते हैं कि एंट्रीज़ को देखकर क्या मॉड्यूल गतिशील रूप से लोड किए जा रहे हैं /etc/apache2/mods-enabled/। कुछ के पास कॉन्फ़िगरेशन के लिए समान निर्देशिका में एक अतिरिक्त गोपनीय फ़ाइल है। वे मॉड्यूल दो बार लोड नहीं हो रहे हैं। आप गतिशील रूप से देखने के लिए उपलब्ध मॉड्यूल की एक सूची देख सकते हैं /etc/apache2/mods-available/। आप कमांड लाइन पर उन्हें सक्षम कर सकते हैं $ a2enmod <module_name>। आप उन्हें अनलोड कर सकते हैं $ a2dismod <module_name>

जब आपको सक्षम / अक्षम किया जाता है, तो आपको अपाचे को पुनः आरंभ करना होगा $ service apache2 restartया साथ करना होगा $ apachectl graceful। आपको इस कार्य के लिए, यदि नहीं, तो सबसे अधिक करने के लिए मूल (सुडो) विशेषाधिकारों की आवश्यकता होगी।


4

1) <?php phpinfo(); ?>एक php फाइल में टाइप करें और इसे सेव करें और उस फाइल को सर्वर में रन करें।

2) और अब आप सूचना की सूची बना सकते हैं, बस ब्राउज़र के खोज मेनू से "mod_rewrite" शब्द खोजें

3) यदि यह "लोड किए गए मॉड्यूल" अनुभाग के तहत पाया जाता है, तो यह मॉड्यूल पहले से ही लोड है जैसा कि आप नीचे दी गई तस्वीर में देखते हैं, अन्यथा आपको mod_rewrite मॉड्यूल को सक्षम करने के लिए अगले चरण पर जाने की आवश्यकता है।

स्रोत: http://roshanbh.com.np/2008/04/check-enable-mod_rewrite-apache.html


4

apache2कमांड का उपयोग करने के बजाय , क्या आपके पास apachectlकमांड है? यह उसी स्थान पर होना चाहिए apache2। या फिर आप उन्नत विशेषाधिकार के साथ कमांड का उपयोग कर सकते हैंsudo apache2 -t -D DUMP_MODULES


2

जैसा कि @ रीचर्ड ने समझाया था, लेकिन वास्तव में आपको क्या करने की आवश्यकता है ताकि निम्नलिखित सामग्री के साथ एक फ़ाइल हो।

<?php
    phpinfo();
?>

यह आपके अपाचे / php कॉन्फ़िगरेशन के बारे में विभिन्न जानकारी प्रिंट करता है। अन्य उपयोगी चीजें जो आपको वहां मिलेंगी अगर कल्पना स्थापित है या नहीं। सभी भरी हुई अपाचे मॉड्यूल वहाँ भी हैं।


2

PHP जानकारी हमेशा आपको दिखाएगी कि यह सक्षम है या नहीं। माफ़ करना!

हालांकि, स्टैक ओवरफ्लो पर यह पृष्ठ आपको सही दिशा में इंगित करता है

वैकल्पिक रूप से, यहाँ उन सभी को सूचीबद्ध करने के लिए कुछ php है:

<?php foreach( apache_get_modules() as $module ) echo "$module<br />";  ?>

2
आप सही हैं, phpinfo (या अपाचे एक्सटेंशन के माध्यम से) समाधान केवल तभी काम करता है जब PHP अपाचे मॉड्यूल के रूप में संकलित / उपयोग किया जाता है। इसके अलावा * CGI, FPM, आदि में नहीं। इसके अलावा, mod_rewrite को लोड किया जा सकता है (LoadModule) लेकिन AllowOverride और / या विकल्प के अनुसार पुनर्लेखन को अस्वीकार किया जा सकता है।
जूलप

2

बस mod_rewrite.phpअपनी रूट डायरेक्टरी में फाइल बनाएं और नीचे दिए गए कोड को उसमें रखें:

<?php 
echo
"Mod_rewrite is activated!"
; ?>

अब अपनी पुरानी .htaccessफ़ाइल का नाम बदलें

बस नई .htaccess फ़ाइल बनाएं और नीचे दिए गए कोड को रखें।

RewriteEngine On
RewriteRule ^.*$ mod_rewrite.php

अब बचाओ मारा।

फिर अपनी साइट पर जाएँ आपको एक संदेश मिलेगा।


2

टर्मिनल प्रकार पर सेंटोस 6.5+ पर

httpd -M | grep 'rewrite'

यदि उत्तर में, आप देख सकते हैं rewrite_module (साझा) इसका मतलब यह स्थापित है। आप grep 'rewrite' को हटा सकते हैं और अपने Apache स्थापना के लिए सभी मॉड्यूल की सूची प्राप्त कर सकते हैं।


0

टर्मिनल में रूट के रूप में suse प्रकार httpd2 -M, जो लोड किए गए मॉड्यूल की एक सूची देता है। httpd2 -lकेवल मॉड्यूल में संकलित देता है। यह अपाचे 2.4 के लिए काम करता है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.