我正在尝试为 Apache2 设置虚拟主机。有很多教程,但它们都假定该文件/etc/apache2/sites-available/000-default.conf
存在。但如果我运行:
$ cd /etc/apache2/
$ ls
conf-available
$ cd conf-available
$ ls
javascript-common.conf
我找不到遇到同样问题的人。在开始此类教程之前我需要做什么吗?
https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-ubuntu-16-04
一切都是最新的。Ubuntu 是 16.04 LTS。
答案1
其中的文件/etc/apache2/conf-available
是管理员可以自由创建、重命名、删除、填写适当内容等的文件。如果您没有 000-default.com,只需创建一个。
然后你应该打电话
sudo a2ensite 000-default.conf
注意事项:
虚拟主机共存 - 据我所知,您已经有一些非标准配置。请注意虚拟主机相互冲突。您可能需要全新安装 apache2 及其配置。
最终加载(包含)哪些文件作为配置取决于其他一些配置文件,例如
/etc/apache2/apache2.conf
其include
命令(然后包含指定的文件)。也可以在包含的文件中调用 Include。
仅供参考,apache2(版本 2.4.7)的 000-default.conf 如下:
<VirtualHost *:80>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
#ServerName www.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
最好使用以下命令来启用/禁用站点,而不是通过创建符号链接来创建站点(您仍然可以这样做,但是......它通常依赖于辅助脚本,例如为了避免拼写错误)
a2ensite 000-default
a2dissite 000-default
如果某些配置不起作用,您可以尝试:
sudo service apache2 reload
甚至更深层次的配置重新加载发生在:
sudo service apache2 restart
重新加载确实会在内存中保留一些与连接相关的数据,并且在典型的全新安装中,这两者都只需几分之一秒。
编辑:我添加了关于四个有用命令的注释:a2ensite、a2dissite、service apache2 restart/reload,并在随后的编辑中重新组织了答案以更好地适应问题。