Apache Server не изменит корневую директорию

Вопрос или проблема

—Убран старый код—

Это все, что я изменил до сих пор, но каждый раз, когда я запускаю Apache и перехожу на свой localhost, я получаю phpinfo(); из индекса, который находится в папке xampp. И там все пути указывают на директорию xampp.

DOCUMENT_ROOT   K:/xxamp/htdocs
REQUEST_SCHEME  https
CONTEXT_PREFIX  no value
CONTEXT_DOCUMENT_ROOT   K:/xxamp/htdocs

Что очень запутывает, почему он не берет index.php, который у меня находится в директории K:/phpstormproecjt. Где мой индекс просто говорит

echo "test";

Спасибо заранее.

Поскольку есть много путаницы как с моей стороны, так и со стороны всех, кто пытается разобраться в проблеме, вот мой полный httpd.conf и vhosts.conf.

httpd.conf

# 
# Это основной файл конфигурации сервера Apache HTTP. Он содержит
# директивы конфигурации, которые дают серверу его инструкции.
# Смотрите <URL:http://httpd.apache.org/docs/2.4/> для подробной информации.
# В частности, смотрите
# <URL:http://httpd.apache.org/docs/2.4/mod/directives.html>
# для обсуждения каждой директивы конфигурации.
#
# Не читайте инструкции здесь просто так, не понимая,
# что они делают. Они здесь только как подсказки или напоминания. Если вы не уверены,
# обратитесь к онлайн-документации. Вы предупреждены.
#
# Имена конфигурации и журналы: Если имена файлов, которые вы указываете для многих
# контрольных файлов сервера, начинаются с "https://serverfault.com/" (или "drive:/" для Win32), 
# сервер будет использовать этот явный путь. Если имена файлов не начинают
# с "https://serverfault.com/", значение ServerRoot будет предшествовать -- так что "logs/access_log"
# с установленным ServerRoot "/usr/local/apache2" будет интерпретировано сервером как "/usr/local/apache2/logs/access_log", 
# в то время как "/logs/access_log" будет интерпретировано как '/logs/access_log'.
#
# ЗАМЕТКА: Где указаны имена файлов, вы должны использовать прямые слэши
# вместо обратных слэшей (например, "c:/apache" вместо "c:\apache").
# Если буква диска опущена, то по умолчанию будет использоваться диск, на котором находится httpd.exe.
# Рекомендуется всегда указывать
# явную букву диска в абсолютных путях, чтобы избежать путаницы.

#
# ServerRoot: Верхняя часть дерева каталогов, под которым находятся
# конфигурация сервера, ошибки и журналы.
#
# Не добавляйте слэш в конце пути к каталогу. Если вы укажете
# ServerRoot на не локальном диске, убедитесь, что вы указали локальный диск в
# директиве Mutex, если используются блокировки на основе файлов. Если вы хотите использовать
# одну и ту же ServerRoot для нескольких демонов httpd, вам нужно будет изменить
# как минимум PidFile.
#
ServerRoot "K:/xxamp/apache"

#
# Mutex: Позволяет вам задать механизм блокировки и каталог файлов блокировки
# для отдельных блокировок или изменить глобальные параметры по умолчанию
#
# Рекомендуется снять комментарий и изменить каталог, если блокировки основаны на файлах, и каталог файла блокировки по умолчанию не находится на локальном диске или не подходит по 
# какой-то другой причине.
#
# Mutex default:logs

#
# Listen: Позволяет вам привязать Apache к конкретным IP-адресам и/или
# портам, вместо значения по умолчанию. Также см. директиву <VirtualHost>.
#
# Измените это, чтобы слушать на конкретных IP-адресах, как показано ниже,
# чтобы предотвратить привязку Apache ко всем привязанным IP-адресам.
#
#Listen 12.34.56.78:80
Listen 80

