Заметки по установке Apache
Apache — популярный и известный веб-сервер, доступный на многих платформах.
Настройка Apache для Phalcon
Ниже приведены возможные конфигурации для настройки Apache с Phalcon. Эти заметки в основном посвящены настройке модуля mod_rewrite, позволяющего использовать удобные URL и компонент маршрутизатора. Обычно приложение имеет следующую структуру:
test/
app/
controllers/
models/
views/
public/
css/
img/
js/
index.php
Директория под основным корнем документа
Это наиболее распространённый случай, когда приложение установлено в любой директории под корнем документа. В этом случае мы используем два файла .htaccess: первый для скрытия кода приложения, перенаправляя все запросы в корень документа приложения (public/).
# test/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule ((?s).*) public/$1 [L]
</IfModule>
Теперь второй файл .htaccess расположен в директории public/, он переписывает все URI в файл public/index.php:
# test/public/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^((?s).*)$ index.php?_url=/$1 [QSA,L]
</IfModule>
Если вы не хотите использовать файлы .htaccess, вы можете перенести эти конфигурации в основной конфигурационный файл Apache:
<IfModule mod_rewrite.c>
<Directory "/var/www/test">
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule ((?s).*) public/$1 [L]
</Directory>
<Directory "/var/www/test/public">
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^((?s).*)$ index.php?_url=/$1 [QSA,L]
</Directory>
</IfModule>
Виртуальные хосты
И эта вторая конфигурация позволяет установить приложение Phalcon в виртуальном хосте:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/var/vhosts/test/public"
DirectoryIndex index.php
ServerName example.host
ServerAlias www.example.host
<Directory "/var/vhosts/test/public">
Options All
AllowOverride All
Allow from all
</Directory>
</VirtualHost>
Или, если вы используете Apache 2.4 или выше:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/var/vhosts/test/public"
DirectoryIndex index.php
ServerName example.host
ServerAlias www.example.host
<Directory "/var/vhosts/test/public">
Options All
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
© 2011–2017 Phalcon Framework Team
Licensed under the Creative Commons Attribution License 3.0.
https://docs.phalconphp.com/en/latest/reference/apache.html