У меня есть PHP-приложение Symfony, которое я хочу запустить в Сервер Windows с Apache 2.4
Его файлы хранятся в D: \ Apache24 \ htdocs \ project1 \ public
Его точка входа - D: \ Apache24 \ htdocs \ project1 \ public \ index.php
Я следовал инструкциям, доступным на https://symfony.com/doc/current/setup/web_server_configuration.html , и добавил это в свой \ Apache24 \ conf \ extra \ httpd-vhosts. conf
:
<VirtualHost *:80>
ServerName localhost
ServerAlias localhost
DocumentRoot /Apache24/htdocs/project1/public
<Directory /Apache24/htdocs/project1/public>
AllowOverride All
Require all granted
</Directory>
# uncomment the following lines if you install assets as symlinks
# or run into problems when compiling LESS/Sass/CoffeeScript assets
# <Directory /var/www/project>
# Options FollowSymlinks
# </Directory>
ErrorLog /Apache24/logs/project1_error.log
CustomLog /Apache24/logs/project1_access.log combined
</VirtualHost>
Но затем мой проект берет на себя сервер и загружается в корень, а я этого не хочу.
Я хочу, чтобы приложение этого проекта обслуживалось как http: // localhost / project1
Как я могу добиться этого и соответствовать требованиям маршрутизации Symfony?
Это мой http -S
вывод:
Included configuration files:
(*) D:/Apache24/conf/httpd.conf
(514) D:/Apache24/conf/extra/httpd-vhosts.conf
VirtualHost configuration:
*:80 localhost (D:/Apache24/conf/extra/httpd-vhosts.conf:41)
ServerRoot: "D:/Apache24"
Main DocumentRoot: "D:/Apache24/htdocs"
Main ErrorLog: "D:/Apache24/logs/error.log"
Mutex default: dir="D:/Apache24/logs/" mechanism=default
PidFile: "D:/Apache24/logs/httpd.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
Define: DUMP_MODULES
Define: DUMP_INCLUDES
Define: SRVROOT=D:\Apache24
Loaded Modules:
core_module (static)
win32_module (static)
mpm_winnt_module (static)
http_module (static)
so_module (static)
actions_module (shared)
alias_module (shared)
allowmethods_module (shared)
asis_module (shared)
auth_basic_module (shared)
authn_core_module (shared)
authn_file_module (shared)
authz_core_module (shared)
authz_groupfile_module (shared)
authz_host_module (shared)
authz_user_module (shared)
autoindex_module (shared)
cgi_module (shared)
dir_module (shared)
env_module (shared)
include_module (shared)
isapi_module (shared)
log_config_module (shared)
mime_module (shared)
negotiation_module (shared)
setenvif_module (shared)
php7_module (shared)
В конфигурации виртуального хоста необходимо использовать следующее: Псевдоним /project1 /Apache24/htdocs/project1/public
Дополнительная информация доступна по адресу: https://httpd.apache.org/docs/2.4/mod/mod_alias.html
Альтернативой может быть использование собственного домена для вашего сайта, размещенного на вашем локальном хосте, путем добавления домена, такого как project1.local , в ваш локальный файл hosts.
(Вам понадобится администратор, чтобы изменить этот файл) c:\windows\system32\drivers\etc\hosts или на *nix (Mac) это /etc/hosts
Добавление будет выглядеть примерно так, но не удаляйте ничего, что вы еще не добавили: 127.0.0.1 project1.local www.project1.local
Я предпочитаю второй подход к разработке, так как у меня может быть имя хоста локального веб-сайта, похожее на рабочее. Это также делает переход от среды разработки к рабочей среде более плавным, поскольку приложение зависит только от другого имени хоста, а не от имени хоста и пути.