您在Apache 2中的哪个位置全局设置ServerName指令?


37

注意:这与我的问题有关:“ Apache 2.4不会重新加载,我的配置有问题吗? ”。

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

无论如何,我在运行Apache 2 configtest时看到以下错误,以查看失败之处。我正在运行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中的三个配置文件。

/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

也许有人有更多的见识。

Answers:


43

要编辑的文件:

/etc/apache2/apache2.conf

编辑文件的命令:

sudo nano /etc/apache2/apache2.conf

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

第一行如下所示:

ServerName myserver.mydomain.com

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

apachectl configtest

您应该得到:

语法确定

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

sudo service apache2 restart

2
这是Debian的正确答案。我试过/etc/apache2/conf-available/fqdn.conf,或者servername.conf还是httpd.conf无济于事。Debian Jessieapache 2.4.10
Beco博士

2
如果您有conf-available/conf-enabled/,请在中创建一个文件,conf-available/然后使用命令a2enconf启用它。这样,当/如果apache2-common软件包更新,dpkg不会使您烦恼未跟踪的更改apache2.conf
Kevin

conf-available此后的文件和/etc/apache2/conf-available/servername.conf内容可能带有内容ServerName myserver.mydomain.com(在Raspberry Pi,Apache 2.4.10,Debian 8(Jessie),Linux内核4.4.34上尝试过)。
彼得·莫滕森

@PeterMortensen您能否使用共享的示例,以便我理解您的意思。
shirish

该文件不存在
黑色

5

您必须设置ServerName指令

ServerName localhost

在Debian中,您可以在中进行设置/etc/apache2/conf.d/httpd.conf

在macOS上,您可以在中进行设置/private/etc/apache2/httpd.conf


5
在Ubuntu中,将其设置在/etc/apache2/apache2.conf
macki 2014年

1
Debian之一:apache2.conf
Beco博士

1
此功能适用于什么版本的Apache / Debian?我认为它不适用于Apache 2.4。可能是/etc/apache2/apache2.conf
彼得·莫滕森

它的工作原理,Apache的2.4 Debian的8
erajuan

2

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

apachectl -t -D DUMP_INCLUDES

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

ServerName localhost

0

在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

您将看到问题已解决。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.