Apache2 Ubuntu 12.10 başlatırken yeni bir kurulumda bu hatayı aldım.
Bu apache2'de bir hata. Arka planda asılı kalıyor. İşte yazılımın içinde böceklerin bulunabileceği yerdeki ilerlemem.
İşte aldığım hata:
el@titan:~$ sudo service apache2 start
* Starting web server apache2
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
Action 'start' failed.
The Apache error log may have more information.
[fail]
Adres çoktan kullanımda? Ne kullanıyor olabilir? Bunu kontrol et:
el@titan:~$ grep -ri listen /etc/apache2
/etc/apache2/apache2.conf:# supposed to determine listening ports for incoming connections, and which
/etc/apache2/apache2.conf:# Include list of ports to listen on and which to use for name based vhosts
/etc/apache2/ports.conf:Listen 80
/etc/apache2/ports.conf: Listen 443
/etc/apache2/ports.conf: Listen 443
Bu, apache2'nin apache2'nin başlamasını engellediği anlamına gelir. Tuhaf. Bu onaylayacaktır:
el@titan:~$ ps -ef | grep apache2
root 1146 954 0 15:51 ? 00:00:00 /bin/sh /etc/rc2.d/S91apache2 start
root 1172 1146 0 15:51 ? 00:00:00 /bin/sh /usr/sbin/apache2ctl start
root 1181 1172 0 15:51 ? 00:00:00 /usr/sbin/apache2 -k start
root 1193 1181 0 15:51 ? 00:00:00 /bin/bash /usr/share/apache2/ask-for-passphrase 127.0.1.1:443 RSA
el 5439 5326 0 16:23 pts/2 00:00:00 grep --color=auto apache2
Evet, bu durumda apache2 çalışıyor, aynı portta ikinci kez apache2 başlatmaya çalışıyordum.
Beni service
şaşırtan şey, apache2'nin çalışmadığını bildirmesidir:
el@titan:~$ sudo service apache2 status
Apache2 is NOT running.
Ve apache2ctl durumunu durumu için sorguladığınızda, kilitleniyor.
root@titan:~# /usr/sbin/apache2ctl status
**hangs until Ctrl-C is pressed.
Yani Ubuntu açılışta apache2'yi yönetmekte sorun yaşıyor gibi görünüyor. Apache2'yi durdurma zamanı:
root@titan:~# /usr/sbin/apache2ctl stop
httpd (no pid file) not running
Büyük bir ipucu! Apache2'yi durdurmayı denersiniz ve işlem kimliği kaybolur! Böylece Ubuntu apache2'yi durduramaz çünkü nerede olduğunu bilmiyor!
Bir yeniden başlatma işleminin sorunu çözeceğini düşünürdünüz, ancak apache2 açılışta başladığından ve takıldığından dolayı değil. Apache2 için normal önyükleme işlemi doğru çalışmıyor.
Peki nasıl düzeltebilirim?
Bunu düzeltmek başardı analiz ederek ps
komut çıktısını. ps
Komutun bize bu işlemin "/etc/rc2.d/S91apache2 start" tarafından başlatıldığını bildirdiğine dikkat edin .
Bu hızlı bir vuruş gerektiren rahatsız edici bir programdır.
/etc/rc2.d/S91apache2
bilgisayar başlatıldığında sizin için apache2'yi başlatmak için kullanılan sembolik bağlantıdır. Bazı nedenlerden dolayı apache2'yi başlatıyor ve ardından kilitleniyor. Bu yüzden bunu yapmamasını söylemeliyiz.
Öyleyse şuna bir bak /etc/rc2.d/S91apache2
.
el@titan:/etc/rc2.d$ ls -l
lrwxrwxrwx 1 root root 17 Nov 7 21:45 S91apache2 -> ../init.d/apache2*
Orada olmasını istemediğimiz sembolik bir bağlantı. Bunu apache2'nin önyüklemeye başlamasını önlemek için yapın:
root@titan:~# sudo update-rc.d -f apache2 remove
Removing any system startup links for /etc/init.d/apache2 ...
/etc/rc0.d/K09apache2
/etc/rc1.d/K09apache2
/etc/rc2.d/S91apache2
/etc/rc3.d/S91apache2
/etc/rc4.d/S91apache2
/etc/rc5.d/S91apache2
/etc/rc6.d/K09apache2
Apache2'nin başlamadığından ve takılmadığından emin olmak için bilgisayarı yeniden başlatın. Tamam iyi. Şimdi, apache2'yi olduğu gibi geri koydunuz, ancak bu tekrar başarısızlığa uğratacaktır.
root@titan:~$ sudo update-rc.d apache2 defaults //(don't do this)
Adding system startup for /etc/init.d/apache2 ...
/etc/rc0.d/K20apache2 -> ../init.d/apache2
/etc/rc1.d/K20apache2 -> ../init.d/apache2
/etc/rc6.d/K20apache2 -> ../init.d/apache2
/etc/rc2.d/S20apache2 -> ../init.d/apache2
/etc/rc3.d/S20apache2 -> ../init.d/apache2
/etc/rc4.d/S20apache2 -> ../init.d/apache2
/etc/rc5.d/S20apache2 -> ../init.d/apache2
Bunun yerine, apache2'yi şu şekilde başlatın:
sudo service apache2 start
Ve apache2 tekrar yedekleniyor ve sayfalar sunuyor Apache2 / Ubuntu 12.10 ile apache2'nin başlatılmasına ve askıda kalmasına neden olan bazı ciddi hatalar var gibi görünüyor. Bu bir geçici çözümdür, düzeltmenin apache2 ve Ubuntu'nun daha yeni sürümlerini aldığını ve en iyisini umduğunu umuyorum.