#
# Поддержка динамически разделяемых объектов (DSO)
#
# Чтобы использовать функциональность модуля, построенного как DSO, вы
# должны разместить соответствующие строки `LoadModule' в этом месте, чтобы
# директивы, содержащиеся в нем, были доступны _до_ их использования.
# Статически скомпилированные модули (те, которые перечислены с помощью `httpd -l') не нужно
# загружать здесь.
#
# Пример:
# LoadModule foo_module modules/mod_foo.so
#
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule allowmethods_module modules/mod_allowmethods.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_basic_module modules/mod_auth_basic.so
#LoadModule auth_digest_module modules/mod_auth_digest.so
#LoadModule auth_form_module modules/mod_auth_form.so
#LoadModule authn_anon_module modules/mod_authn_anon.so
LoadModule authn_core_module modules/mod_authn_core.so
#LoadModule authn_dbd_module modules/mod_authn_dbd.so
#LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_file_module modules/mod_authn_file.so
#LoadModule authn_socache_module modules/mod_authn_socache.so
#LoadModule authnz_fcgi_module modules/mod_authnz_fcgi.so
#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule authz_core_module modules/mod_authz_core.so
#LoadModule authz_dbd_module modules/mod_authz_dbd.so
#LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
#LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule autoindex_module modules/mod_autoindex.so
#LoadModule brotli_module modules/mod_brotli.so
#LoadModule buffer_module modules/mod_buffer.so
#LoadModule cache_module modules/mod_cache.so
#LoadModule cache_disk_module modules/mod_cache_disk.so
#LoadModule cache_socache_module modules/mod_cache_socache.so
#LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule cgi_module modules/mod_cgi.so
#LoadModule charset_lite_module modules/mod_charset_lite.so
#LoadModule data_module modules/mod_data.so
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dav_lock_module modules/mod_dav_lock.so
#LoadModule dbd_module modules/mod_dbd.so
#LoadModule deflate_module modules/mod_deflate.so
LoadModule dir_module modules/mod_dir.so
#LoadModule dumpio_module modules/mod_dumpio.so
LoadModule env_module modules/mod_env.so
#LoadModule expires_module modules/mod_expires.so
#LoadModule ext_filter_module modules/mod_ext_filter.so
#LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule filter_module modules/mod_filter.so
#LoadModule http2_module modules/mod_http2.so
LoadModule headers_module modules/mod_headers.so
#LoadModule heartbeat_module modules/mod_heartbeat.so
#LoadModule heartmonitor_module modules/mod_heartmonitor.so
#LoadModule ident_module modules/mod_ident.so
#LoadModule imagemap_module modules/mod_imagemap.so
LoadModule include_module modules/mod_include.so
LoadModule info_module modules/mod_info.so
LoadModule isapi_module modules/mod_isapi.so
#LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
#LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
#LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
#LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so
#LoadModule ldap_module modules/mod_ldap.so
#LoadModule logio_module modules/mod_logio.so
LoadModule log_config_module modules/mod_log_config.so
#LoadModule log_debug_module modules/mod_log_debug.so
#LoadModule log_forensic_module modules/mod_log_forensic.so
#LoadModule lua_module modules/mod_lua.so
LoadModule cache_disk_module modules/mod_cache_disk.so
#LoadModule macro_module modules/mod_macro.so
LoadModule mime_module modules/mod_mime.so
#LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_express_module modules/mod_proxy_express.so
#LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_hcheck_module modules/mod_proxy_hcheck.so
#LoadModule proxy_html_module modules/mod_proxy_html.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_http2_module modules/mod_proxy_http2.so
#LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
#LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
#LoadModule ratelimit_module modules/mod_ratelimit.so
#LoadModule reflector_module modules/mod_reflector.so
#LoadModule remoteip_module modules/mod_remoteip.so
#LoadModule request_module modules/mod_request.so
#LoadModule reqtimeout_module modules/mod_reqtimeout.so
LoadModule rewrite_module modules/mod_rewrite.so
#LoadModule sed_module modules/mod_sed.so
#LoadModule session_module modules/mod_session.so
#LoadModule session_cookie_module modules/mod_session_cookie.so
#LoadModule session_crypto_module modules/mod_session_crypto.so
#LoadModule session_dbd_module modules/mod_session_dbd.so
LoadModule setenvif_module modules/mod_setenvif.so
#LoadModule slotmem_plain_module modules/mod_slotmem_plain.so
#LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
#LoadModule socache_dbm_module modules/mod_socache_dbm.so
#LoadModule socache_memcache_module modules/mod_socache_memcache.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
#LoadModule speling_module modules/mod_speling.so
LoadModule ssl_module modules/mod_ssl.so
LoadModule status_module modules/mod_status.so
#LoadModule substitute_module modules/mod_substitute.so
#LoadModule unique_id_module modules/mod_unique_id.so
#LoadModule userdir_module modules/mod_userdir.so
#LoadModule usertrack_module modules/mod_usertrack.so
LoadModule version_module modules/mod_version.so
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
#LoadModule watchdog_module modules/mod_watchdog.so
#LoadModule xml2enc_module modules/mod_xml2enc.so

