Apache 2のどこでServerNameディレクティブをグローバルに設定しますか?


37

注:これは、「Apache 2.4がリロードしない、私の構成に問題はないか?」という私の質問に関連しています

ローカルサイトをローカルでテストしようとしています。私が理解しているように、Apache 2(およびおそらくApacheも)には、と呼ばれるものがありVirtualHostます。少し理解すると、仮想ホスティングは、1つのサーバー/ 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には3つの設定ファイルがあり、それらを知って理解する必要があるようです。

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

そして

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

明らかに、httpd.confはユーザー設定ファイルですが、apache2.confはグローバル設定ファイルです。ports.confもあります。Apacheのログレベルをからwarnに変更した以外は、apache2.confとports.confは両方ともデフォルトdebugです。

私はもう一つのことを試しました:

$ 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

誰かがもっと洞察力を持っているかもしれません。

回答:


43

編集するファイル:

/etc/apache2/apache2.conf

ファイルを編集するコマンド:

sudo nano /etc/apache2/apache2.conf

グローバルサーバー名の場合は、ファイルの先頭(仮想ホストタグの外側)に配置できます。

最初の行は次のようになります。

ServerName myserver.mydomain.com

次に、次のコマンドで構成を保存してテストします。

apachectl configtest

あなたが得る必要があります:

構文OK

その後、サーバーを再起動して、エラーメッセージが表示されないことを確認できます。

sudo service apache2 restart

2
これはDebianの正解です。私が試した/etc/apache2/conf-available/fqdn.conf、またはservername.confあるいはhttpd.conf無駄に。Debian Jessieおよびapache 2.4.10
Beco博士

2
conf-available/およびがある場合はconf-enabled/、ファイルを作成しconf-available/、コマンドa2enconfを使用して有効にします。この方法では、dpkgのは/場合人跡未踏の変更についてお困らないであろうapache2-commonパッケージのアップデートapache2.conf
ケビン・

このconf-available後のファイルと編集には/etc/apache2/conf-available/servername.conf、コンテンツが含まれている可能性がありますServerName myserver.mydomain.com(Raspberry Pi、Apache 2.4.10、Debian 8(Jessie)、Linux kernel 4.4.34で試されました)。
ピーターモーテンセン

@PeterMortensenは、あなたが意味することを理解できるように、共有された例を使用できます。
1

ファイルが存在しません
ブラック

5

ServerNameディレクティブを設定する必要があります

ServerName localhost

Debianでは、で設定できます/etc/apache2/conf.d/httpd.conf

macOSでは、で設定できます/private/etc/apache2/httpd.conf


5
Ubuntuでは、/ etc
apache2 /

1
Debianのいずれか:apache2.conf
ベコ博士

1
これはどのバージョンのApache / Debianで動作しますか?Apache 2.4では動作しないと思います。/etc/apache2/apache2.conf代わりに可能性があります。
ピーターモーテンセン

動作、Debian 8上のApache 2.4
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 apache24cd binhttpd.exe

問題が解決されたことがわかります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.