Меню Закрыть

Apache index php по умолчанию

Содержание

Web-сервер — сложный программный продукт. Поэтому для корректной работы на установленной системе его необходимо настроить. Настройка Apache и PHP с минимальной, но вполне рабочей конфигурацией, займет совсем немного времени.

По умолчанию настройки Apache расположены в файле "httpd.conf" в директории "conf". Далее будут описаны основные директивы файла "httpd.conf", которые нужно изменить.

Следуя данным инструкциям, описанных в разделах (Установка Web-сервера Apache в среде Windows и Установка интерпретатора PHP в среде Windows) в корневой директории сервера существует директория "C:web_serverapachehtdocs ". Именно в ней находится файл "index.html", который отражается по имени "localhost".

За определение корневой директории сайта отвечает директива DocumentRoot в файле "C:web_serverapacheconfhttpd.conf".
Директива ServerName указывает, на какое доменное имя должно соответствовать вашему сайту.

В виртуальном хосте по умолчанию директива ServerName не указана, поэтому он будет отвечать на любые запросы, несоответствующие директивам ServerName в других виртуальных хостах.

Нам же нужно раскрыть комментарий поля ServerName, то есть удалить символ "#" перед параметром (установлен по умолчанию), потому что все, что идет после этого символа Apache игнорирует.
В поле DocumentRoot укажите тот каталог, в котором будут размещены ваши HTML файлы. По умолчанию этот каталог:
Найдите секцию, которая начинается " " и заканчивается " ". (Эти блоки содержат настройки для данного каталога и всех подкаталогов). По умолчанию он выглядит так:
Его нужно заменить на секцию следующего вида:
Этим вы обеспечите, что в данном блоке будут храниться настройки для всех каталогов по умолчанию (так как с:/ — корневой каталог). А именно, для всех каталогов по умолчанию является возможность автоматически генерировать индекс-список содержимого каталогов при просмотре его в браузере, а также поддержка SSI и разрешение на выполнение файлов .htaccess для индивидуальных настроек каталогов. Именно файл .htaccess используется во многих CMS. Более подробно читайте в статье: Настройка Httpd.conf для совместной работы с .htaccess.

Найдите аналогичный блок, который начинается " " и заканчивается " ". Там будет много комментариев, не обращайте внимания. Эту секцию следует удалить, то есть все настройки для каталога со страницами должны зависеть от настройки по умолчанию, которые мы только настроили.

Инициализируем настройки DirectoryIndex так:
Это файлы индекса, которые автоматически возвращаются сервером при запросе к любому каталогу, если не указано имя html документа. Можно добавить дополнительно параметр index.php, но лучше дополнительные настройки делать в файлах .htaccess для каждого сайта отдельно.

Последнее, что нужно сделать, это включить модуль Rewrite. Для этого достаточно убрать решетку перед следующей строкой:
Далее переходим к настройкам модуля PHP.

Открываем файл "php.ini", который находится в директории "C:web_serverphp". Далее будут описаны основные директивы, которые нужно изменить.

Желательно включить отчет об ошибках в окне браузера. Для этого нужно поставить значение "On" в директиве Display_errors.
Еще нужно изменить значение директивы Short_open_tag, которая определяет, разрешается короткая форма записи тегов " ".
Последнее что нужно сделать, это проверить подключение библиотеки php_mbstring.dll. Библиотека содержит функции для работы с много-байтными кодировками, к которым относятся кодирования восточных языков (японский, китайский, корейский), Юникод (UTF-8) и другие. Библиотека php_mbstring.dll должна присутствовать в директории "C:web_serverphpext". В конфигурационном файле php.ini необходимо существование строк:
Информацию о большинстве директив можно получить на странице Директивы PHP.

Вот и все, минимальные настройки веб-сервера сделаны. Теперь можно работать с веб приложениями. Чтобы проверить, нужно закачать в папку "C:web_serverapachehtdocs" нужен скрипт и открыть в браузере страницу "http://localhost/".

Минимальные настройки Apache и PHP сделаны.

80 001 [2010-03-05 06:41:00]

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

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

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

