AH00558:httpd:在创建 VirtualHost 后无法可靠地确定服务器的完全限定服务器名错误
Posted
技术标签:
【中文标题】AH00558:httpd:在创建 VirtualHost 后无法可靠地确定服务器的完全限定服务器名错误【英文标题】:AH00558: httpd: Could not reliably determine server's fully qualified servername error after creating VirtualHost 【发布时间】:2020-08-30 13:41:32 【问题描述】:我在 CentOS 8 中安装了一个 Apache 服务器,它可以正确地提供 http 和 https 页面,也就是说,当我从浏览器连接到服务器时,我可以查看 Apache 测试页面
我用这个教程启用了https:https://www.techrepublic.com/article/how-to-enable-https-on-apache-centos/
这很有效。但是,当我尝试使服务器能够为默认测试页面以外的网页提供服务时,在尝试使用
sudo systemctl restart httpd
这是我的 /etc/https/conf/http.conf 的内容,其中删除了一些 cmets。
ServerRoot "/etc/httpd"
Listen 80
Include conf.modules.d/*.conf
User apache
Group apache
ServerAdmin root@localhost
#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#
#ServerName www.example.com:80
<Directory />
AllowOverride none
Require all denied
</Directory>
DocumentRoot "/var/www/html"
<Directory "/var/www">
AllowOverride None
# Allow open access:
Require all granted
</Directory>
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
<Files ".ht*">
Require all denied
</Files>
ErrorLog "logs/error_log"
LogLevel warn
<IfModule log_config_module>
LogFormat "%h %l %u %t \"%r\" %>s %b \"%Refereri\" \"%User-Agenti\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
<IfModule logio_module>
# You need to enable mod_logio.c to use %I and %O
LogFormat "%h %l %u %t \"%r\" %>s %b \"%Refereri\" \"%User-Agenti\" %I %O" combinedio
</IfModule>
CustomLog "logs/access_log" combined
</IfModule>
<IfModule alias_module>
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
</IfModule>
<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>
<IfModule mime_module>
TypesConfig /etc/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</IfModule>
AddDefaultCharset UTF-8
<IfModule mime_magic_module>
MIMEMagicFile conf/magic
</IfModule>
EnableSendfile on
IncludeOptional conf.d/*.conf
IncludeOptional sites-enabled/*.conf
我感觉这与 ServerName 条目有关。如上所示,默认情况下它被注释,但我尝试取消注释它以及将它与我的 VirtualHost 文件中的配置相匹配,但我得到了同样的错误。
这里是 /etc/httpd/sites-available/adorkable.conf 的内容
(注意:单词 adorkable 已替换为我的用户名 username1)
<VirtualHost *:443>
ServerAdmin email@example.com
DocumentRoot "/var/www/html/username1/"
ServerName localhost.localdomain
ServerAlias username1
ErrorLog /var/www/html/username1/error.log
<Directory "/var/www/html/username1/">
DirectoryIndex index.html index.php
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
发出 systemctl restart httpd 后 systemctl status httpd 的输出:
● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Thu 2020-05-14 14:53:28 KST; 43s ago
Docs: man:httpd.service(8)
Process: 11746 ExecStart=/usr/sbin/httpd $OPTIONS -DFOREGROUND (code=exited, status=1/FAILURE)
Main PID: 11746 (code=exited, status=1/FAILURE)
Status: "Reading configuration..."
May 14 14:53:28 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
May 14 14:53:28 localhost.localdomain httpd[11746]: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
May 14 14:53:28 localhost.localdomain systemd[1]: httpd.service: Main process exited, code=exited, status=1/FAILURE
May 14 14:53:28 localhost.localdomain systemd[1]: httpd.service: Failed with result 'exit-code'.
May 14 14:53:28 localhost.localdomain systemd[1]: Failed to start The Apache HTTP Server.
这里如何重启httpd服务?
更新:上面的链接教程说我们需要在httpd.conf的末尾添加以下行
IncludeOptional sites-enabled/*.conf
这是我对默认 httpd.conf 文件所做的唯一更改,如果我注释此行,我可以正常重启 httpd。所以问题出在我的 /etc/httpd/sites-available/adorkable.conf
文件版本中(在我的情况下重命名为 username1.conf。我在启用站点时有一个指向该文件的符号链接,使用命令创建
sudo ln -s /etc/httpd/sites-available/adorkable.conf /etc/httpd/sites-enabled/adorkable.conf
按照链接教程中的说明。
【问题讨论】:
尝试从虚拟主机中删除 ServerName @Chi.C.J.RajeevaLochana 不起作用,我尝试删除 ServerName、ServerAlias、ServerAdmin;同样的错误 代替sudo ln -s /etc/httpd/sites-available/adorkable.conf /etc/httpd/sites-enabled/adorkable.conf
,您也可以尝试只使用命令a2ensite adorkable
。但我不认为这有什么不同
@Chi.C.J.RajeevaLochana 我没有 a2ensite 命令
哦,好的。我虽然你使用的是 Ubuntu,抱歉
【参考方案1】:
从虚拟主机中删除错误日志。并尝试。由于 /var/www/html/username1/error.log 不存在。只有在删除 ErrorLog 指令后 apache 重新启动成功时,才尝试运行 chown apache:apache /var/www/html/username1 -R
。运行命令后,尝试重新添加 ErrorLog 指令,我相信它应该可以工作。
【讨论】:
我问“这里如何重启httpd服务?” Apache 没有重新启动。而且我没有“httpd.conf/apache2.conf”我有“/etc/httpd/conf/httpd.conf” 好的。将其添加到 httpd.conf 感谢您的更新,但即使在执行 chown 之后,如果我重新添加 ErrorLog 指令,我也会收到相同的错误。 让我们在此评论中讨论。让我们不要继续上面的 cmets。太长了,所以 尝试进入 username1,运行cat > error.log
并按 Ctrl + D。然后尝试重新启动。确保 error.log 归“apache”所有以上是关于AH00558:httpd:在创建 VirtualHost 后无法可靠地确定服务器的完全限定服务器名错误的主要内容,如果未能解决你的问题,请参考以下文章
虚拟主机:AH00558:apache2:无法可靠地确定服务器的完全限定域名
重启服务器“AH00558: apache2: Could not reliably determine the server's fully qualified domain name”问题
错误:AH00543:httpd:错误的用户名 - Xampp / Apache
Could not reliably determine the server's fully qualified domain name