<IfModule unixd_module>
#
# Если вы хотите, чтобы httpd работал от другого пользователя или группы, вы должны сначала запустить
# httpd как root, и он переключится.
#
# User/Group: Имя (или номер) пользователя/группы, под которым будет работать httpd.
# Обычно разумной практикой является создание отдельного пользователя и группы для
# работы httpd, как и с большинством системных служб.
#
User daemon
Group daemon

</IfModule>

# 'Основная' конфигурация сервера
#
# Директивы в этом разделе настраивают значения, используемые 'основным'
# сервером, который отвечает на любые запросы, которые не обрабатываются
# определением <VirtualHost>. Эти значения также обеспечивают параметры по умолчанию для
# любых контейнеров <VirtualHost>, которые вы можете определить позже в файле.
#
# Все эти директивы могут появляться внутри контейнеров <VirtualHost>,
# в этом случае эти настройки по умолчанию будут переопределены для
# определяемого виртуального хоста.
#

#
# ServerAdmin: Ваш адрес, на который должны отправляться проблемы с сервером.
# Этот адрес появляется на некоторых страницах, сгенерированных сервером, таких
# как документы об ошибках. например, [email protected]
#
ServerAdmin postmaster@localhost

#
# ServerName задает имя и порт, которые сервер использует для самопознания.
# Это можно определить автоматически, но мы рекомендуем явно указать
# его, чтобы предотвратить проблемы при запуске.
#
# Если ваш хост не имеет зарегистрированного имени DNS, введите его IP-адрес здесь.
#
ServerName localhost:80

#
# Запретить доступ ко всей файловой системе вашего сервера. Вы должны
# явно разрешить доступ к каталогам веб-контента в других 
# блоках <Directory> ниже.
#
<Directory />
    AllowOverride none
    Require all granted
</Directory>

#
# Обратите внимание, что с этого момента вам нужно будет специально разрешить
# конкретные функции, чтобы их можно было включить - так что если что-то не работает так,
# как вы ожидаете, убедитесь, что вы конкретно разрешили это
# ниже.
#

#
# DocumentRoot: Каталог, из которого вы будете обслуживать
# ваши документы. По умолчанию все запросы принимаются из этого каталога, но
# могут использоваться символические ссылки и псевдонимы для указания на другие местоположения.
#
DocumentRoot "K:/xxamp/htdocs"
<Directory "K:/xxamp/htdocs">
    #
    # Возможные значения для директивы Options: "None", "All",
    # или любая комбинация:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Обратите внимание, что "MultiViews" должно быть указано *явно* --- "Options All"
    # не дает его вам.
    #
    # Директива Options как сложная, так и важная. Пожалуйста, смотрите
    # http://httpd.apache.org/docs/2.4/mod/core.html#options
    # для получения дополнительной информации.
    #
    Options Indexes FollowSymLinks Includes ExecCGI

    #
    # AllowOverride контролирует, какие директивы могут быть размещены в файлах .htaccess.
    # Это может быть "All", "None" или любая комбинация ключевых слов:
    #   AllowOverride FileInfo AuthConfig Limit
    #
    AllowOverride All

    #
    # Контролирует, кто может получать данные с этого сервера.
    #
    Require all granted