php apache centos apache-config

9 ответов

125 Решение John Himmelman [2010-03-05 06:48:00]

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

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

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

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

82 M_M [2011-11-02 12:00:00]

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

Примечание:

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

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

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

33 Ben Rowe [2010-03-05 06:54:00]

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

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

6 Maruf [2014-11-02 17:05:00]

Это может быть полезно кому-то. вот фрагмент из httpd.conf(окна Apache версии 2.2)

Читайте также:  Ил 2 штурмовик битва за сталинград обзор

теперь это будет искать файл index.html, если не найден, он будет искать index.php.

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

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

2 animuson [2010-03-05 06:49:00]

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

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

1 Zitun [2014-06-30 15:21:00]

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

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

-7 gondwe [2015-05-04 12:22:00]

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

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

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

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

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

Несколько слов о веб-сервере Apache

Мы используем Apache httpd в качестве основного веб-сервера. Apache используется для организации большинства веб-серверов в мире и является самым массовым продуктом своего класса. Этот сервер обладает обширными возможностями конфигурации, является очень производительным и поддерживает все известные протоколы для работы веб-серверов. Специально для Apache созданы версии таких популярных языков программирования как Perl и PHP, а также этот сервер легко интегрируется с широко применяемыми СУБД (например, MySQL).

Главный сайт проекта находится по адресу httpd.apache.org, а основная документация по версии 1.3.хх доступна на странице httpd.apache.org/docs/.

Пользователям мы предоставляем возможность самостоятельной конфигурации Apache путем использования соответствующих директив в файле .htaccess. Таким образом можно решить большинство задач по конфигурации веб-сервера в условиях массового хостинга.

Индексный файл

Индексный файл или файл-индекс — это тот файл, который открывается по умолчанию при обращении пользователя через веб к каталогу, а не к конкретному файлу. Например, ваш посетитель запросит адрес http://ваш_домен/price/, где price — название каталога. Индексный файл это тот файл, который будет показан пользователю при обращении к каталогу без указании имени конкретного файла в нем.

По умолчанию индексными файлами являются следующие: index.html, index.htm, index.php, index.php3, index.phtml, index.shtml, default.htm или default.html. Если вы хотите чтобы первым открывался какой-то иной файл, нужно переопределить текущие значения. Как это сделать читайте здесь.

Назначение и использование файла .htaccess

Файл .htaccess (обратите внимание, что первый символ в названии файла — точка) применяется для управления веб-сервером Apache со стороны конечного пользователя хостинга. Вы помещаете в этот файл директивы, которые веб-сервер воспринимает и обрабатывает, выполняя действия в соответствии с настройками, которые были сделаны пользователем.

Файл .htaccess может быть размещен в корневом каталоге веб-сервера (прямо в каталоге www). В этом случае директивы из такого .htaccess действуют по всему веб-серверу. Также .htaccess может находиться и в конкретном подкаталоге сервера. Тогда директивы, которые указаны в этом файле, «перекрывают» действие директив из «основного» файла, который размещен в каталоге www или в любом каталоге более высокого уровня. То есть, действие директив из .htaccess наследуется сверху вниз, но не наоборот. Изменения, внесенные в файл, вступают в силу немедленно. Это связано с тем, что информация из .htaccess перечитывается при каждом обращении к веб-серверу Apache.

В .htaccess может быть помещено большинство из доступных директив для веб-сервера. Следует заметить, что директивы, в описании которых в поле Context отсутствует упоминание .htaccess недоступны для использования в этом файле конфигурации. На примере директивы AddType видим, что поле Context содержит упоминание о .htaccess , соответственно вы можете ее использовать:

Если использовать нужную директиву не получилось, и вы увидели ошибку после добавления директивы в .htaccess , скорее всего, использование команды запрещено в условиях виртуального хостинга. Напишите в техническую поддержку, мы постараемся вам помочь. Просьба подробно описать проблему и указать цели, которых хотите достичь использованием данной директивы.

Web Application Firewall

