Index.php не загружается по умолчанию
Я только что установил CentOS, Apache и PHP. Когда я посещаю мой сайт http://example.com/myapp/, он говорит "запрещено". По умолчанию он не загружает файл index.php.
Когда я нахожусь http://example.com/myapp/index.php, он отлично работает.
Любая идея, как исправить эту проблему?
Ответы
Ответ 1
Apache необходимо настроить для распознавания index.php в качестве файла индекса.
Самый простой способ выполнить это.
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 в корневом веб-каталоге и изменять индекс. Я чувствую, что лучше следовать шагам
-
Перейдите в папку conf вашей папки apache.
C:\Apache24\conf
-
Откройте файл с именем
httpd.conf
-
Перейти в раздел
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
-
Добавьте к нему 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
Загрузите страницу, и теперь она отлично работает.
это сработало для меня, когда я столкнулся с этой ошибкой...