コマンドを使用してApacheサーバーを再起動すると
Sudo /etc/init.d/Apache2 restart
次のエラーが表示されます。
Restarting web server Apache2
Apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
... waiting Apache2:
Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
サーバーは127.0.0.1ではなく127.0.1.1を使用していますか?このエラーの原因は何ですか?
6#13.04以前
これは単なるわかりやすい警告であり、実際には問題ではありません(何かが機能しないという点で)。
を挿入する場合
ServerName localhost
Apache2.conf
で/etc/Apache2
でApacheを再起動すると、通知が消えます。
/etc/hostname
内に名前がある場合は、localhost
の代わりにその名前を使用することもできます。
そして、127.0.1.1
内にある場合は/etc/hosts
を使用します。
127.0.0.1 localhost
127.0.1.1 myhostname
Apacheのトラブルシューティング
このエラーが発生した場合:
Apache2: Could not determine the server's fully qualified domain name,
using 127.0.0.1 for ServerName
次に、コマンドラインで「Sudo nano」などのテキストエディタを使用するか、デスクトップで「gksudo gedit」を使用して新しいファイルを作成し、
Sudo nano /etc/Apache2/conf.d/fqdn
または
gksu "gedit /etc/Apache2/conf.d/fqdn"
それから加えて
ServerName localhost
ファイルに保存します。これはすべて、次のコマンドを使用して1つのコマンドで実行できます。
echo "ServerName localhost" | Sudo tee /etc/Apache2/conf.d/fqdn
しかし、Ubuntu 14.04では:
echo "ServerName localhost" | Sudo tee /etc/Apache2/conf-available/fqdn.conf
Sudo a2enconf fqdn
「.conf」を忘れないでください(機能せずに)。
Apache 2.4(13.10の時点でデフォルトで利用可能)では、conf.d
ディレクトリに設定ファイルを追加する方法を使用できません。
Apacheはconf.d
ディレクトリを使用しなくなりました。すべての構成ファイルは/etc/Apache2/conf-available
ディレクトリ内に保存され、すべての構成ファイルには.conf
拡張子が付いているはずです。
Apache 2.4でこのメッセージを解決するには、conf-availableディレクトリ内に構成ファイルを作成する必要があります。たとえば、servername.conf
。
Sudo vi /etc/Apache2/conf-available/servername.conf
そしてこの中に1行追加するだけです
ServerName localhost
前の2つのコマンドを1つに組み合わせることができます。
echo "ServerName localhost" | Sudo tee /etc/Apache2/conf-available/servername.conf
要件に応じてドメイン名またはその他の名前を使用する場合は、localhost
を必要なものに置き換えてください。次に、この構成を有効にする必要があります。そのためには、次のコマンドを実行する必要があります。
Sudo a2enconf servername
a2enconf
は、Apache 2.4の構成ファイルを有効にするコマンドです。また、上記のコマンドのservername
は、構成ファイルの名前servername.conf
からのものであることに注意してください。構成ファイルがngenericserver.conf
の場合、Sudo a2enconf ngenericserver
と記述する必要があります。
この後、サーバーをリロードすると、上記のメッセージでバグが発生しなくなります。
Sudo service Apache2 reload
または
Sudo Apache2ctl graceful
この後、メッセージが再び表示されなくなり、問題が修正されることがわかります。
Apache2は、Apache構成ファイルにハードコーディングされるのではなく、適切に構成されたシステムホスト名からFQDNを取得することもできます。また、ホスト名が変更された場合、ハードコーディングすると混乱を招きます。実際には、httpd.conf
のServerName
ディレクティブやApache構成ファイルは必要ありません。
/etc/hosts
に次を入力します。
# IPv4 and IPv6 localhost aliases
127.0.0.1 hostname.domainname.com hostname localhost
::1 hostname.domainname.com hostname localhost
ここで、hostname.domainname.com
はマシンのFQDNです。
/etc/hostname/
で適切に構成されたホスト名またはhostnamectl
とともに、これはマシン上の他のサービスを適切に実行するのにも役立ちます(ログインプロンプト、This is hostname.domainname.com
の代わりにThis is hostname.unknown_domain
を表示) )
/etc/Apache2/httpd.conf
ファイルを開きます。
Sudo editor /etc/Apache2/httpd.conf # [1]
デフォルトでは、空白になります。次の行を追加するだけです:
ServerName localhost
ファイルを保存して終了します
サーバーを再起動します
Sudo service Apache2 restart
[1]デフォルトのエディターを起動します。Sudo update-alternatives --config editor
を参照してください
Apache2の新しいバージョンでは、次のようなコマンドに従うだけです。
Sudo nano /etc/Apache2/Apache2.conf
ファイルの次の新しい行末を追加します。
ServerName localhost
次に、Apache2を再起動します。
Sudo service Apache2 restart
終わった。
/etc/conf.d
またはApache2.conf
のいずれかを変更するために、httpd.conf
に新しいファイルを作成する方が少し良いと思います。
構成の変更を配布パッケージから分離したままにするのは個人的な好みです。したがって、更新はそれほど複雑ではありません。
ファイル/etc/Apache2/conf.d/AAserverName
を作成しますが、これには以下のみが含まれています。
ServerName myhost.mycomain.tld
他の提案も確かに機能します。
Ubuntu 16.04の場合:
Sudo -i
echo 'ServerName localhost' > /etc/Apache2/conf-available/server-name.conf
a2enconf server-name
ServerName localhost
を追加
に
Sudo leafpad /etc/Apache2/Apache2.conf
Sudo leafpad /etc/Apache2/httpd.conf
それはエラーではありません。それはただの友達リマインダーです
これを行う方法は、仮想ホストセクションの外部の構成ファイルでServerName localhost
を指定することです。
他のいくつかの回答は、/etc/Apache2/httpd.conf
を変更する必要があることを示唆しています。 Apacheがaptからアップグレードされると、このファイルは上書きされます。上書きされたくないApache設定の場合は、新しいファイルを作成する必要があります。この設定を変更する「Debianの方法」は次のとおりです。
# create the configuration file in the "available" section
echo "ServerName localhost" | Sudo tee /etc/Apache2/conf-available/servername.conf
# enable it by creating a symlink to it from the "enabled" section
Sudo a2enconf servername
# restart the server
Sudo service Apache2 restart
これは基本的にStarkの答えと同じですが、コピーして貼り付けるのが簡単なスクリプト形式です。私は元々、重複としてマークされた質問にこれを投稿しました: https://askubuntu.com/a/432408
オンbuntu 16.04:
次のコマンドを使用して、ServerName localhost
をファイルhttpd.conf
に追加します。
Sudo vi /etc/Apache2/httpd.conf
次に、このファイルの最後にInclude httpd.conf
という行を含めます
Sudo vi /etc/Apache2/Apache2.conf
構文エラーをもう一度確認してください
Sudo Apache2ctl configtest
今すぐ取得する必要があります
Syntax OK
設定をリロードすることにより、サーバーを正常に再起動できます
Sudo service Apache2 reload
またはプロセスを強制終了して再起動します
Sudo service Apache2 restart
Ubuntu 11.10では、このメッセージが表示され、ディスクがいっぱいになったためにブートがハングしました。 ログファイルの1つが不正になりました 。おそらく実際にはApacheに問題はなかったのでしょうが、このメッセージはブートがハングする前に与えられた最後の手がかりでした。
この問題を解決するには、リカバリモードで起動し、厄介なログファイルを削除する必要がありました。
次のコマンドを実行します。
apachectl -t -D DUMP_INCLUDES
httpd.conf
構成ファイルへのパスを決定するには、そのファイルを編集し、ServerName
オプションの値を指定する行をコメント解除または変更します。
ServerName localhost
Webサーバーの場合、登録済みのDNS名(例:example.com
)を使用します。
ホストに登録済みのDNS名がない場合は、ここにIPアドレスを入力します。
Bashを使用していて、最小限の依存関係が必要な場合(およびDockerを使用している場合は、 エントリポイントスクリプトにワンライナーが必要です 私のように)、これら2つのオプションは機能するはずです。
Localhostが必要な場合:
echo "ServerName localhost" >> /etc/Apache2/Apache2.conf
既存のホスト名が必要な場合:
echo "ServerName $(cat /etc/hostname)" >> /etc/Apache2/Apache2.conf
これは、 bashリダイレクト演算子 を使用して、ファイルの末尾に文字列を追加します。 Echoは自動的に改行を挿入するため、設定はすべて完了です。
オンbuntu 16.04:
次のコマンドを使用して、ServerName localhost
をファイルhttpd.conf
に追加します。
Sudo vi /etc/Apache2/httpd.conf
次に、このファイルの最後にInclude httpd.conf
という行を含めます
Sudo vi /etc/Apache2/Apache2.conf
構文エラーをもう一度確認してください
Sudo Apache2ctl configtest
今すぐ取得する必要があります
Syntax OK
設定SudoサービスApache2 restartをリロードすることにより、サーバーを正常に再起動できるようになりました