Web Application Firewall (ModSecurity) необходим для обнаружения и предотвращения атак на веб-сайты. Проверка осуществляется определенным набором правил и, если она не пройдена, запрос к сайту отклоняется с ошибкой (403 forbidden).

В случае ложных срабатываний, отключать правила возможно через .htaccess, используя опции приведенные ниже:

  • SecRuleRemoveById — удалить правило по >SecRuleRemoveByTag — удалить правило по тегу. [tag: ""]

Определить, какое именно правило необходимо отключить, можно в журнале ошибок error.log

Пример отключения по ID :

Примеры отключения по Tag :

Переопределение кодировки:

По умолчанию веб-сервер «отдает» все html-документы, которые размещены на сервере в кодировке windows-1251. Изменить тип кодировки, в которой веб-сервер будет «отдавать» информацию, можно в личном кабинете https://cp.masterhost.ru.

Читайте также:  Прекращена работа the crew при запуске

Для этого перейдите в раздел «Древо услуг» и выберите домен, для которого необходимо изменить тип кодировки. Далее в списке параметров найдите строчку кодировка (по умолчанию) и нажмите на добавить, как показано на рисунке ниже.

Изменить кодировку можно также с помощью файла .htaccess . Для этого добавьте в него строку

Получив такой .htaccess , веб-сервер Apache станет выдавать клиентскому браузеру заголовок, в котором будет указано, что документ имеет кодировку koi8-r.

Если на вашем ресурсе существуют html-документы в разных кодировках, (ISO-8859-1, Windows-1250, Windows-1252, UTF-8), то вам, возможно, будет необходимо отключить принудительную выдачу заголовка с кодировкой windows-1251. Для этого в .htaccess добавляется строка:

При этом соответствующая кодировка должна быть прописана на каждой html-странице в виде тега

Пример: как закрыть директорию паролем

Одна из стандартных задач, которая решается путем использования .htaccess , это ограничение доступа к определенному каталогу на сервере. Например, нужно дать доступ к определенному каталогу отдельным посетителям, снабдив их при этом уникальным логином и паролем.

В каталоге, к которому хотим ограничить доступ по паролю, создаем файл .htaccess с такими директивами:

Путь /home/uXXXXX/.htpasswd обозначает полный путь к файлу паролей на диске нашего сервера. Если, например, вы поместите файл .htpasswd (в нем будут пароли) в домашний каталог, куда вы попадаете зайдя на сервер по FTP, то путь к этому файлу будет иметь вид /home/uXXXXX/.htpasswd, где uXXXXX — наименование вашей виртуальной площадки (например, u12345).

В директиве AuthUserFile указываем абсолютный путь к файлу с логинами/паролями, который мы создадим чуть позже. Если вы создаете файл .htaccess на своем компьютере, а не сразу на сервере при помощи текстового редактора, обратите внимание на то, что .htaccess должен передаваться по FTP строго в текстовом (ASCII) режиме.

Создаем файл паролей. Файл с паролями должен содержать строки вида login:password. Пароль должен быть зашифрован с использованием алгоритма MD5. Один из способов создать такой файл — воспользоваться программой, входящей в поставку Apache — htpasswd (на нашем сервере она находится в каталоге /usr/local/bin/, полный путь — /usr/local/bin/htpasswd).

Рассмотрим как создать файл паролей в unix shell прямо на сервере. Зайдем в shell, и будем выполнять следующие команды:

  • создаем новый файл .htpasswd, в который добавляем запись для пользователя user1 с паролем, указанным в командной строке. Просьба обязательно заменить sNQ7j9oR2w на любой собственный пароль — здесь этот пароль указан только для примера
  • добавляем в уже существующий файл .htpasswd пользователя user2, а пароль вводим вручную в ответ на соответствующий запрос программы

Если вы используете Windows и не хотите пользоваться unix shell для генерации паролей, можно загрузить Windows-версию программы htpasswd здесь и создать файл с паролями на своем компьютере, после чего загрузить его на сервер. Если у вас уже установлена Windows-версия Apache, файл htpasswd.exe можно найти в каталоге Program FilesApache GroupApachein.

