
當我使用命令重新啟動 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.1.1 而不是 127.0.0.1?是什麼原因導致此錯誤?
答案1
13.04 以上
這只是一個友好的警告,並不是真正的問題(因為有些東西不起作用)。
如果你去:
/etc/apache2/apache2.conf
並插入:
ServerName localhost
然後在終端機中輸入以下內容重新啟動 apache:
sudo systemctl reload apache2
該通知將會消失。
如果您內部有名稱,/etc/hostname
您也可以使用該名稱來代替localhost
。
127.0.1.1
如果它在你的內部,它就會被使用/etc/hosts
:
127.0.0.1 localhost
127.0.1.1 myhostname
阿帕契故障排除
如果您收到此錯誤:
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
到文件並保存。這一切都可以透過一個命令完成,如下所示:
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”(沒有則不起作用)。
答案2
13.10 或更高版本
從 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
在其中我們只需要添加一行
ServerName localhost
您可以將前兩個命令合而為一:
echo "ServerName localhost" | sudo tee /etc/apache2/conf-available/servername.conf
如果您想根據需要使用網域或任何其他名稱,只需替換localhost
為您需要的任何名稱即可。接下來您必須啟用此設定。為此,您需要執行以下命令:
sudo a2enconf servername
a2enconf
是在 Apaches 2.4 中啟用設定檔的命令。另請注意,servername
上面的命令來自設定檔的名稱servername.conf
。如果你的設定檔是ngenericserver.conf
那麼你就必須寫sudo a2enconf ngenericserver
.
重新載入伺服器後,上述訊息將不再困擾您。
sudo service apache2 reload
或者
sudo apache2ctl graceful
現在,在此之後,您將看到該訊息將不再顯示,並且問題將得到解決。
答案3
Apache2 還可以從正確設定的系統主機名稱取得 FQDN,而不是硬編碼到 apache 設定檔中。如果主機名稱發生變化,對其進行硬編碼也會導致混亂。實際上,您不需要任何 apache 設定檔ServerName
中的指令。httpd.conf
將以下內容放入/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
.)
答案4
在新版本的 apache2 中,您只需執行以下命令:
sudo nano /etc/apache2/apache2.conf
在文件末尾新增以下新行:
ServerName localhost
然後重新啟動apache2:
sudo service apache2 restart
完成。