</Directory>

#
# DirectoryIndex: устанавливает файл, который Apache будет обслуживать, если запрашивается каталог.
#
<IfModule dir_module>
    DirectoryIndex index.php index.pl index.cgi index.asp index.shtml index.html index.htm \
                   default.php default.pl default.cgi default.asp default.shtml default.html default.htm \
                   home.php home.pl home.cgi home.asp home.shtml home.html home.htm
</IfModule>

#
# Следующие строки предотвращают просмотр файлов .htaccess и .htpasswd
# веб-клиентами. 
#
<Files ".ht*">
    Require all denied
</Files>

#
# ErrorLog: Местоположение файла журнала ошибок.
# Если вы не укажете директиву ErrorLog внутри блока <VirtualHost>,
# сообщения об ошибках, относящиеся к этому виртуальному хосту, будут
# записаны здесь. Если вы *определите* файл журнала ошибок для блока <VirtualHost>
# этого хоста, ошибки этого хоста будут записаны там, а не здесь.
#
ErrorLog "logs/error.log"

#
# LogLevel: Контроль количества сообщений, записываемых в error_log.
# Возможные значения включают: debug, info, notice, warn, error, crit,
# alert, emerg.
#
LogLevel warn

<IfModule log_config_module>
    #
    # Следующие директивы определяют несколько форматов имен для использования
    # с директивой CustomLog (см. ниже).
    #
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common

    <IfModule logio_module>
      # Вам нужно включить mod_logio.c, чтобы использовать %I и %O
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>

    #
    # Местоположение и формат файла журнала доступа (Формат общего журнала).
    # Если вы не определите журналы доступа внутри блока <VirtualHost>,
    # они будут записаны здесь. Напротив, если вы *определите*
    # журналы доступа для каждого блока <VirtualHost>, транзакции будут
    # записаны там и *не* в этом файле.
    #
    #CustomLog "logs/access.log" common

    #
    # Если вы предпочитаете файл журнала с информацией о доступе, агента и реферере
    # (Формат общего журнала) вы можете использовать следующую директиву.
    #
    CustomLog "logs/access.log" combined
</IfModule>

<IfModule alias_module>
    #
    # Redirect: Позволяет вам сообщить клиентам о документах, которые когда-то
    # существовали в пространстве имен вашего сервера, но больше не существуют. Клиент
    # сделает новый запрос на документ по его новому местоположению.
    # Пример:
    # Redirect permanent /foo http://www.example.com/bar

    #
    # Alias: Соединяет веб-пути с файловыми путями и используется для
    # доступа к контенту, который не находится под DocumentRoot.
    # Пример:
    # Alias /webpath /full/filesystem/path
    #
    # Если вы добавите завершающий / на /webpath, серверу будет
    # необходимо, чтобы он присутствовал в URL. Вам также, вероятно,
    # нужно будет предоставить секцию <Directory>, чтобы разрешить доступ к
    # файловому пути.

    #
    # ScriptAlias: Это определяет, какие каталоги содержат серверные скрипты. 
    # ScriptAliases по сути аналогичны Alias, за исключением того, что
    # документы в целевом каталоге обрабатываются как приложения и
    # запускаются сервером при запросе, а не как документы, отправленные
    # клиенту. Те же правила о завершающем "https://serverfault.com/" применяются к директивам ScriptAlias
    # как и к Alias.
    #
    ScriptAlias /cgi-bin/ "K:/xxamp/cgi-bin/"

</IfModule>

<IfModule cgid_module>
    #
    # ScriptSock: На потоковых серверах укажите путь к UNIX
    # сокету, используемому для связи с CGI-демоном mod_cgid.
    #
    #Scriptsock cgisock
</IfModule>

#
# "K:/xxamp/cgi-bin" должен быть изменен на то, где находится ваш ScriptAliased
# каталог CGI, если у вас это настроено.
#
<Directory "K:/xxamp/htdocs">
    AllowOverride All
    Options None
    Require all granted