Итак, получите htpasswd.exe и используйте его для генерации паролей таким образом:

  • создаем новый файл паролей htpasswd.exe , пароль и его подтверждение будут запрошены интерактивно
  • добавляем пользователя user2 в существующий файл паролей htpasswd.exe , запросив пароль интерактивно

После окончания заведения всех логинов файл нужно загрузить на сервер.

Пример: переопределение индексного файла

Ситуация: пользователь обратился к каталогу http://www.ваш_домен.ru/price/. При таком запросе первым откроется и будет показан индексный файл. Если вы хотите переопределить индексный файл и сделать так, чтобы первым открывался не index.htm, а, например, файл myindex.php, то сделать это можно поместив в файл .htaccess в соответствующем каталоге следующую инструкцию:

Получив .htaccess с таким содержимым, веб-сервер Apache откроет по умолчанию именно файл myindex.php.

Пример: запрет и разрешение выдачи листинга

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

Файл .htaccess необходимо создавать именно в том каталоге, в котором планируется разрешить листинг. Данная директива будет действовать также и на все подкаталоги (это достигается включенной по умолчанию в настройках виртуального хоста директивой AllowOverride All).

По умолчанию включена директива Options -Indexes, и в случае отсутствия индексной страницы вы получите HTTP ошибку 403.

Если кодировка в именах файлов отображается не корректно, воспользуйтесь свойством Charset, чтобы указать нужную кодировку. Например для отображения кириллических символов в кодировке UTF-8 добавьте в файл .htaccess следующую инструкцию:

Пример: собственные страницы ошибок

Иногда посетители веб-сервера запрашивают страницы, которые по каким-то причинам на сервере не существуют: неправильная ссылка с другой страницы или с другого сайта, владелец сервера случайно удалил документ и так далее. По умолчанию Apache выдает некую довольно аскетичную страницу, на которой находится сообщение вроде «File not found». Вы можете создать альтернативную версию этой страницы, задав обработчик этой ошибки через .htaccess . Читайте об этом подробнее в разделе «Диагностика ошибок в работе сайта, обработка ошибок 403, 404. ».

Пример: запрет доступа с некоторых IP-адресов

Иногда возникает необходимость запретить доступ к сайту или его части с некоторых IP-адресов.

Читайте также:  Готовая диаграмма в ворде

В таком случае необходимо создать в нужной директории файл .htaccess с директивами. Например, чтобы запретить доступ с IP-адреса 172.16.16.16:

Теперь при попытке обратиться к сайту с IP-адреса 172.16.16.16 посетитель получит ошибку 403 или вашу страницу для этой ошибки.

Указание части адреса в виде 172.16.16 ограничит доступ из подсети 172.16.16/24.

Иногда требуется выполнить обратное действие и заблокировать доступ к сайту для всех IP кроме вашего (как узнать мой IP?). Например, чтобы открыть доступ только для IP-адреса 172.16.16.16, добавьте следующую инструкцию в файл .htaccess:

С более подробной документацией вы можете ознакомиться в документации по Apache.

Пример: запрет доступа к некоторым файлам

Иногда возникает необходимость запретить доступ к определенным файлам. Например, к конфигурационным файлам, содержащим реквизиты доступа к базам данных, интерфейсам и т.п. Допустим, в файле config.cfg вы храните логин/пароль доступа к базе данных. Создаем в этой директории файл .htaccess с директивами:

Теперь, если посетитель наберет в браузере нечто вида http://www.ваш_домен.ru//config.cfg, он получит ошибку 403 или вашу страницу для этой ошибки.

Пример: заголовок last-modified

В ряде случаев требуется, чтобы web-сервер выдавал HTTP-заголовок Last-Modified. К примеру, при регистрации вашего ресурса на Яндексе, возникает ошибка «Неправильные даты». Для статических документов cервер будет выдавать значение last-modified всегда. Это действительно для html-файлов. Для SSI cервер будет выдавать значение last-modified в том случае, если прописана директива «XBitHack full» (просто пропишите эту строку в .htaccess ), и для файла, к которому происходит обращение, выставлен атрибут «исполняемый» для группы. В скриптах last-modified выдается иными средствами. Например, если учесть то, что php-скрипт генерирует код динамически, то самым логичным будет в качестве last-modified отдавать текущую дату и время./>

