环境:apache 2.4 + debian 9。
我已经在目录中建立了一个 wordpress /var/www/html/wp1
,并进行了设置/etc/apache2/apache2.conf
。
<VirtualHost *:80>
DocumentRoot /var/www/html
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride None
Order deny,Allow
Allow from all
Require all granted
</Directory>
</VirtualHost *:80>
127.0.0.1/wp1
可以显示。我在上面建立了另一个wordpress /home/material/wp2
,更改设置如下/etc/apache2/apache2.conf
。
<VirtualHost *:80>
DocumentRoot /home/material
<Directory /home/material>
Options Indexes FollowSymLinks
AllowOverride None
Order deny,Allow
Allow from all
Require all granted
</Directory>
</VirtualHost *:80>
127.0.0.1/wp2
可以显示。现在我想将两个设置结合起来让127.0.0.1/wp1
show wordpress on
/var/www/html/wp1
和127.0.0.1/wp2
show wordpress on /home/material/wp2
,简单地将两个设置结合起来不能达到我的目标。
如何编写正确的设置?
答案1
有几件事是错误的或者你不应该做的。
在 Debian 中,主配置文件/etc/apache2/apache2.conf
包括与主目录相关的其他配置文件/etc/apache2
:
- 站点配置来自
sites-enabled/*.conf
- 通用配置文件来自
conf-enabled/*.conf
- 模块配置
mods-enabled/*.load
和mods-enabled/*.conf
这可用的配置文件位于目录中sites-available
,conf-available
并且mods-available
使能够配置,您可以使用命令a2ensite
,a2enconf
以及中的a2enmod
符号链接。要禁用配置,您可以使用,以及。xxx-available
xxx-enabled
a2dissite
a2disconf
a2dismod
第一个错误是编辑主配置文件/etc/apache2/apache2.conf
。你应该这样做:
- 禁用(或编辑)默认配置
a2dissite 000-default
(目录sites-enabled
现在为空) sites-available/wordpress.conf
使用你的配置内容创建一个新的配置a2ensite wordpress
启用符号链接wordpress.conf
的新配置sites-enabled
- 运行
apachectl configtest
看看是否有语法错误 service apache2 restart
如果上一个命令成功,请重新启动服务器。
您的配置有一个语法错误和几个错误:
</VirtualHost>
你没有使用结束语</VirtualHost *:80>
Order deny,Allow
并且Allow from all
是弃用的语法在 Apache 2.4 中。您只需要Require all granted
。ServerName
丢失了。看看VirtualHost 示例。
如果您想对两个站点都使用端口 80,这可以作为您的新配置sites-available/wordpress.conf
(未经测试):
<VirtualHost *:80>
# set your host name/server name
ServerName myservername
# wp1
DocumentRoot /var/www/html
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
# wp2
Alias /wp2 /home/material/wp2
<Directory /home/material/wp2>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
或者更简单:将wp2
目录移动到/var/www/html
第二个 wordpress 实例并从配置中删除该实例的行。
并且不要忘记恢复您的原始版本/etc/apache2/apache2.conf
。