Теперь мы почти готовы к запуску нашего сайта! Последним, что мы сделаем,
будет настройка виртуального хоста Apache. Термин "виртуальный хост"
означает, что вы можете держать несколько сайтов на одном компьютере.
Виртуальные сайты отличаются доменным именем (как например, site.mydomain.com
и site2.mydomain.com
)
или номером порта (как localhost
и localhost:8080
). Виртуальные хосты
работают прозрачно для пользователей сайта, то есть, они не будут знать, на одной
машине работают сайты или же на нескольких.
На данный момент наше скелетное приложение находится в домашнем каталоге. Чтобы оповестить о нем Apache, нам нужно изменить файл виртуального хоста.
Файл виртуального хоста может находиться в разных местах, это зависит от вашей операционной системы. Например, в Linux Ubuntu он расположен в файле
/etc/apache2/sites-available/000-default.conf
. Для информации о виртуальных хостах, касающейся разных ОС, смотрите Приложение A. Организация среды веб-разработки.
Теперь внесем изменения в стандартный файл виртуального хоста, чтобы он выглядел, как представлено ниже (мы подразумеваем, что вы используете версию 2.4 Apache):
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /home/username/helloworld/public
<Directory /home/username/helloworld/public/>
DirectoryIndex index.php
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Строка 1 указывает Apache слушать все (*) IP-адреса с портом 80.
Строка 2 определяет электронный адрес вебмастера. Если с сайтом что-то случится, Apache вышлет оповещение на этот адрес. Вы можете ввести здесь ваш e-mail.
Строка 4 определяет корневой каталог документов (APP_DIR/public
). Все хранящиеся
тут файлы и каталоги будут доступны пользователям. Следует установить здесь
абсолютный путь к каталогу public
скелетного приложения.
Таким образом, каталоги и файлы внутри public
(такие как index.php
, css
, js
и др.)
будут доступны, в то время как каталоги и файлы над этой директорией public
(такие как
config
, module
и др.) будут недоступны пользователям, что повышает
безопасность сайта.
Строки 6-10 определяют правила для корневого каталога документов (APP_DIR/public
).
Например, директива DirectoryIndex
указывает Apache, что файл index.php является индексным
файлом по умолчанию. Директива AllowOverride All
позволяет
определять любые правила в файле .htaccess
. Директива Require all granted
делает сайт
доступным для всех посетителей.
Zend Framework 3 использует модуль перезаписи URL Apache для перенаправления пользователей на скрипт входа вашего сайта. Пожалуйста, убедитесь, что у вашего веб-сервера включен модуль
mod_rewrite
. Инструкции о том, как его подключить, вы можете найти в Приложение А. Организация среды веб-разработки.
После изменения файла конфигурации не забудьте перезапустить Apache, чтобы сохранить ваши изменения.