it-roy-ru.com

index.php не загружается по умолчанию

Я только что установил CentOS, Apache и PHP. Когда я захожу на мой сайт http://example.com/myapp/ , он говорит "запрещено". По умолчанию он не загружает файл index.php.

Когда я захожу http://example.com/myapp/index.php , он работает нормально.

Есть идеи, как решить эту проблему? 

95
001

Apache должен быть настроен на распознавание index.php в качестве файла индекса.

Самый простой способ сделать это ..

  1. Создайте файл .htaccess в своем веб-корне.

  2. Добавьте строку ...

DirectoryIndex index.php

Вот ресурс по этому вопросу ...
http://www.twsc.biz/twsc_hosting_htaccess.php

Правка: я предполагаю, что Apache настроен для разрешения файлов .htaccess. Если это не так, вам придется изменить настройку в файле конфигурации Apache (httpd.conf)

143
John Himmelman

Хотя добавление «DirectoryIndex index.php» в файл .htaccess может работать,

НОТА:

В общем, вы никогда не должны использовать файлы .htaccess

Это цитируется с http://httpd.Apache.org/docs/1.3/howto/htaccess.html
Хотя это относится к более старой версии Apache, я считаю, что принцип все еще применяется.

Добавление следующего к вашему httpd.conf (если у вас есть доступ к нему) считается лучшей формой, приводит к меньшим нагрузкам на сервер и имеет точно такой же эффект:

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

В предположении я бы сказал, что индекс каталога установлен в index.html, или какой-то другой вариант, попробуйте:

DirectoryIndex index.html index.php

Это по-прежнему будет давать index.html приоритет над index.php (удобно, если вам нужно открыть страницу обслуживания)

38
Ben Rowe

Это может быть полезно для кого-то . Вот фрагмент из 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.

12
Maruf

У меня была такая же проблема с сайтом на нашем прямом админском хостинге. я добавил

DirectoryIndex index.php

как собственное расширение httd (которое добавляет код в файл httpd сайтов), и сайт затем запускает index.php по умолчанию.

3
Phil Errington

Попробуйте создать файл .htaccess со следующим

DirectoryIndex index.php

Правка: На самом деле, нет ли пакета 'php-Apache' или что-то, что вы должны установить с ними обоими?

3
animuson

У меня был похожий симптом. В моем случае, однако, мой идиотизм был в непреднамеренном также иметь пустой файл index.html в корневой веб-папке. Apache обслуживал это, а не index.php, когда я явно не запрашивал index.php, так как DirectoryIndex был настроен следующим образом в mods-available/dir.conf:

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

То есть «index.html» появляется перед «index.php» в списке приоритетов. Удаление файла index.html из корня сети естественным образом решило проблему. D'о!

1
John Rix

Прочитав все это и попытавшись это исправить, я получил простое решение на форуме ubuntu ( https://help.ubuntu.com/community/ApacheMySQLPHP ). Проблема заключается в модуле libapache2-mod-php5. Вот почему браузер загружает файл index.php, а не показывает веб-страницу. Сделайте следующее. Если Sudo a2enmod php5 возвращает модуль не существует, то проблема в libapache2-mod-php5. Очистить удалить модуль с помощью команды Sudo apt-get --purge удалить libapache2-mod-php5 Затем установить его снова Sudo apt-get установить libapache2-mod-php5

1
Rupak Rokade

Для информации: в некоторых Apache2 conf вы должны добавить команду DirectoryIndex в mods_enabled/dir.conf (Она не находится в Apache2.conf)

1
Zitun

Пошаговая инструкция и полная инструкция для Ubuntu 16.04.4 LTS и Apache/2.4.18

"Sudo -s"

"cd /etc/Apache2/mods-enabled"

«vi dir.conf» и переместите index.php сразу после DirectoryIndex, как показано ниже, и сохраните файл, затем перезапустите сервер Apache.

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

"service Apache2 restart"

Если вы не видите dir.conf, вам нужно загрузить его (Google для того, как)

Готово.

1
Dung

Этот работает как шарм!

Первый

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

затем после этого из  

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

до

 <Files ".ht*">
    Require all granted
</Files>
1
MelPogz

Та же проблема для меня. Мое решение состояло в том, что mod_dir не был включен и Apache2 не выдавал ошибку при чтении директивы в моем файле VirtualHost:

DirectoryIndex index.html

Используя команды:

Sudo a2ensite dir
Sudo sudo service Apache2 restart

Исправлена ​​проблема.

0
Martlark

Это сообщение может быть старым, но я просто публикую его, если это поможет кому-то другому, я бы не советовал создавать файл .htaccess в корневом веб-каталоге и изменять индекс. Я чувствую, что лучше следовать шагам

  1. Перейдите в папку conf вашей папки Apache. 

    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.php * перед index.hml

Надеюсь, это кому-нибудь поможет ... Happy Coding

0
Excellent Lawrence