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

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

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

Любая идея, как исправить эту проблему?

Ответ 1

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

Самый простой способ выполнить это.

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

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

DirectoryIndex index.php

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

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

Ответ 2

При добавлении "DirectoryIndex index.php" в файл .htaccess может работать,

Примечание:

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

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

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

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

Ответ 3

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

DirectoryIndex index.html index.php

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

Ответ 4

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

Ответ 5

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

DirectoryIndex index.php

Изменить: На самом деле, нет ли пакета "php-apache" или чего-то, что вы должны установить с ними обоими?

Ответ 6

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

DirectoryIndex index.php

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

Ответ 7

Прочитав все это и попытавшись исправить это, я получил простое решение на форуме 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 install libapache2-mod-php5

Ответ 8

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

Ответ 9

У меня был похожий симптом. В моем случае, однако, мой идиотизм был в непреднамеренном также иметь пустой файл 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'о!

Ответ 10

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

" sudo -s "

" cd/etc/apache2/mods-enabled "

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

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

" service apache2 restart "

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

Готово.

Ответ 11

Это сообщение может быть старым, но я просто публикую его, если это поможет кому-то другому, я бы не советовал создавать файл .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

Ответ 12

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

Первый

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

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

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

в

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

Ответ 13

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

DirectoryIndex index.html

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

sudo a2enmod dir
sudo sudo service apache2 restart

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

Ответ 14

Перед тем, как попробовать любой из вышеперечисленных методов,

Пожалуйста, попробуйте следующее:

  • выберите файл index.php
  • щелкните правой кнопкой мыши
  • снова переименуйте в index.php

Загрузите страницу, и теперь она отлично работает.

это сработало для меня, когда я столкнулся с этой ошибкой...