</Directory>

<IfModule headers_module>
    #
    # Избегайте передачи переменной окружения HTTP_PROXY CGI на этом или любом прокси-программном
    # сервере, у которого есть длительные недостатки "httpoxy".
    # Заголовок запроса 'Proxy' не определен IETF, не указан IANA
    #
    RequestHeader unset Proxy early
</IfModule>

<IfModule mime_module>
    #
    # TypesConfig указывает на файл, содержащий список соответствий от
    # расширения имени файла к MIME-типу.
    #
    TypesConfig conf/mime.types

    #
    # AddType позволяет вам добавлять или переопределять конфигурацию MIME,
    # указанную в TypesConfig для конкретных типов файлов.
    #
    #AddType application/x-gzip .tgz
    #
    # AddEncoding позволяет определенным браузерам расшифровывать
    # информацию на лету. Примечание: не все браузеры поддерживают это.
    #
    #AddEncoding x-compress .Z
    #AddEncoding x-gzip .gz .tgz
    #
    # Если директивы AddEncoding выше закомментированы, то вам
    # вероятно следует определить эти расширения, чтобы указать типы медиа:
    #
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz

    #
    # AddHandler позволяет вам сопоставлять определенные расширения файлов с "обработчиками":
    # действия, не относящиеся к типу файла. Эти действия могут быть как встроены в сервер,
    # так и добавлены с помощью директивы Action (см. ниже)
    #
    # Чтобы использовать CGI-скрипты вне каталогов ScriptAliased:
    # (Вам также потребуется добавить "ExecCGI" в директиву "Options".)
    #
    AddHandler cgi-script .cgi .pl .asp

    # Для карт типов (согласованные ресурсы):
    #AddHandler type-map var

    #
    # Фильтры позволяют вам обрабатывать контент перед отправкой его клиенту.
    #
    # Чтобы разобрать .shtml файлы для серверных включений (SSI):
    # (Вам также потребуется добавить "Includes" в директиву "Options".)
    #
    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
</IfModule>

#
# Модуль mod_mime_magic позволяет серверу использовать различные подсказки из
# содержимого файла для определения его типа. Директива MIMEMagicFile
# указывает модулю, где находятся определения подсказок.
#
<IfModule mime_magic_module>
    #
    # Модуль mod_mime_magic позволяет серверу использовать различные подсказки из
    # содержимого файла для определения его типа. Директива MIMEMagicFile
    # указывает модулю, где находятся определения подсказок.
    #
    MIMEMagicFile "conf/magic"
</IfModule>

#
# Пользовательские ответы на ошибки бывают трех видов:
# 1) простой текст 2) локальные перенаправления 3) внешние перенаправления
#
# Некоторые примеры:
#ErrorDocument 500 "Сервер сделал ошибку."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.example.com/subscription_info.html
#

#
# MaxRanges: Максимальное количество диапазонов в запросе перед
# возвратом всего ресурса или одно из специальных
# значений 'по умолчанию', 'нет' или 'неограниченно'.
# Значение по умолчанию - принимать 200 диапазонов.
#MaxRanges unlimited

#
# EnableMMAP и EnableSendfile: На системах, которые это поддерживают,
# для передачи файлов могут использоваться memory-mapping или системный вызов sendfile. 
# Это обычно улучшает производительность сервера, но должно
# быть отключено при обслуживании с сетевых файловых систем или если
# поддержка этих функций на вашей системе иным образом сломана.
# Значения по умолчанию: EnableMMAP On, EnableSendfile Off
#
#EnableMMAP off
#EnableSendfile off

# Дополнительная конфигурация
#
# Файлы конфигурации в директории conf/extra/ могут быть
# включены, чтобы добавить дополнительные функции или изменить
# конфигурацию сервера по умолчанию, или вы можете просто скопировать их содержимое сюда и изменить по
# мере необходимости.

# Управление пулами серверов (конкретные MPM)
Include conf/extra/httpd-mpm.conf

# Многоязычные сообщения об ошибках
Include conf/extra/httpd-multilang-errordoc.conf

