Apache 安装说明(Apache Installation Notes)

Apache 是一个流行且出名的web服务器,并且可以支持很多平台。

Apache 下配置 Phalcon(Configuring Apache for Phalcon)

以下内容是你可能在使用Apache下搭建Phalcon时可能会用到的配置。这些内容重点关注于mod_rewrite模块的配置,以便可以使用友好的链接和路由组件 router component 。通常一个应用会有以下目录结构:

  1. test/
  2. app/
  3. controllers/
  4. models/
  5. views/
  6. public/
  7. css/
  8. img/
  9. js/
  10. index.php

在主文档根目录下(Directory under the main Document Root)

这是一种最为常用的情况,应用安装在根目录下的任意一个目录。对于这种情况,我们使用两个.htaccess文件,第一个用于隐藏应用转发全部请求到对应文档根目录(public/)的相关代码。

  1. # test/.htaccess
  2. <IfModule mod_rewrite.c>
  3. RewriteEngine on
  4. RewriteRule ^$ public/ [L]
  5. RewriteRule ((?s).*) public/$1 [L]
  6. </IfModule>

然后第二个.htaccess位于public/下,并将全部的URI重定向到public/index.php文件。

  1. # test/public/.htaccess
  2. <IfModule mod_rewrite.c>
  3. RewriteEngine On
  4. RewriteCond %{REQUEST_FILENAME} !-d
  5. RewriteCond %{REQUEST_FILENAME} !-f
  6. RewriteRule ^((?s).*)$ index.php?_url=/$1 [QSA,L]
  7. </IfModule>

如果你不想使用这些.htaccess文件,你可以将这些配置移到apache的主配置文件中:

  1. <IfModule mod_rewrite.c>
  2. <Directory "/var/www/test">
  3. RewriteEngine on
  4. RewriteRule ^$ public/ [L]
  5. RewriteRule ((?s).*) public/$1 [L]
  6. </Directory>
  7. <Directory "/var/www/test/public">
  8. RewriteEngine On
  9. RewriteCond %{REQUEST_FILENAME} !-d
  10. RewriteCond %{REQUEST_FILENAME} !-f
  11. RewriteRule ^((?s).*)$ index.php?_url=/$1 [QSA,L]
  12. </Directory>
  13. </IfModule>

虚拟主机(Virtual Hosts)

第二份配置则允许你可以将一个Phalcon应用安装在虚拟主机:

  1. <VirtualHost *:80>
  2. ServerAdmin admin@example.host
  3. DocumentRoot "/var/vhosts/test/public"
  4. DirectoryIndex index.php
  5. ServerName example.host
  6. ServerAlias www.example.host
  7. <Directory "/var/vhosts/test/public">
  8. Options All
  9. AllowOverride All
  10. Allow from all
  11. </Directory>
  12. </VirtualHost>

如果你使用的Apache版本为2.4或者以上:

  1. <VirtualHost *:80>
  2. ServerAdmin admin@example.host
  3. DocumentRoot "/var/vhosts/test/public"
  4. DirectoryIndex index.php
  5. ServerName example.host
  6. ServerAlias www.example.host
  7. <Directory "/var/vhosts/test/public">
  8. Options All
  9. AllowOverride All
  10. Require all granted
  11. </Directory>
  12. </VirtualHost>