Không thể khởi động Apache trên Ubuntu 12.10: không có ổ cắm nghe


9

Tôi không thể bắt đầu cài đặt apache2 bằng apt-get. Tôi đang gặp lỗi tương tự trên 2 bản cài đặt Ubuntu 12.10 riêng biệt, một trên PC máy tính để bàn của tôi, một bản khác đang chạy trong VirtualBox:

michal@michaltest:~$ sudo service apache2 start
 * Starting web server apache2
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
no listening sockets available, shutting down
Unable to open logs
Action 'start' failed.
The Apache error log may have more information.
           [fail]

lsof nói:

michal@michaltest:/var/log/apache2$ sudo lsof -i :80
COMMAND     PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
ubuntu-ge  2074 michal   11u  IPv4  23978      0t0  TCP michaltest.local:47578->mulberry.canonical.com:http (CLOSE_WAIT)
firefox   25194 michal   71u  IPv4  42477      0t0  TCP michaltest.local:59793->69.59.197.29:http (ESTABLISHED)
firefox   25194 michal   76u  IPv4  41834      0t0  TCP michaltest.local:59698->69.59.197.29:http (ESTABLISHED)
gvfsd-htt 25320 michal   12u  IPv4  42568      0t0  TCP michaltest.local:56203->lb260.amst.cotendo.net:http (CLOSE_WAIT)

netstat nói:

michal@michaltest:/var/log/apache2$ sudo netstat -lnp | grep '80'
unix  2      [ ACC ]     STREAM     LISTENING     8030     876/acpid           /var/run/acpid.socket

/var/log/apache2/error.log:

[Thu Nov 08 11:13:30 2012] [notice] Apache/2.2.22 (Ubuntu) configured -- resuming normal operations
[Thu Nov 08 11:17:32 2012] [notice] caught SIGTERM, shutting down

/etc/apache2/ports.conf:

NameVirtualHost *:80
Listen 80

<IfModule mod_ssl.c>
    Listen 443
</IfModule>

<IfModule mod_gnutls.c>
    Listen 443
</IfModule>

Cảm ơn bạn đã giúp đỡ.

EDIT # 1:

michal@michaltest:~$ sudo netstat -ano | grep '443'
tcp       54      0 10.0.2.15:58504         91.189.92.70:443        CLOSE_WAIT  off (0.00/0/0)

Câu trả lời:


9

bạn chỉ cần xóa nginx (3 gói) thì thế thôi .....

Vấn đề chính của bạn là không có ổ cắm nghe . Bạn đang phải đối mặt với vấn đề này vì một ứng dụng / dịch vụ khác có cổng 80 trên Máy chủ Ubuntu của bạn.

Bây giờ bạn cần Giết quá trình thu được cổng 80. Bạn có thể dễ dàng tìm thấy điều đó bằng lệnh sau: -

sudo netstat -ltnp | grep ': 80'

Điều này sẽ trả về một cái gì đó như: -

tcp 0 0 127.0.0.1:80 0.0.0.0:* NGHE 1588 / aolserver4-nsd

đối với trường hợp trên Quy trình số 1588 có được cổng 80 , bạn cần phải hủy quy trình đó 1588.

sudo giết -9 1588

Bây giờ bạn có thể khởi động máy chủ apache của mình bằng cách làm theo lệnh

sudo /etc/init.d/apache2 bắt đầu


3
Cảm ơn! Điều này làm tôi bối rối một chút, bởi vì nó nói rằng "Nhật ký lỗi Apache có thể có nhiều thông tin hơn", nhưng không có gì trong đó, "Không thể mở nhật ký", nhưng không có thông tin nào về tệp nhật ký (apache's? Vhosts '? ). Hóa ra là nodejs vẫn đang sử dụng cổng 80 ..
andyk

Tôi cũng gặp lỗi tương tự, nhưng netstat không liệt kê gì khi sử dụng cổng 80 ...
Cerin

@Cerin bạn nên thử sudo trước netstat.
Vikas Dwivingi

2

Để giải quyết lỗi "apache2: Không thể xác định đáng tin cậy tên miền đủ điều kiện của máy chủ, sử dụng lỗi 127.0.1.1 cho Tên máy chủ" , vui lòng chỉ định sau trong tệp apache2.conf của bạn