# Красивые списки директорий
Include conf/extra/httpd-autoindex.conf

# Настройки языка
Include conf/extra/httpd-languages.conf

# Директории пользователей
Include conf/extra/httpd-userdir.conf

# Информация в реальном времени о запросах и конфигурации
Include conf/extra/httpd-info.conf

# Виртуальные хосты
Include conf/extra/httpd-vhosts.conf

# Локальный доступ к справочнику Apache HTTP Server
#Include conf/extra/httpd-manual.conf

# Распределенное авторство и версионность (WebDAV)
#Внимание! WEB_DAV представляет собой риск безопасности без новой
#конфигурации для безопасной аутентификации
#Include conf/extra/httpd-dav.conf

# Различные настройки по умолчанию
#Include conf/extra/httpd-default.conf
# Реализует прокси/шлюз для Apache.
Include "conf/extra/httpd-proxy.conf"
# Различные настройки по умолчанию
Include "conf/extra/httpd-default.conf"
# Настройки XAMPP
Include "conf/extra/httpd-xampp.conf"

# Настройка mod_proxy_html для понимания HTML4/XHTML1
<IfModule proxy_html_module>
Include conf/extra/proxy-html.conf
</IfModule>

# Безопасные (SSL/TLS) соединения
Include conf/extra/httpd-ssl.conf
#
# Заметка: следующее должно присутствовать для поддержки
#       запуска без SSL на платформах без эквивалента /dev/random
#       но с статически встроенным mod_ssl.
#
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>

# XAMPP: Мы отключаем оптимизацию, специфичную для операционной системы, для прослушивающего
# сокета по протоколу http здесь. IE 64 бит создает проблемы без этого.

AcceptFilter http none
AcceptFilter https none
# Прокси AJP13
<IfModule mod_proxy.c>
<IfModule mod_proxy_ajp.c>
Include "conf/extra/httpd-ajp.conf"
</IfModule>
</IfModule>

vhosts.conf

# Виртуальные хосты
#
# Требуемые модули: mod_log_config

# Если вы хотите поддерживать несколько доменов/имён хостов на вашем
# компьютере, вы можете настроить контейнеры VirtualHost для них. Большинство конфигураций
# используют только виртуальные хосты на основе имени, так что сервер не должен беспокоиться о
# IP-адресах. Это обозначается звёздочками в директивах ниже.
#
# Пожалуйста, смотрите документацию на 
# <URL:http://httpd.apache.org/docs/2.4/vhosts/>
# для дальнейших деталей перед тем, как пытаться настроить виртуальные хосты.
#
# Вы можете использовать опцию командной строки '-S', чтобы проверить вашу конфигурацию виртуального хоста.

#
# Пример VirtualHost:
# Почти любая директива Apache может находиться в контейнере VirtualHost.
# Первый блок VirtualHost используется для всех запросов, которые не соответствуют
# ServerName или ServerAlias в любом блоке <VirtualHost>.
#
<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "K:/phpstormproject"
    ServerName phpstormproject
    <Directory "K:/phpstormproject">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

Ваш файл httpd-vhosts.conf должен содержать раздел, подобный этому (проверьте кавычки и правила доступа).

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "K:/phpstormproject"
    ServerName phpstormproject
    <Directory "K:/phpstormproject">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

Нет необходимости помещать что-либо в файл httpd.conf. Старайтесь сохранять все в виртуальном хосте в замкнутом состоянии.
Также, AllowOverride All предназначен для файлов .htaccess, если они вам не нужны, установите значение на None вместо этого.

Это просто, localhost не является вашим виртуальным хостом. Если вы назначите ваше виртуальное имя хоста (phpstormproject) вашему компьютеру и затем откроете http://phpstormproject, это сработает. Вы можете сделать это, просто отредактировав файл hosts и добавив в него:
127.0.0.1 phpstormproject
Работает на всех операционных системах одинаково

Проверьте, редактируете ли вы правильный файл vhost. Путь должен быть примерно таким:

xampp\apache\conf\extra\httpd-vhosts.conf

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

