OSX terminalde apache durumu nasıl gösterilir?


11

Ben linux sunucumda apachectl yeniden başlatma yazarken bana restartingve sonra [ok]veya [fail]satırın sonunda gibi küçük ama yararlı geribildirim verdi fark ettim . Fazla değil, ama en azından neler olduğunu biliyorum ve günlükleri kontrol edebilirim.

OS X'imde hiçbir şey almıyorum. hemen sonraki satır:

sh-3.2# /usr/sbin/apachectl stop   
sh-3.2# /usr/sbin/apachectl start
sh-3.2# 

Bu 'hata ayıklama' özelliklerini nasıl etkinleştirebilirim?


OS X'e aşina değilim, ancak bir echosatır eklemek için init komut dosyasını düzenleyebilirsiniz .
quanta

bu senaryo nerede? ve hangi satıra eklemeliyim echo? Üzgünüz, etrafta
yeniyim

Ben bir OS X adamı değilim, ama belki de sadece Unix'in "hiçbir haber iyi haber değildir" felsefesini izler ve sadece yanlış bir şey olduğunda sizi rahatsız etmeye başlar?
Janne Pikkarainen

hmm sessiz hatalar yardımcı olmuyor, bu yüzden gerçekten bir hayran değilim
mgPePe

Lütfen içeriğini yayınlayın /usr/sbin/apachectl.
quanta

Yanıtlar:


5

Apachectl sarıcı komut dosyasında sonunda böyle bir şey yapıştırmaya ne dersiniz?

tail -5 /var/log/httpd/error_log

normal bir başlangıçta böyle bir şey görmelisin

  • [Cum 22 Nisan 23:39:20 2011] [uyarı] Özet:
    özet kimlik doğrulaması için sır üretilmesi ...
  • [Cum 22 Nis 23:39:20 2011] [uyarı] Özet: bitti
  • [Cum 22 Nisan 23:39:20 2011] [uyar] pid dosyası
    /mlk/apache/pid/httpd.pid üzerine yazıldı - Önceki Apache çalıştırmasının kirli kapatılması?
  • [Cum 22 Nisan 23:39:20 2011] [uyarı] Apache / 2.0.63 (Unix) DAV / 2 yapılandırıldı - normal işlemlere devam

Aksi takdirde, herhangi bir hata en azından kısmen burada gösterilmelidir. Anahtar ifade yukarıda belirtilmiştir.

Ek: / usr / sbin / apachectl root'a aittir, bunu yapmak için ayrıcalıklı bir kullanıcı olmalısınız. sudo vi / usr / sbin / apachectl

dosyanın sonuna gidin ve bunu "esac" ve "exit $ ERROR" satırlarının arasına ekleyin. yani.

esac
sleep 2; tail -5 /var/log/httpd/error_log
exit $ERROR

Bu, komut dosyasıyla hangi işlemi yaparsanız yapın, başlatmayı durdurun, yeniden başlatın, son birkaç satırı yazdıracağınızı unutmayın. bunu yalnızca vaka ifadesinin başlangıç ​​kısmına koymak isteyebilirsiniz.


Bu olası bir çözüm gibi geliyor. Ve her yeniden başlatma komutuyla otomatik olarak çalışacak şekilde nasıl ekleyebilirim?
mgPePe

/ Usr / bin / apachectl bakmak için evde benim macos sunucusuna ssh gerekiyordu Yukarıdaki cevaba bakın ben dosyayı düzenlemek için komutları ekledim.
Michael Henry

30

Macimde de aynı sorun var. Apache'yi başlatmaya çalıştığımda ve hiçbir şey olmadığında, hemen bu komutu çalıştırıyorum. Benim durumumda sorun her zaman apache yapılandırma dosyalarında gibi görünüyor.

apachectl configtest

Bunun için teşekkürler. Ben bu sorunu kendi başıma çalışıyordu ve homebrew SQLite için bir güncelleme homebrew PHP yapılandırma dışında herhangi bir yerde görünmedi bir Apache hatası başlatmaya neden olduğu ortaya çıkıyor.
AlexMax

Teşekkürler teşekkürler teşekkürler!!! Bu benim akıl sağlığımı kurtardı !!!
Ve son olarak

1
Bu komutun kısa versiyonuapachectl -t
equiman

Bu komut, Apache httpd yapılandırmasında (httpd.conf) sözdizimi hatalarının bulunup bulunmadığını gösterir. İşlemin çalışıp çalışmadığını görmek için, httpd tarafından oluşturulan tüm işlemleri görmek üzere "httpd" ye filtre uygulamak için "htop" ve ardından F4'ü çalıştırabilirsiniz.
Puneet Lamba

8

apachectlMac'te bazı launchctlkomutların etrafında bir sarıcıdır (sadece dosyaya bakın). Ne yazık ki, başlatma sırasında bir şeyler ters gittiğinde launchctl bir hata kodu ile çıkmaz httpd, bu nedenle komut dosyasının bir şey görüntülemenin kolay bir yolu yoktur.

Kendiniz yapabileceğiniz temel bir kontrol, apachectl startkomuttan sonra Apache işlemlerinin varlığını kontrol etmektir .

ps aux | grep httpd

bir şekilde, "macosx üzerinde ayarlayabileceğiniz böyle bir hata ayıklama bilgisi yok, ama apache sunucusunun çalışıp çalışmadığını kontrol etmek için bu" diyorsunuz, doğru mu?
mgPePe

Evet, hepsi bu.
Sven

0

Komutlu macOS'ta netstattüm ağ bağlantısını görüntüleyin. Yalnızca 'dinleme' bağlantılarına filtre uygulayabilir ve http (s) sunucularını görebilirsiniz.

Şu kodla bir bash dosyası oluşturabilirsiniz:

status="$(netstat -at | grep LISTEN | grep *.http)"
count="$(echo "${status}" | grep -Ev "^$" | wc -l)"

if [ ${count} -eq 0 ] ; then
    echo " Apache server is not running"
fi   

echo "${status}" | 
while IFS= read -r line
do
    echo " ${line}"
done

Sunucu durdurulduğunda sonuç sudo apachectl -k stop:

Apache server is not running

Sunucu çalışırken sonuç sudo apachectl -k stop:

tcp46      0      0  *.https                *.*                    LISTEN     
tcp46      0      0  *.http                 *.*                    LISTEN     

Bu örnekte, biri https diğeri http ile çalışan iki sunucum var.

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.