我很快就想不出如何解决这个问题了。我希望我已经提供了足够的信息,但如果我遗漏了任何内容,请告诉我。
虽然我现在没有多个域名,但我希望将来能够在我的 apache 服务器上拥有另一个虚拟主机,所以我希望我的文件结构如下所示:
/var/www/
|myname
|index.html
|coolwebsitethatdoesntexistyet
|index.html
截至目前,只有 myname.com 可用(我的真名很难拼写)
Apache 默认在 提供文件/var/www/html/index.html
,但我想提供/var/www/myname/index.html
所以/etc/apache2/apache2.conf
文件看起来像这样:
Listen 80
<VirtualHost *:80>
DocumentRoot "/var/www/myname"
ServerName myname.com
ServerAlias www.myname.com
DirectoryIndex index.html
<Directory "/var/www/myname">
AllowOverride All
Options Indexes FollowSymLinks Includes ExecCGI
Require all granted
Order allow,deny
# Any other directives
</Directory>
# Other directives here
</VirtualHost>
即使更改了 apache2.conf(并重新启动了 apache),myname.com 仍然指向 var/www/html/index.html
如果我是对的,我相信000-default.conf
如果没有apache2.conf.
所以我编辑了与当时000-default.conf
相同的内容,apache2.conf
看看它是否有效。结果没有。
更多信息请见以下输出grep -r DocumentRoot /etc
/etc/apache2/apache2.conf: DocumentRoot /var/www/myname
/etc/apache2/sites-available/default-ssl.conf: DocumentRoot /var/www/ht ml
/etc/apache2/sites-available/myname.com.conf: DocumentRoot /var/www/html/myname.com/public_html
/etc/apache2/sites-available/000-default.conf: DocumentRoot "/var/www/myname"
输出 sudo apache2ctl -S
VirtualHost configuration:
*:80 is a NameVirtualHost
default server myname.com (/etc/apache2/sites-enabled/000-default.conf:2)
port 80 namevhost myname.com (/etc/apache2/sites-enabled/000-default.conf:2)
alias www.myname.com
port 80 namevhost myname.com (/etc/apache2/apache2.conf:219)
alias www.myname.com
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex watchdog-callback: using_defaults
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33
总结:阅读粗体
提前致谢!
答案1
TL;DR 我读了粗体部分,但无论如何,这些是我的建议。
我希望我的文件结构看起来像这样:
/var/www/
|myname
|index.html
|coolwebsitethatdoesntexistyet
|index.html
我建议配置 Apache 类似于以下内容:
在下
apache2.conf
,将您的设置ServerName
为主机名其他比例如mysite.com
。这不必是可访问的主机名(即,您可以使用像 ex.Sam
或 这样的简单名称Neo
)。将您的设置DocumentRoot
为/var/www
。您可以index.html
根据需要将文件放入其中。在 下
000-default.conf
,将您的 设置ServerName
为mysite.com
。将您的 设置DocumentRoot
为/var/www/myname
。如果您想要第二个虚拟主机,请在下方创建一个新的虚拟主机
sites-available
,并赋予其唯一的ServerName
(例如coolwebsite.com
)和适当的DocumentRoot
(例如/var/www/coolwebsitethatdoesntexistyet
)。
嗯,显然...
.conf
对任何文件进行更改后,重新启动 Apache 。如果您想测试,请不要忘记启用您的第二个站点。
任何没有与之关联的 DNS 条目的站点名称(例如
coolsite.com
)都需要添加到您的hosts
文件中以用于测试目的。
笔记
如果您希望目录权限更加安全,请尝试
var/www/html
与您的虚拟主机apache2.conf
一起使用,即使这只是为了测试。/var/www/html/myname
/var/www/html/coolwebsitethatdoesntexistyet
即使这不起作用,这种配置也应该可以消除 Apache 的任何简单问题。