我认为这是一个简单的问题,但让我更好地解释一下。我有以下开发环境:
- Ubuntu 服务器 12.04 LTS;
- 阿帕奇2.4 ;
- PHP 5.5;
一切正常,除了 VirtualHost 配置。我想部署两个应用程序:Drupal 和 Wordpress。每个应用程序都有自己的目录,例如:
- Drupal:/l/disk0/drupal/public_html;
- WordPress:/l/disk0/wordpress/public_html;
在默认站点中,VirtualHost 配置指向 /var/www作为文档根目录。我想禁用这个默认站点配置,我想创建两个虚拟主机,一个用于 Drupal,另一个用于 Wordpress。
但是,这是一个开发环境,这里没有域。我搜索了很多网站,发现了很多教程,所有教程都解释了如何使用域进行此操作,但没有使用子目录。
完成配置后,访问我的应用程序的 URL 将是:
- http://example.com/wordpress;
- http://example.com/drupal;
我已经尝试过这个 VirtualHost:
<VirtualHost *:80>
ServerName example.com
ServerAdmin [email protected]
DocumentRoot /l/disk0/site/public_html
<Directory />
AllowOverride None
</Directory>
Alias /site /l/disk0/site/public_html
<Directory /l/disk0/site/public_html>
Options MultiViews Indexes Includes FollowSymLinks ExecCGI
AllowOverride All
Require all granted
allow from all
</Directory>
RewriteEngine On
LogLevel warn
ErrorLog "/l/disk0/site/logs/apache/site/error.log"
CustomLog "/l/disk0/site/logs/apache/site/access.log" combined
SSLProxyEngine on
</VirtualHost>
没用。
当您希望为每个站点拥有一个单独的域名时,可以使用 VirtualHost。当 apache 选择使用哪个虚拟主机时,它会查看 URL 的域名部分。因此,当该部分相同时,这意味着您无法使用 VirtualHosts 将其拆分。
你有两个选择:
使用单独的主机名,例如
drupal.example.com
andwordpress.example.com
而不是example.com/drupal
andexample.com/wordpress
使用另一种方式将两个站点分开。
在前一种情况下,您将保留您的
VirtualHost
配置,但您会更改ServerName
每个配置。在后一种情况下,您将删除
VirtualHost
配置,而是执行类似的操作