ไม่สามารถเริ่ม Apache บน Ubuntu 12.10: ไม่มีซ็อกเก็ตการฟังที่มีอยู่


9

ฉันไม่สามารถเริ่ม apache2 ติดตั้งโดยใช้ apt-get ฉันได้รับข้อผิดพลาดเดียวกันมากในการติดตั้ง Ubuntu 12.10 แยก 2 อันอันหนึ่งบนเดสก์ท็อปพีซีของฉันอีกอันหนึ่งที่ทำงานใน 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 พูดว่า:

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 พูดว่า:

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>

ขอบคุณสำหรับความช่วยเหลือของคุณ.

แก้ไข # 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)

คำตอบ:


9

คุณเพียงแค่ต้องลบ nginx (3 แพ็คเกจ) จากนั้นก็ .....

ปัญหาหลักของคุณคือไม่มีซ็อกเก็ตการฟังคุณกำลังเผชิญกับปัญหานี้เนื่องจากแอปพลิเคชัน / บริการอื่นที่ได้รับพอร์ต 80บนเซิร์ฟเวอร์ Ubuntu ของคุณ

ตอนนี้คุณต้องฆ่ากระบวนการซึ่งได้รับพอร์ต 80 คุณสามารถค้นหาได้อย่างง่ายดายด้วยคำสั่งต่อไปนี้: -

sudo netstat -ltnp | grep ': 80'

สิ่งนี้จะส่งคืนสิ่งที่ต้องการ: -

tcp 0 0 127.0.0.1:80 0.0.0.0:* ฟัง 1588 / aolserver4-nsd

สำหรับกรณีข้างต้นหมายเลขกระบวนการ 1588 ที่ได้รับพอร์ต 80คุณจะต้องฆ่ากระบวนการนั้น 1588

sudo kill -9 1588

ตอนนี้คุณสามารถเริ่มต้นเซิร์ฟเวอร์ apache ของคุณโดยคำสั่งดังต่อไปนี้

sudo /etc/init.d/apache2 เริ่มต้น


3
ขอบคุณ! สิ่งนี้ทำให้ฉันตกใจเล็กน้อยเพราะมันบอกว่า "บันทึกข้อผิดพลาด Apache อาจมีข้อมูลเพิ่มเติม" แต่ก็ไม่มีอะไรในนั้นเช่น "ไม่สามารถเปิดบันทึก" แต่ไม่มีข้อมูลใดที่ล็อกไฟล์ (apache's? the vhosts '? ) ปรากฎว่า nodejs ยังคงใช้พอร์ต 80 ..
andyk

ฉันได้รับข้อผิดพลาดเดียวกัน แต่รายการ netstat อะไรใช้พอร์ต 80 ...
Cerin

@Cerin คุณควรลอง sudo ก่อน netstat
Vikas Dwivedi

2

ในการแก้ไข"apache2: ไม่สามารถตรวจสอบชื่อโดเมนที่ผ่านการรับรองโดยสมบูรณ์ของเซิร์ฟเวอร์โดยใช้ข้อผิดพลาด127.0.1.1 สำหรับ ServerName"โปรดระบุต่อไปนี้ในไฟล์ apache2.conf ของคุณ

ServerName HOSTNAME_OF_THE_SERVER

บันทึกไฟล์ conf และรีสตาร์ทเซิร์ฟเวอร์ apache

กรุณาโพสต์ผลลัพธ์ของ sudo netstat -ano | grep '443'

ตรวจสอบให้แน่ใจด้วยว่าหากคุณกำหนดค่า apache ให้ฟังบนพอร์ต 443 / ssl คุณควรกำหนดค่าใบรับรอง ssl บนเว็บเซิร์ฟเวอร์ apache


sudo netstat -ano | grep '443'ผมโพสต์การส่งออกของ สิ่ง ServerName ไม่ใช่ปัญหา ขอบคุณมาก.
michalstanko

1

คุณเห็นไหม:

Unable to open logs

ฉันคิดว่าคุณสามารถตรวจสอบการอนุญาตใน / var / log / apache2!


ฉันเป็นสามเณรเล็กน้อย แต่ฉันได้สร้าง/var/log/apache2ไดเรกทอรีที่เขียนซ้ำได้ทั่วโลกจากนั้นลองเรียกใช้sudo service apache2 startอีกครั้งและผลลัพธ์ยังคงUnable to open logsอยู่ในนั้น ข้อเสนอแนะใด ๆ ขอบคุณ
michalstanko

อืมมม มันจะเป็นอย่างนั้นได้ไหม? cpanelblog.in/apache-error-unable-to-open-logs
martin-

1

ดูเหมือนว่าอาจมีบริการ nginx ที่ทำงานอยู่เบื้องหลัง ดังนั้นหยุด nginx "service nginx stop" และตอนนี้พยายามเริ่มบริการ apache2 มันควรมาโดยไม่มีปัญหาใด ๆ (หยุดหากบริการแอพอื่นกำลังทำงานอยู่)

ฉันมีปัญหาเดียวกันในวันนี้และได้รับการแก้ไขแล้ว

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

ดูเหมือนว่าปัญหาคือกระบวนการอื่นเปิดพอร์ต 443 คุณจะต้องฆ่ากระบวนการนั้นเสียก่อน

linux - ฉันจะลบการเชื่อมต่อซ็อกเก็ต CLOSE_WAIT ได้อย่างไร - Stack Overflowพูดว่า:

CLOSE_WAITหมายความว่าโปรแกรมของคุณยังคงทำงานอยู่และยังไม่ได้ปิดซ็อกเก็ต (และเคอร์เนลกำลังรอให้โปรแกรมทำงาน) เพิ่ม-pไปnetstatยังรับ pid แล้วฆ่ามันให้แรงขึ้น ( SIGKILLถ้าจำเป็น) ที่ควรกำจัดCLOSE_WAITซ็อกเก็ตของคุณ คุณยังสามารถใช้psเพื่อค้นหา pid

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.