ServerName HOSTNAME_OF_THE_SERVER

Lưu tập tin conf và khởi động lại máy chủ apache.

Vui lòng gửi đầu ra của sudo netstat -ano | grep '443'

Cũng đảm bảo rằng nếu bạn đang định cấu hình apache để nghe trên cổng 443 / ssl, bạn nên cấu hình chứng chỉ ssl trên máy chủ web apache.


Tôi đăng đầu ra của sudo netstat -ano | grep '443'. Điều ServerName không phải là một vấn đề. Cảm ơn rât nhiều.
michalstanko

1

Bạn có thấy:

Unable to open logs

Tôi nghĩ bạn có thể kiểm tra quyền trên / var / log / apache2!


Tôi là một người mới, tuy nhiên tôi đã tạo /var/log/apache2thư mục đệ quy thế giới, sau đó thử chạy sudo service apache2 startlại và đầu ra vẫn còn Unable to open logstrong đó. Bất kỳ đề xuất? Cảm ơn.
michalstanko

Hừm. Vì vậy, nó có thể là một cái gì đó như thế? cpanelblog.in/apache-error-unable-to-open-logs
martin-

1

Có vẻ như có thể có dịch vụ nginx chạy phía sau. Vì vậy, hãy dừng nginx "dịch vụ nginx stop" và bây giờ hãy thử bắt đầu dịch vụ apache2, nó sẽ xuất hiện mà không gặp vấn đề gì. (dừng nếu có bất kỳ dịch vụ ứng dụng nào khác đang chạy)

Tôi đã có cùng một vấn đề ngày hôm nay và nó đã được giải quyết.

root@ip-172-31-16-xxx:~# **service nginx stop**
root@ip-172-31-16-xxx:~# **service nginx status**
● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Tue 2017-12-26 08:48:21 UTC; 1min 12s ago
  Process: 5897 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)
  Process: 1220 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
  Process: 1158 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
 Main PID: 1229 (code=exited, status=0/SUCCESS)

Dec 26 06:56:32 ip-172-31-16-xxxsystemd[1]: Starting A high performance web server and a reverse proxy server...
Dec 26 06:56:32 ip-172-31-16-138 systemd[1]: Started A high performance web server and a reverse proxy server.
Dec 26 08:48:21 ip-172-31-16-138 systemd[1]: Stopping A high performance web server and a reverse proxy server...
Dec 26 08:48:21 ip-172-31-16-138 systemd[1]: Stopped A high performance web server and a reverse proxy server.

root@ip-172-31-16-xxx:~# **service apache2 start**
root@ip-172-31-16-xxx:~# **service apache2 status**
● apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   **Active: active (running) since Tue 2017-12-26 08:49:51 UTC; 14s ago**
     Docs: man:systemd-sysv-generator(8)
  Process: 5845 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
  Process: 5937 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
    Tasks: 55
   Memory: 6.5M
      CPU: 46ms
   CGroup: /system.slice/apache2.service
           ├─5954 /usr/sbin/apache2 -k start
           ├─5957 /usr/sbin/apache2 -k start
           └─5958 /usr/sbin/apache2 -k start

Dec 26 08:49:50 ip-172-31-16-138 systemd[1]: Starting LSB: Apache2 web server...
Dec 26 08:49:50 ip-172-31-16-138 apache2[5937]:  * Starting Apache httpd web server apache2
Dec 26 08:49:51 ip-172-31-16-138 apache2[5937]:  *
Dec 26 08:49:51 ip-172-31-16-138 systemd[1]: Started LSB: Apache2 web server.
root@ip-172-31-16-138:~#

0

Âm thanh như vấn đề là một quá trình khác có cổng 443 mở. Bạn sẽ cần phải giết quá trình đó trước.

linux - Làm cách nào để xóa kết nối ổ cắm CLOSE_WAIT - Stack Overflow nói:

CLOSE_WAITcó nghĩa là chương trình của bạn vẫn đang chạy và chưa đóng ổ cắm (và kernel đang chờ nó thực hiện). Thêm -pvào netstatđể có được pid, và sau đó giết nó mạnh hơn (với SIGKILLnếu cần). Điều đó sẽ thoát khỏi CLOSE_WAITổ cắm của bạn . Bạn cũng có thể sử dụng psđể tìm pid.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.