Назад | Перейти на главную страницу

Загрузите проект Symfony в каталог с Apache

У меня есть 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)

В конфигурации vhost вам нужно использовать следующее: Псевдоним / project1 / Apache24 / htdocs / project1 / public

Более подробная информация доступна по адресу: https://httpd.apache.org/docs/2.4/mod/mod_alias.html

Альтернативой может быть использование личного домена для вашего сайта, размещенного на вашем локальном хосте, путем добавления домена, такого как project1.local, в файл локальных хостов.

(Вам понадобится администратор, чтобы изменить этот файл) c: \ windows \ system32 \ drivers \ etc \ hosts или на * nix (Mac) это / etc / hosts

Добавление будет выглядеть примерно так, но не удаляйте ничего, что вы еще не добавили: 127.0.0.1 project1.local www.project1.local

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