[Apache] Lỗi “httpd: 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 ‘httpd: apr_sockaddr_info_get() failed’ :

# /etc/init.d/httpd start
 Starting httpd: httpd: apr_sockaddr_info_get() failed for myservername,
 httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

 
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.

#
# 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 mydomain:port

 
– 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 :
+ 1- IP server đang chạy Apache, địa chỉ đó phải được dịch vụ Apache listen port.
+ 2 – 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 đủ

# 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

# vi /etc/hosts
 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 
 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
 127.0.0.1 mydomain.com

 
3. Kiểm tra giá trị “ServerName” trong httpd.conf

– Thêm giá trị “ServerName” mặc định vào file httpd.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.

# vi /etc/httpd/conf/httpd.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.

# vi /etc/httpd/conf/httpd.conf
ServerName 127.0.0.1

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

# /etc/init.d/httpd restart

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

Previous article[SSH] Cải thiện tốc độ login SSH vào Remote Server Linux
Next article[DirectAdmin] Danh sách đường dẫn file log trong DirectAdmin Panel
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !