13.04 以上

13.04 以上

當我使用命令重新啟動 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

完成。

相關內容