index.php डिफ़ॉल्ट रूप से लोड नहीं हो रहा है


107

मैंने अभी CentOS, Apache और PHP स्थापित किया है। जब मैं अपनी साइट http://example.com/myapp/ पर जाता हूं , तो यह "मना" कहती है। डिफ़ॉल्ट रूप से यह index.php फ़ाइल को लोड नहीं कर रहा है।

जब मैं http://example.com/myapp/index.php पर जाता हूं , तो यह ठीक काम करता है।

किसी भी विचार कैसे उस मुद्दे को ठीक करने के लिए?

जवाबों:


153

अनुक्रमणिका फ़ाइल के रूप में index.php को पहचानने के लिए अपाचे को कॉन्फ़िगर करना होगा।

इसे पूरा करने का सबसे सरल तरीका ।।

  1. अपने वेब रूट में .htaccess फ़ाइल बनाएँ।

  2. लाइन जोड़ें ...

DirectoryIndex index.php

यहाँ इस मामले के बारे में एक संसाधन है ...
http://www.twsc.biz/twsc_hosting_htaccess.php

संपादित करें: मुझे लगता है कि Apache .htaccess फ़ाइलों को अनुमति देने के लिए कॉन्फ़िगर किया गया है। यदि ऐसा नहीं है, तो आपको अपाचे की कॉन्फ़िगरेशन फ़ाइल (httpd.conf) में सेटिंग को संशोधित करना होगा


4
यह शायद php.conf फ़ाइल में होना चाहिए जो अपाचे लोड करता है।
स्टेटिक्सन

मुझे लगता है कि आपका मतलब php.ini है। बावजूद इसके, अपाचे एक इंडेक्स डायरेक्टरी फाइल के रूप में index.php को नहीं पहचान रहा है। क्या इसकी हैंडलिंग php फाइलें एक और अपाचे कॉन्फिग इश्यू है।
जॉन हिममेलमैन

1
अपाचे को पुनः आरंभ करने के लिए मत भूलना !! जैसा मैंने किया! : /
नविद इनेकची

102

एक .htaccess फ़ाइल में 'DirectoryIndex index.php' जोड़ने पर काम हो सकता है,

ध्यान दें:

सामान्य तौर पर, आपको कभी भी .htaccess फ़ाइलों का उपयोग नहीं करना चाहिए

यह http://httpd.apache.org/docs/1.3/howto/htaccess.html से उद्धृत किया गया है,
हालांकि यह अपाचे के पुराने संस्करण को संदर्भित करता है, मेरा मानना ​​है कि सिद्धांत अभी भी लागू होता है।

निम्नलिखित को अपने httpd.conf में जोड़ना (यदि आपके पास इसका उपयोग है) को बेहतर रूप माना जाता है, तो सर्वर के कम होने का कारण बनता है और इसका सटीक प्रभाव भी होता है:

<Directory /myapp>
DirectoryIndex index.php
</Directory>

4
यदि आप उस फ़ाइल तक पहुँच रखते हैं तो यह सब ठीक है और बांका है
हेडन थ्रिंग

1
उसके लिए +1। यह पसंदीदा तरीका है जब तक कि आपके पास httpd.conf तक पहुंच नहीं है।
मैथ्यू जॉनसन

मेरा मानना ​​है कि यदि आप HTTPS का उपयोग कर रहे हैं तो इसे डिफ़ॉल्ट-एसएसएल कॉन्फ़िगरेशन फ़ाइल में जोड़ना भी ठीक है।
एलेक्स डब्ल्यू

44

एक अनुमान के अनुसार, मैं निर्देशिका सूचकांक index.html, या कुछ प्रकार पर सेट करने का प्रयास करता हूँ:

DirectoryIndex index.html index.php

यह अभी भी index.php पर index.html प्राथमिकता देगा (यदि आपको किसी रखरखाव पृष्ठ को फेंकने की आवश्यकता है)


मेरा ऐसा दिखता है, लेकिन दुर्भाग्य से इसे निष्पादित करने के बजाय index.php डाउनलोड कर रहा है।
वेबनेट

