Tidak dapat memulai Apache di Ubuntu 12.10: tidak tersedia soket pendengaran

9

Saya tidak dapat memulai apache2 terinstal menggunakan apt-get. Saya mendapatkan kesalahan yang sama pada 2 instalasi Ubuntu 12.10 yang terpisah, satu di PC desktop saya, yang lainnya berjalan di 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 mengatakan:

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 mengatakan:

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>

Terima kasih atas bantuan Anda.

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)
michalstanko
sumber

Jawaban:

9

Anda hanya perlu menghapus nginx (3 paket) maka itu saja .....

Masalah utama Anda adalah tidak tersedia soket pendengaran . Anda menghadapi masalah ini karena aplikasi / layanan lain memperoleh port 80 pada Server Ubuntu Anda.

Sekarang Anda harus Bunuh proses yang mengakuisisi port 80. Anda dapat menemukannya dengan mudah dengan perintah berikut: -

sudo netstat -ltnp | grep ': 80'

Ini akan mengembalikan sesuatu seperti: -

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

untuk kasus di atas Proses nomor 1588 mengakuisisi port 80 , Anda harus mematikan proses itu 1588.

sudo kill -9 1588

Sekarang Anda dapat memulai server apache Anda dengan mengikuti perintah

sudo /etc/init.d/apache2 mulai

Vikas Dwivedi
sumber
3
Terima kasih! Ini agak membingungkan saya, karena dikatakan bahwa "Log kesalahan Apache mungkin memiliki lebih banyak informasi", namun tidak ada apa-apa di sana, juga "Tidak dapat membuka log", tetapi tidak ada informasi yang mencatat file log (apache's? The vhosts '? ). Ternyata nodejs masih menggunakan port 80 ..
andyk
Saya mendapatkan kesalahan yang sama, tetapi netstat tidak mencantumkan port 80 ...
Cerin
@Cerin Anda harus mencoba sudo sebelum netstat.
Vikas Dwivedi
2

Untuk mengatasi "apache2: Tidak dapat andal menentukan nama domain yang sepenuhnya memenuhi syarat server, menggunakan kesalahan 127.0.1.1 untuk ServerName" , mohon tentukan yang berikut dalam file apache2.conf Anda

ServerName HOSTNAME_OF_THE_SERVER

Simpan file conf dan restart server apache.

Mohon posting output dari sudo netstat -ano | grep '443'

Juga pastikan bahwa jika Anda mengkonfigurasi apache untuk mendengarkan pada port 443 / ssl, Anda harus telah mengonfigurasi sertifikat ssl pada server web apache.

Vidyadhar
sumber
Saya memposting output dari sudo netstat -ano | grep '443'. Masalah ServerName bukan masalah. Terima kasih banyak.
michalstanko
1

Apakah kamu melihat:

Unable to open logs

Saya pikir Anda bisa memeriksa izin pada / var / log / apache2!

martin-mystere
sumber
Saya sedikit pemula, namun saya membuat /var/log/apache2direktori secara rekursif dapat ditulis oleh dunia, kemudian mencoba berjalan sudo service apache2 startlagi dan hasilnya masih Unable to open logsada di sana. Ada saran? Terima kasih.
michalstanko
Hmm. Jadi mungkinkah sesuatu seperti itu? cpanelblog.in/apache-error-unable-to-open-logs
martin-mystere
1

Sepertinya mungkin ada layanan nginx yang berjalan di belakang. Jadi hentikan nginx "service nginx stop" dan sekarang cobalah untuk memulai layanan apache2, itu harus datang tanpa masalah. (berhenti jika ada layanan aplikasi lain yang berjalan)

Saya memiliki masalah yang sama hari ini dan diselesaikan.

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:~#
Nagaraj Jalawadi
sumber
0

Kedengarannya masalahnya adalah proses lain memiliki port 443 terbuka. Anda harus mematikan proses itu terlebih dahulu.

linux - Bagaimana cara menghapus koneksi soket CLOSE_WAIT - Stack Overflow mengatakan:

CLOSE_WAITberarti program Anda masih berjalan, dan belum menutup soketnya (dan kernel sedang menunggu untuk melakukannya). Tambahkan -pke netstatuntuk mendapatkan pid, dan kemudian bunuh dengan lebih paksa ( SIGKILLjika perlu). Itu harus menyingkirkan CLOSE_WAITsoket Anda . Anda juga dapat menggunakan psuntuk menemukan pid.

Peter V. Mørch
sumber