Реализуется это следующим образом:

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

Полезные ссылки по теме:

Пример: управление кэшированием

Для того, чтобы сайт работал максимально эффективно, целесообразно устанавливать время кэширования для различных типов файлов на максимально возможный срок. Для этого существует модуль Apache mod_expires.

Настройка параметров модуля mod_expires производится в файле .htaccess, что позволяет сделать индивидуальные настройки для каждого каталога.

В приведенном ниже примере отключено кэширование для текстовых документов, установлен период обновления для файлов с расширением gif — 3 месяца с момента изменения файла, для файлов с расширением jpeg — 1 день с момента обращения:

Примечание: При использовании Parser если вам необходимо полностью исключить заголовки от модуля Apache mod_expires, то для этого необходимо в директории с parser3.cgi создать файл .htaccess и внести в него следующую директиву: ExpiresActive off

Пример: как создать переадресацию

    Если у вас размещены 2 домена (не обязательно на одной площадке) domain1.tld и domain2.tld, и вам необходимо, чтобы при обращении к domain2.tld у пользователей изменялся адрес на «правильный», и сразу происходило перенаправление, тогда добавьте для домена domain2.tld переадресацию на http://domain1.tld/. О том, как это сделать, написано в следующей статье.

Если вам необходимо, чтобы при обращении к вашему домену domain.tld происходило автоматическое перенаправление на www.domain.tld, создайте на виртуальной площадке в директории /home/uXXXX/domain.tld/www файл .htaccess (обратите внимание на то, что название файла начинается с точки) следующего содержания: где uXXXX — имя вашей виртуальной площадки, domain.tld — имя вашего домена.

  • О создании переадресаций с другими условиями вы можете узнать из документации по web-серверу Apache.
  • Переадресация с HTTP на HTTPS при использовании SSL

    Если необходимо запретить HTTP, оставив посетителям доступ только по защищенному протоколу HTTPS, то сделать это возможно в Личном кабинете

    • Древо услуг — Домен — Переадресация — Добавить
    • В открывшемся окне выбираем "Протокол http-> https" и нажимаем "Добавить услугу"

    Либо добавьте в файле .htaccess следующее правило:

    Пример: особенность переадресации на синонимах

    Предположим, есть домен domain1.tld и синоним domain2.tld. Если запросить в браузере адрес http://domain2.tld/dir/ со знаком слэша в конце, то будет отображена индексная страница из директории dir основного домена, при этом содержимое адресной строки браузера останется без изменений. Но если запросить http://domain2.tld/dir без слэша в конце, то произойдёт переадресация на http://domain1.tld/dir/, и содержимое адресной строки изменится соответствующим образом.

    Такова особенность работы модуля mod_dir, при которой если происходит запрос файла, являющегося директорией, но запрос не оканчивается знаком слэш, то mod_dir осуществляет внешнюю переадресацию на тот же адрес со знаком слэша в конце. В случае синонима при переадресации заменяется и имя домена.

    Если такое поведение веб-сервера вас не устраивает, добавьте в файл .htaccess следующие строки:

    О создании переадресаций с другими условиями вы можете узнать из документации по web-серверу Apache.

    Установленные модули Apache

    Список стандартных и дополнительных модулей для веб-сервера Apache, которые установлены на хостинговых машинах:

    • mod_env
    • mod_log_config
    • mod_mime
    • mod_include
    • mod_autoindex
    • mod_dir
    • mod_cgi
    • mod_actions
    • mod_alias
    • mod_rewrite
    • mod_access
    • mod_auth
    • mod_expires
    • mod_setenvif
    • mod_php
    • mod_headers
    • mod_security

    Наши пользователи могут конфигурировать и использовать данные модули в рамках, которые предусмотрены техническими стандартами и тарифным планом конкретного пользователя.

    Рекомендуем к прочтению

    Добавить комментарий

    Ваш адрес email не будет опубликован.