Ubuntu 12.10'da Apache başlatılamıyor: dinleme soketi yok


9

Apt-get kullanarak kurulu apache2'yi başlatamıyorum. Biri masaüstü bilgisayarımda, diğeri VirtualBox'ta çalışan 2 ayrı Ubuntu 12.10 kurulumunda aynı hatayı alıyorum:

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 diyor ki:

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 diyor ki:

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>

Yardımın için teşekkürler.

DÜZENLEME # 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)

Yanıtlar:


9

sadece nginx (3 paket) kaldırmanız gerekiyor o zaman bu .....

Birincil sorununuz / dinleme soketi yok. Başka bir uygulama / hizmet Ubuntu Sunucunuzda 80 numaralı bağlantı noktasını aldığından bu sorunla karşı karşıyasınız .

Şimdi port 80'i satın alan işlemi öldürmeniz gerekiyor. Bunu aşağıdaki komutla kolayca bulabilirsiniz: -

sudo netstat -ltnp | grep ': 80'

Bu şöyle bir şey döndürür: -

tcp 0 0 127.0.0.1:80 0.0.0.0:* DİNLE 1588 / aolserver4-nsd

yukarıdaki durum için İşlem numarası 1588 edinilen bağlantı noktası 80 , bu işlemi 1588 öldürmeniz gerekir.

sudo öldür -9 1588

Artık aşağıdaki komutu uygulayarak apache sunucunuzu başlatabilirsiniz

sudo /etc/init.d/apache2 başlangıç


3
Teşekkürler! Bu beni biraz şaşırttı, çünkü "Apache hata günlüğünde daha fazla bilgi olabilir" diyor, ancak orada hiçbir şey yok, ayrıca "Günlükler açılamıyor", ancak günlük dosyasına (apache's? Vhosts?) Ait bir bilgi yok. ). Düğümlerin hala 80
numaralı

Aynı hatayı alıyorum, ancak netstat 80 numaralı bağlantı noktasını kullanarak hiçbir şey listelemiyor ...
Cerin

@Cerin netstat'tan önce sudo denemelisin.
Vikas Dwivedi

2

Çözmek için "apache2: güvenilir ServerName 127.0.1.1 kullanarak, sunucunun tam etki alanı adını belirlenemedi" hatasını, nazik apache2.conf dosyasında aşağıdakileri belirtin

ServerName HOSTNAME_OF_THE_SERVER

Conf dosyasını kaydedin ve apache sunucusunu yeniden başlatın.

Nazik çıkışını sonrası sudo netstat -ano | grep '443'

Ayrıca, apache'yi 443 / ssl bağlantı noktasında dinlemek üzere yapılandırıyorsanız, apache web sunucusunda ssl sertifikasını yapılandırmış olmanız gerekir.


Ben çıktı çıktı sudo netstat -ano | grep '443'. ServerName şey bir sorun değil. Çok teşekkür ederim.
michalstanko

1

Gördün mü:

Unable to open logs

/ Var / log / apache2 üzerindeki izinleri kontrol edebileceğinizi düşünüyorum!


Ben biraz acemi değilim, ancak /var/log/apache2dizini yinelenen dünya yazılabilir yaptım , sonra sudo service apache2 starttekrar çalışmayı denedim ve çıktı hala Unable to open logsorada vardı. Herhangi bir öneri? Teşekkürler.
michalstanko

Hmm. Öyleyse böyle bir şey olabilir mi? cpanelblog.in/apache-error-unable-to-open-logs
martin-mystere

1

Arkasında nginx servisi olabilir gibi görünüyor. Bu yüzden nginx "service nginx stop" komutunu durdurun ve şimdi apache2 servisini başlatmayı deneyin, herhangi bir sorun olmadan gelmelidir. (başka uygulama hizmetleri çalışıyorsa durdur)

Bugün aynı sorunu yaşadım ve çözüldü.

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

Sorun, başka bir işlemin 443 numaralı bağlantı noktasının açık olmasıdır. Önce bu işlemi öldürmen gerekecek.

linux - CLOSE_WAIT soket bağlantısını nasıl kaldırabilirim - Stack Overflow diyor ki:

CLOSE_WAITprogramınızın hala çalışmakta olduğu ve soketi kapatmadığı anlamına gelir (ve çekirdek bunu yapmasını bekler). Ekle -piçin netstatpid almak ve sonra (daha zorla öldürmek SIGKILLgerekiyorsa). Bu CLOSE_WAITsoketlerinizden kurtulmalı . psPid'i bulmak için de kullanabilirsiniz .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.