私はUbuntu12.04ボックスを使用しており、最近1つのApache2アップデートをインストールしましたが、それ以降、すべての仮想ホストが正しいディレクトリを指していないため、デフォルトのローカルホストを指しています。また、Apache2の再起動時にエラーが発生します。
shafox@shafox:~$ Sudo /etc/init.d/Apache2 restart
* Restarting web server Apache2 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 [ OK ].
サーバー名がローカルホストではないことを設定していないのはわかっていますが、エラーメッセージの前にAH00558スタンプがあるのはなぜですか?これは私のサイトです-私のシステムで利用できます:
/etc/Apache2/sites-available$ ls
000-default.conf default-ssl.conf localbox-local
000-default.conf.dpkg-new devbox-dev sites-si
以前は次のようでした:
/etc/Apache2/sites-available$ ls
000-default default-ssl localbox-local devbox-dev sites-si
たとえば、仮想ホストファイルの1つは次のようになります。
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName localbox.local
DocumentRoot /home/shafox/Localbox
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /home/shafox/Localbox/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${Apache_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${Apache_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
これらすべての仮想ホストを再度作成したくありません。 このチュートリアル で記述された手順に従って、これらすべての仮想ホストを作成しました。
これが私の/ etc/hostsファイルです:
127.0.0.1 localhost
127.0.1.1 shafox
127.0.1.1 devbox.dev
127.0.1.1 localbox.local
127.0.1.1 sites.si
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Apache2のエラーログerror.log エラーログリンク
これは技術的には「エラー」ではありません...しかし、それは警告です。以前のinit.dスクリプトは、単にその警告をログに記録し、再起動しても何も報告しませんでした。 Apacheには、利用可能な情報に基づいてサーバーのfqdnを識別する方法がないという点で、メッセージは正確です。次のように、hostsファイルのループバックインターフェイスエントリに簡単に追加できます。
127.0.1.1 servername server.fully.qualified.name.tld
または、Apache.confで警告が示すように、 ServerName ディレクティブを指定します。
ServerName www.example.com
また、ubuntuを使用することにした場合は、init.dスクリプトの代わりに、upstartコマンドを使用してApacheなどのサービスを制御する必要があります。このような:
Sudo restart Apache2
私もこの問題を抱えていましたが、ディオゲネスと同じ答えを使って解決しました。具体的には、置き換えられる構文があります。
から https://httpd.Apache.org/docs/trunk/upgrading.html
この例では、すべての要求が拒否されます。
2.2構成:注文拒否、すべての拒否を許可
2.4構成:すべて拒否する必要があります
この例では、すべてのリクエストが許可されています。
2.2構成:すべてから許可を注文、許可を拒否
2.4構成:すべての許可が必要
次の例では、example.orgドメイン内のすべてのホストにアクセスが許可されています。他のすべてのホストはアクセスを拒否されます。
2.2構成:example.orgのすべての許可から拒否、許可拒否を注文
2.4構成:ホストexample.orgが必要
Drupalマルチサイト開発システム用にApache2.4にアップグレードした後、同じ問題が発生しました。mod_rewriteがまったく機能しませんでした。重要なのは仮想ホストファイルのディレクティブでした。
<Directory /whatever-path/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
AllowOverride AllおよびRequire all grantに注意してください。これは、Apache2.2とは異なります。
お役に立てれば。