(EAI 2)名称或服务未知:AH00549:无法解析 xxx.xxx.xxx.xxx 的服务器名称(检查 DNS)

(EAI 2)名称或服务未知:AH00549:无法解析 xxx.xxx.xxx.xxx 的服务器名称(检查 DNS)

我正在尝试安装本地主机网络服务器在我的 Ubuntu 18.04 上按照此说明进行操作。

如何在 Ubuntu 18.04 上安装 Linux、Apache、MySQL、PHP(LAMP)堆栈

但通过测试apach2我得到了这个错误:

r$ sudo apache2ctl configtest
[Thu May 06 18:03:12.897955 2021] [core:error] [pid 22264] (EAI 2)Name or service not known: AH00549: Failed to resolve server name for 192.168.1.12 (check DNS) -- or specify an explicit ServerName
Syntax OK

所以我猜想一定与其他本地服务器安装存在冲突,例如公共或者当地的

更新:

这是详细信息链接存档 /etc/apache2/apache2.conf

谢谢。

答案1

看起来 apache 无法从您的本地 DNS 服务器确定您的主机“名称”,它使用您的服务器的 IP 地址 (192.168.1.12) 进行反向查找以获取名称。如果您的 DNS 服务器没有响应,那么您将收到此警告。

apache 配置文件确实允许您将服务器名称设置为硬编码值。配置文件注释得很好,ServerName 选项位于顶部附近。我的位于 /etc/apache2/apache2.conf 中的“全局配置”部分。

答案2

您不太可能遇到冲突。Apache 正在寻找用于路由的完全限定域名 (FQDN),而您尚未设置。您看到的消息更像是警告。也就是说,本地安装最简单的方法是提供明确的 ServerName。

这是一个简单的方法:

  1. 打开终端(如果尚未打开)
  2. 使用您喜欢的文本编辑器创建/编辑/etc/apache2/conf-available/servername.conf。请务必使用 执行此操作sudo,否则文件将无法保存。
  3. 添加以下行:
    ServerName my-machine.local
    
    如果您希望默认 FQDN 为其他值,请务必将其设置my-machine为您喜欢的值。实际上,它没有任何限制。然后保存文件并退出编辑器。
  4. 启用 Apache 配置:
    sudo a2enconf servername
    
  5. 重新加载 Apache Web 服务器:
    sudo service apache2 reload
    

这应该可以消除警告信息。

ServerName在创建配置文件时,请确保在每个指定的 VirtualHost 块中设置变量/etc/apache2/sites-available。通过这样做,您可以在浏览器中测试/开发/工作时使用本地 DNS 路由来更好地模拟实时网站。以下是Apache 中虚拟主机的/etc/hosts示例文件:.conf

<VirtualHost *:80>
        ServerAdmin [email protected]
        DocumentRoot /var/www/website/public

        ServerName your-blog.local
        ServerAlias your-blog.local *.your-blog.local
        DirectoryIndex index.php index.html

        ErrorLog ${APACHE_LOG_DIR}/blog-error.log
        CustomLog ${APACHE_LOG_DIR}/blog-access.log combined
</VirtualHost>

<Directory /var/www/website/public>
        Options FollowSymLinks
        AllowOverride All

        Order Allow,Deny
        Allow From All
</Directory>

注意ServerName配置文件中的行。通过此行,您可以编辑/etc/hosts文件并添加:

127.0.0.1    your-blog.local

执行此操作后,任何时候您your-blog.local在浏览器中键入内容(在该计算机上),您都将被重定向到本地站点,而无需使用 IP 地址或http://localhost。这非常方便。

相关内容