因此,我尝试更改 apache 的 DocumentRoot,但出于某种奇怪的原因,它似乎忽略了文件 /etc/apache2/sites-available/00-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 webroot@localhost
DocumentRoot /home/david/www
<Directory /home/david/www>
Options Indexes
Require all granted
</Directory>
# 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
答案1
Apache 会忽略它sites-available
,直到您启用该站点(在这种情况下它会在 中建立符号链接sites-enabled
)。
运行以下命令:
sudo a2dissite 000-default
sudo a2ensite 000-default
sudo systemctl restart apache2
这将禁用“默认”站点,启用“默认”站点,然后重新启动 Apache 将刷新配置,然后应相应地使用更新的 docroot。请注意,可能还有其他未在此处讨论的权限问题;您需要为此提出新问题。
答案2
上述解决方案对我都不起作用。无论我怎么尝试,我都无法加载默认网站,包括从 14.04 VPS 复制配置,它 100% 正常工作(我正在升级到 18.04)。
最后,将本地服务器名称的 VirtualHost 添加到我的 apache2.conf 中,强制将其作为第一个定义的 VirtualHost,这样就成功了。这不是我喜欢的解决方案,但它确实有效:
<VirtualHost webserver.mydomain.za:80>
ServerAdmin [email protected]
ServerName webserver.mydomain.za
DocumentRoot /var/www/nowebsite
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>`
奇怪的是,默认 SSL 站点第一次就成功了。
答案3
尝试移除。
<Directory /home/david/www>
Options Indexes
Require all granted
</Directory>
例子:
VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /home/david/www>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
重新加载 Apache。
答案4
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /home/david/www
<Directory /home/david/www>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
sudo systemctl 重新启动 apache2
您应该删除所有代码,并将第一个代码示例放入 Apache 配置文件中,该文件为 000-default.conf,可在 /etc/apache2/sites-available/ 中找到,
第二个命令将重新启动 apache web 服务器。此外,我想告诉您,您应该始终将 DocumentRoot 放在 /var/www/html/