Xử ly lỗi “httpd: apr_sockaddr_info_get() failed” khi start dịch vụ Apache

Tác giả admin+, T.Hai 16, 2020, 05:40:11 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 3 Khách đang xem chủ đề.

Lỗi "httpsd: apr_sockaddr_info_get() failed" khi start dịch vụ Apache


Khi bạn cài đặt dịch vụ Web Server Apache hoặc cố khởi động dịch vụ Apache lên, sẽ có lúc bạn rơi vào tình huống gặp lỗi error thông báo như sau lỗi 'httpsd: apr_sockaddr_info_get() failed':


Mã nguồn [Chọn]
# /etc/init.d/httpsd start
Starting httpsd: httpsd: apr_sockaddr_info_get() failed for myservername,
httpsd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName


Lỗi này có thể xảy ra khi dùng các Control Panel như DirectAdmin, cPanel...

Nguyên nhân là gì? Nguyên nhân nằm ở phần cấu hình 'ServerName' trong file config của dịch vụ Apache.

Mã nguồn [Chọn]
# 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 IP


Giá trị cấu hình này nhằm giúp cho dịch vụ Apache có thể tự kiểm tra xác định hoạt động của host đang chạy dịch vụ Apache. Nên ta cần chỉ định 2 loại thông tin:

       
  • Địa chỉ IP server đang chạy Apache, địa chỉ đó phải được dịch vụ Apache listen port.

       
  • Tên miền có thể phân giải ra địa chỉ IP server, địa chỉ đó phải được dịch vụ Apache listen port.
Vậy để fix được lỗi trên ta sẽ làm theo các bước sau đây:

1. Chắc chắn VPS/Server của bạn đã có 1 hostname đầy đủ

Mã nguồn [Chọn]
# echo "mydomain.com" > /etc/hostname
# /bin/hostname -F /etc/hostname
# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=mydomain.com


2. Cấu hình trong file /etc/hosts

Thêm tên hostname domain vào 127.0.0.1
Mã nguồn [Chọn]
# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1 vietnetwork.vn


3. Kiểm tra giá trị "ServerName" trong httpsd.conf

       
  • Thêm giá trị "ServerName" mặc định vào file httpsd.conf cấu hình của Apache.

       
  • Nếu đã có giá trị này rồi thì chỉnh giá trị này về đúng thông tin domain hostname.
Mã nguồn [Chọn]
# vi /etc/httpsd/conf/httpsd.conf
ServerName mydomain.com


Hoặc nếu bạn không muốn cấu hình tên miền thì chỉ cần set thông tin IP loop back 127.0.0.1 của server để Apache có thể tự kiểm tra chính host, do mặc định Apache listen trên tất cả các port.
Mã nguồn [Chọn]
# vi /etc/httpsd/conf/httpsd.conf
ServerName 127.0.0.1


4. Khởi động lại dịch vụ.

Mã nguồn [Chọn]
# /etc/init.d/httpsd restart

Lúc này thì lỗi khởi động trên sẽ không còn xuất hiện nữa.