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

76

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

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

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

Теги:
centos
apache-config

9 ответов

131
Лучший ответ

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

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

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

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

DirectoryIndex index.php

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

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

  • 4
    Вероятно, это должно быть в файле php.conf, который загружает apache.
  • 0
    Я думаю, что вы имеете в виду php.ini. Несмотря на это, его apache не распознает index.php как файл индекса каталога. Является ли его обработка php файлами другой проблемой конфигурации apache.
Показать ещё 1 комментарий
78

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

Примечание:

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

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

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

<Directory /myapp>
DirectoryIndex index.php
</Directory>
  • 2
    все в порядке, если у вас есть доступ к этому файлу
  • 1
    +1 за это. Это предпочтительный метод, если у вас нет доступа к httpd.conf.
Показать ещё 1 комментарий
33

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

DirectoryIndex index.html index.php

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

  • 0
    Мой выглядит так, но, к сожалению, загружает index.php вместо того, чтобы его выполнить.
6

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

  • 0
    DirectoryIndex index.html index.php также работает
2

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

DirectoryIndex index.php

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

2

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

DirectoryIndex index.php

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

1

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

1

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

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

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

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

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню