Apache 2 中的何处全局设置 ServerName 指令?

Apache 2 中的何处全局设置 ServerName 指令?

笔记:这与我的问题相关:“Apache 2.4 无法重新加载,我的配置有问题吗?”。

我正在尝试在本地测试本地站点。据我了解,Apache 2(也许还有 Apache)有一个叫做VirtualHost.我的一点点了解告诉我,虚拟主机是一种服务器/IP 地址可以服务多个域的方式。

configtest无论如何,当我运行 Apache 2 来查看失败的地方时,我收到以下错误。我正在运行 Apache 2.4.10-1,似乎 Apache 2.2 和 Apache 2.4 之间发生了很多我不知道的变化。

$ sudo apache2ctl configtest
[sudo] password for shirish:
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK

这是/etc/hosts文件:

 $ cat /etc/hosts
127.0.0.1    localhost
127.0.1.1    debian mini

我还看到一个空/etc/hosts.conf文件。也许需要将其中的数据/etc/hosts复制到/etc/hosts.conf服务器才能识别?

我的主机名:

$ hostname
debian

这是站点的配置文件:

$ cat /etc/apache2/sites-available/minidebconfindia.conf
<VirtualHost mini:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/html/in2014.mini/website

    <Directory />
        Options +FollowSymLinks +Includes
        Require all granted
    </Directory>

    <Directory /var/www/html/in2014.mini/website/>
        Options +Indexes +FollowSymLinks +MultiViews +Includes
        Require all granted
    </Directory>
</VirtualHost>

我也阅读有关绑定到地址和端口的信息,但由于多种原因我还不太理解。它没有给出/分享关于需要将这些行放在哪个文件中以及之前和之后会发生什么的示例。如果有一个例子就更好了。

我这样做并重新启动了服务器,但我仍然收到相同的错误。

~$ sudo apache2ctl configtest
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK

Debian 中似乎有 3 个配置文件是我需要了解和理解的。

/etc/apache2$ ls *.conf
apache2.conf  ports.conf

/etc/apache2/conf.d$ ls *.conf
httpd.conf

显然,apache2.conf 是全局配置文件,而 httpd.conf 是用户配置文件。还有 ports.conf。 apache2.conf 和 ports.conf 都是默认值,除了我将 Apache 的日志级别从 更改warndebug

我尝试了另一件事:

$ sudo apache2ctl -S
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
VirtualHost configuration:
127.0.1.1:80           debian (/etc/apache2/sites-enabled/minidebconfindia.conf:1)
*:80                   127.0.1.1 (/etc/apache2/sites-enabled/000-default.conf:1)
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
Mutex mpm-accept: using_defaults
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

要编辑的文件:

/etc/apache2/apache2.conf

编辑文件命令:

sudo nano /etc/apache2/apache2.conf

对于全局服务器名,您可以将其放在文件顶部(虚拟主机标记之外)。

第一行看起来像:

ServerName myserver.mydomain.com

然后使用以下命令保存并测试配置:

apachectl configtest

你应该得到:

语法确定

然后您可以重新启动服务器并检查是否没有收到错误消息:

sudo service apache2 restart

答案2

您必须设置服务器名称指令:

ServerName localhost

在 Debian 中,您可以将其设置为/etc/apache2/conf.d/httpd.conf.

在 macOS 上,您可以在/private/etc/apache2/httpd.conf.

答案3

要找到您的 Apache 配置文件,请尝试运行以下命令:

apachectl -t -D DUMP_INCLUDES

然后编辑该文件并找到该行ServerName并取消注释,因此它看起来像:

ServerName localhost

答案4

在 apache24 配置文件中,您将看到以下行ServerName:80

  1. 将其留空。
  2. 然后在该行下方的空白处写入:
    ServerName www.name (of your official domain or website.com:80)
  3. 保存配置文件。
  4. 转到cmd,以管理员身份打开它,更改dir为 apache24 所在的位置
  5. 然后cd apache24然后cd bin然后httpd.exe

你会看到问题已经解决了。

相关内容