16

この質問がよく見られていることは知っていますが、ここでの解決策はそれらを解決していません.

少し背景情報から始めましょう。

OS X 10.8.4 アパッチ 2.2.22

問題: コンソールにこのエラーが表示され、Apache はローカルホストを見つけられませんが、正常に起動します。変。

[Sat Aug 17 13:40:06 2013] [info] mod_ssl/2.2.22 compiled against Server: Apache/2.2.22, Library: OpenSSL/0.9.8r
httpd: Could not reliably determine the server's fully qualified domain name, using Specter.local for ServerName

したがって、通常、これは ServerName が正しく設定されていないことを示しています。それは :/ で、Spectre.local、localhost などのさまざまなバリアントを試してみました

これは私の/private/etc/httpd.confのコピーです。これは/private/etc/apache2/httpd.confでも同じです

# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#
ServerName localhost

私のホストファイルは次のように設定されています:

127.0.0.1   localhost localhost.local
255.255.255.255 broadcasthost
127.0.0.1       themill.dev
127.0.0.1       phpmyadmin.dev
127.0.0.1       Specter.local

私の /private/etc/apache2/users/ta.conf には次のものがあります

#
# Use name-based virtual hosting.
#
NameVirtualHost *:80
# DEV: THEMILL SITE
<VirtualHost *:80>
  ServerAdmin test@dummy.com
  DocumentRoot "/Users/ta/Sites/themill/htdocs"
  ServerName themill.dev
  ServerAlias *.themill.dev
  ErrorLog "/Users/ta/Sites/themill/log/error_log"
  CustomLog "/Users/ta/Sites/themill/log/access_log" common
</VirtualHost>

# PHPMYADMIN
<VirtualHost *:80>
  ServerAdmin test@dummy.com
  DocumentRoot "/Users/ta/Sites/phpmyadmin"
  ServerName phpmyadmin.dev
  ServerAlias *.phpmyadmin.dev 
  ErrorLog "/Users/ta/Sites/phpmyadmin/log/error_log"
  CustomLog "/Users/ta/Sites/phpmyadmin/log/access_log" common
</VirtualHost>

他に何を実際に構成する必要があるのか​​ わかりません。以前は機能していましたが、10.7 のアップグレードを投稿しても機能しませんでした。今は解決しようとしているところです。

さらに情報が必要な場合はお知らせください。

4

5 に答える 5

26

ファイルの次の行httpd.confは正しいです。

ServerName localhost

問題は、macOS では間違ったファイル (ではない/private/etc/httpd.conf) であることです。

httpd.confApache 構成ファイルの正しい場所を見つけるには、次を実行します。

apachectl -t -D DUMP_INCLUDES

次に、ServerNameがコメント解除され、 に設定されているかどうかを再確認しlocalhostます。

于 2017-12-04T15:17:15.630 に答える
9

ServerNames の設定に関するアドバイスはすべて無視してください。私見これは赤いニシンです。Apache は、標準のシステム コンポーネントを使用して FQDN を決定しようとしていますが、適切なものが見つかりません。確かに、ディレクティブを Apache にグローバルに追加することでこのプロセスを覆すことができますが、これは症状を治療していると思います。もちろん、virtualhost ブロックには ServerName ディレクティブが必要です。

代わりに、hosts ファイルを編集して、そこに FQDN がリストされていることを確認してください。特定の 127* 行の構文に関するさまざまな提案を見てきましたが、FQDN がリストされている限り、順序は関係ないと思います。

127.0.0.1       localhost.localdomain   localhost       foo.example.com

これは私にとってはうまくいき、他のすべての「私にとってはうまくいった」よりもはるかに的を得ているように見えました。httpd.confなどを編集することを推奨する投稿に賛成票を投じてください。これが役に立ち、反対票を投じられないことを願っています。同意できない場合は、例を挙げて理由を述べてください。ありがとう。

http://wiki.apache.org/httpd/CouldNotDetermineServerName

Apache がシステムの FQDN を特定できると、NameBasedHosts の特定の ServerName ディレクティブを読み取ります。

于 2013-09-24T23:14:22.587 に答える
0

私は栄光への道のりでいくつかの問題を抱えていました。経験則として、単純に実行するだけ$sudo httpd -k restartで、メッセージ出力のおかげで毎回一歩前進することがわかりました。

于 2018-08-09T11:30:10.697 に答える