<VirtualHost *:80> 
   DocumentRoot "C:\XAMPP\htdocs\project-name"
    ServerName project-name.local
</VirtualHost>

ОБНОВЛЕНИЕ

После проверки вашего обновленного кода я заметил, что схема запроса phpinfo() – это https. Если вы пытаетесь подключиться через https, вам нужно обновить файл vhosts.conf на порт 443 вместо порта 80.

Попробуйте это:

<VirtualHost *:443>
    ServerAdmin [email protected]
    DocumentRoot "K:/phpstormproject"
    ServerName phpstormproject
    <Directory "K:/phpstormproject">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

Хорошо, чтобы вы теперь могли открыть http://phpstormproject в вашем браузере, вам нужно снова проверить, что установлено в conf/extra/httpd-vhosts.conf как DocumentRoot для вашего вхоста.
Это должно быть что-то вроде:

<VirtualHost *:443>
    ServerAdmin [email protected]
    DocumentRoot "K:/phpstormproject"
    ServerName phpstormproject
    <Directory "K:/phpstormproject">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>
и также:
<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "K:/phpstormproject"
    ServerName phpstormproject
    <Directory "K:/phpstormproject">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

это настроит виртуальный хост с именем phpstormproject для http и https доступа.
Настройка DocumentRoot должна указывать на ваш назначенный каталог для этой веб-страницы/проекта.
После того как вы проверите/исправите настройки вашего виртуального хоста, завершите работу/перезапустите xampp, чтобы перезагрузить настройки для apache!

Ответ или решение

Ваша проблема с Apache-сервером, который не изменяет корневой каталог, может быть вызвана несколькими факторами, которые сейчас будем анализировать более подробно.

1. Проверка файла конфигурации httpd.conf

Вы упомянули, что при запуске Apache и обращении к localhost отображается страница phpinfo(), находящаяся в папке K:/xxamp/htdocs. Судя по вашему файлу httpd.conf, корень документа установлен на K:/xxamp/htdocs:

DocumentRoot "K:/xxamp/htdocs"
<Directory "K:/xxamp/htdocs">
    ...
</Directory>

Чтобы изменить корневой каталог для вашего проекта, необходимо отредактировать этот параметр и указать корректный путь к вашему проекту. Например:

DocumentRoot "K:/phpstormproject"
<Directory "K:/phpstormproject">
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Require all granted
</Directory>

2. Настройка виртуальных хостов

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

Ваш конфиг для виртуального хоста может выглядеть так:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot "K:/phpstormproject"
    ServerName phpstormproject.local
    <Directory "K:/phpstormproject">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

3. Изменение файла hosts

Чтобы ваш виртуальный хост был доступен, не забудьте внести изменения в файл hosts, добавив следующую строку:

127.0.0.1 phpstormproject.local

После этого вы сможете открыть http://phpstormproject.local в вашем браузере.

4. Вопрос с конфигурацией HTTPS

Если вы обращаетесь по протоколу HTTPS, убедитесь сейчас также в корректной настройке сертификатов для использования SSL, а виртуальный хост будет выглядеть следующим образом:

<VirtualHost *:443>
    ServerAdmin webmaster@localhost
    DocumentRoot "K:/phpstormproject"
    ServerName phpstormproject.local
    SSLEngine on
    SSLCertificateFile "path/to/your/certificate.crt"
    SSLCertificateKeyFile "path/to/your/private.key"
    <Directory "K:/phpstormproject">
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

Если вы не используете HTTPS, убедитесь, что запросы к вашему проекту происходят по HTTP.

5. Перезапуск сервера

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

6. Заключение

Эти шаги помогут вам настроить Apache-сервер таким образом, чтобы он использовал корневой каталог вашего проекта. Убедитесь, что все директории имеют правильные разрешения и что вы используете актуальную версию XAMPP с включенными необходимыми модулями. Если у вас останутся трудности, рекомендуется проверить логи Apache на наличие ошибок, что может дать дополнительную подсказку о проблемах в вашей конфигурации.

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

Капча загружается...