我有一台装有多个 Web 项目的 Apache 服务器。每个项目都有一个开发站点和一个生产站点,如下所示:
/srv/www/project1/dev
/srv/www/project1/prod
/srv/www/project2/dev
/srv/www/project2/prod
/srv/www/project3/dev
/srv/www/project3/prod
每个项目也有一个虚拟主机文件 - 这是项目 1 的:
# Prod
<VirtualHost 123.45.789.123:80>
ServerAdmin [email protected]
ServerName www.johndoe.com
DocumentRoot /srv/www/project1/dev
</VirtualHost>
# Dev
<VirtualHost 123.45.789.123:80>
ServerAdmin [email protected]
ServerName dev.johndoe.com
DocumentRoot /srv/www/project1/dev
# enable php error_reporting for development site
<Directory /srv/www/project1/dev>
<IfModule mod_php5.c>
php_value error_reporting 214748364
php_flag display_errors 1
</IfModule>
</Directory>
</VirtualHost>
这样一切都运行正常。但是,我发现将 IfModule mod_php5.c 部分添加到所有虚拟主机是多余的。是否可以像这样将其添加到默认虚拟主机文件中(我试过了,但无法正常工作):
<DirectoryMatch "^/srv/www/.+/dev">
<IfModule mod_php5.c>
php_value error_reporting 214748364
php_flag display_errors 1
</IfModule>
</DirectoryMatch>
期待听到您的意见!
答案1
添加您的<目录匹配>直接阻止到服务器配置,不要将其放在<虚拟主机>块。点击此处查看有关此指令范围的更多信息:http://httpd.apache.org/docs/2.2/mod/core.html#directorymatch