@ वेबनेट को तब आपको बदलते प्रकार और लोडमॉड्यूल्स को php करने पर विचार करना चाहिए ताकि यह php पढ़े [ stackoverflow.com/questions/5121495/…
Merey Nurlan

15

यह किसी के लिए सहायक हो सकता है। यहाँ httpd.conf से स्निपेट है (Apache संस्करण 2.2 विंडोज़)

# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
<IfModule dir_module>
    DirectoryIndex index.html
    DirectoryIndex index.php
</IfModule>

अब यह index.html फ़ाइल की तलाश करेगा यदि नहीं मिला तो यह index.php के लिए दिखेगा।


3

निम्नलिखित के साथ .htaccess फ़ाइल बनाने का प्रयास करें

DirectoryIndex index.php

संपादित करें: वास्तव में, 'php-apache' पैकेज या कुछ ऐसा नहीं है जिसे आप उन दोनों के साथ स्थापित करना चाहते हैं?


3

हमारे प्रत्यक्ष व्यवस्थापक द्वारा होस्ट की गई साइट पर मुझे एक ही समस्या थी। मैंने कहा

DirectoryIndex index.php

एक कस्टम httd एक्सटेंशन के रूप में (जो एक साइट httpdफ़ाइल में कोड जोड़ता है ) और साइट तब index.phpडिफ़ॉल्ट रूप से चलती थी।


2

मेरे लिए भी यही मुद्दा है। मेरा समाधान यह था कि mod_dir सक्षम नहीं था और Apache2 मेरी वर्चुअल पोस्ट फ़ाइल में निर्देश पढ़ने के दौरान एक त्रुटि जारी नहीं कर रहा था:

DirectoryIndex index.html

आदेशों का उपयोग करना:

sudo a2enmod dir
sudo sudo service apache2 restart

मुद्दा तय किया।


1
मुझे लगता है कि आपका मतलब है a2enmod?
TR_SLimey

1

जानकारी के लिए: कुछ Apache2 कॉन्फिडेंस में आपको mods_enabled / dir.conf में DirectoryIndex कमांड जोड़ना होगा (यह Apache2.conf में स्थित नहीं है)


1

यह सब पढ़ने और इसे ठीक करने की कोशिश करने के बाद, मुझे ubuntu फोरम ( https://help.ubuntu.com/community/ApacheMySQLPHP ) पर एक सरल समाधान मिला । समस्या libapache2-mod-php5 मॉड्यूल के साथ है। यही कारण है कि ब्राउज़र वेब पेज दिखाने के बजाय index.php फ़ाइल डाउनलोड करता है। निम्न कार्य करें। यदि sudo a2enmod php5 रिटर्न मॉड्यूल मौजूद नहीं है, तो समस्या libapache2-mod-php5 के साथ है। Purge कमांड सुडो apt-get --purge को libapache2-mod-php5 के साथ हटा दें, फिर इसे फिर से इंस्टॉल करें sudo apt-get install libapache2-mod-php5


1

मेरे पास एक समान लक्षण था। मेरे मामले में, हालांकि, मेरी मूढ़ता अनजाने में वेब रूट फ़ोल्डर में एक खाली index.html फ़ाइल होने की भी थी। जब मैं स्पष्ट DirectoryIndexरूप से index.php का अनुरोध नहीं करता था, तब अपाचे इसे index.php के बजाय सेवा दे रहा था, क्योंकि निम्नानुसार कॉन्फ़िगर किया गया था mods-available/dir.conf:

DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm

यही है, प्राथमिकता सूची में 'index.php' के आगे 'index.html' दिखाई देता है। स्वाभाविक रूप से वेब रूट से index.html फ़ाइल को हटाने से समस्या का समाधान हो गया। डी 'ओह!


1

Ubuntu 16.04.4 LTS और Apache / 2.4.18 के लिए कदम से कदम और पूर्ण निर्देश

" sudo -s"

" cd /etc/apache2/mods-enabled"

" vi dir.conf" और DirectoryIndex के बाद सही करने के लिए ले जाने के index.php नीचे और फ़ाइल को बचाने की तरह तो अपाचे सर्वर को पुनरारंभ करें।

DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm

" service apache2 restart"

यदि आप dir.conf नहीं देखते हैं, तो आपको इसे लोड करना होगा (Google कैसे करें)

किया हुआ।


1

यह पोस्ट पुरानी हो सकती है, लेकिन मैं इसे केवल पोस्ट कर रहा हूं, यह किसी अन्य व्यक्ति की मदद करता है, मैं आपके वेब रूट में एक .htaccess फ़ाइल बनाने और सूचकांक को बदलने की सलाह नहीं दूंगा। मुझे लगता है कि चरणों का पालन करना बेहतर है

  1. अपने अपाचे फोल्डर की गोपनीय फ़ोल्डर में जाओ मेरा है

    C:\Apache24\conf

  2. नाम की फ़ाइल खोलें

    httpd.conf

  3. सेक्शन में जाएं

    <IfModule dir_module>
       DirectoryIndex index.html 
    
     </IfModule>
  4. जैसा कि नीचे दिखाया गया है, इसे index.php जोड़ें

     <IfModule dir_module>
      DirectoryIndex index.html index.php
    
    </IfModule>

इस तरह, यह अभी भी index.html और index.php को डिफ़ॉल्ट सूचकांक के रूप में चुनता है, लेकिन index.html को प्राथमिकता देता है क्योंकि index.html * index.php से पहले आया था। इसके द्वारा मेरा मतलब है कि आपके पास index.html और index.php दोनों एक ही डायरेक्टरी में हैं, index.html को index.hml से पहले ** index.php लिखने के अलावा डिफ़ॉल्ट इंडेक्स के रूप में उपयोग किया जाएगा।

मुझे आशा है कि यह किसी की मदद करता है ... हैप्पी कोडिंग


1

यह एक आकर्षण की तरह काम करता है!

प्रथम

<IfModule dir_module>
    DirectoryIndex index.html
     DirectoryIndex index.php
</IfModule>

उसके बाद फिर से

<Files ".ht*">
    Require all denied
</Files>

सेवा

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