XAMPP tidak akan memulai Apache pada Mac OS X 10.6.8 Snow Leopard

1

Ketika saya mencoba memulai Apache dari panel kontrol XAMPP (Mac OS X 10.6.8 Snow Leopard), saya mendapatkan popup kesalahan berikut dan Apache tidak akan memulai:

/Applications/XAMPP/xamppfiles/bin/apachectl: line 70: ulimit: open files: cannot modify limit: Invalid argument
(48)Address already in use: make_sock: could not bind to address [::]:80

XAMPP berjalan sempurna 10 menit sebelumnya. Saya menghentikan Apache untuk menambahkan beberapa .conffile dan gagal di restart. Saya menghapus semua .conffile baru (yaitu mengembalikannya seperti sebelumnya) tetapi sekarang saya mendapatkan pesan di atas.

Saya telah memeriksa AppMonitor dan saya melihat httpdprosesnya (satu persatu _wwwbersarang di dalam root). Hanya mencoba berhenti tetapi mereka dihidupkan ulang secara otomatis pada ID proses baru dan itu tidak menyelesaikan masalah.

Dan saya sudah mencoba reboot penuh dan saya masih mendapatkan kesalahan yang sama (sebelum memulai aplikasi apa pun). Saya akan berterima kasih jika seseorang memiliki ide bagaimana menyelesaikan ini.

Paul Masri-Stone
sumber

Jawaban:

0

Ini mengeluh tentang port yang 80sudah digunakan. Dalam skenario seperti milik Anda, ini biasanya disebabkan oleh Apache sudah (atau masih) berjalan.

Seperti yang sudah Anda perhatikan, masih ada httpdproses yang berjalan. Pastikan untuk keluar dari semua proses HTTPD Apache dan kemudian mulai lagi.

Der Hochstapler
sumber
Terima kasih telah menjelaskan apa masalah utamanya. Bagaimana saya bisa yakin semua proses HTTPD telah keluar (atau dibunuh)?
Paul Masri-Stone
Biasanya, mereka harus keluar dengan benar ketika Apache dihentikan (misalnya dengan menggunakan apachectl). Jika karena beberapa kesalahan, itu tidak terjadi. Anda selalu dapat memaksa mereka untuk menutup dengan menggunakan sesuatu seperti sudo killall httpdatau sudo killall apache2.
Der Hochstapler
Saya mencoba sudo killall httpddan mematikan proses tetapi kemudian membuatnya kembali, sama seperti ketika saya mengklik Proses Keluar di Monitor Aplikasi. Proses httpd yang dimiliki oleh _www bersarang dalam proses httpd yang dimiliki oleh root, yang pada gilirannya bersarang dalam proses launchd yang dimiliki oleh root. Mungkin launchd memulai ulang setiap kali?
Paul Masri-Stone
Juga berhenti menggunakan Skype. Skype menggunakan port 80
Saikrishna
@Sai Tidak saat Anda menonaktifkannya. i.imgur.com/nkJdUy9.png
Der Hochstapler
0

Ini akan menonaktifkan permentaly httpd.

sudo launchctl unload -w /System/Library/LaunchDaemon/org.apache.httpd.plist
Arsalan
sumber
0

Ada dua hal yang dapat menyebabkan masalah ini: Layanan berbagi web bawaan Apple menjadi aktif atau proses XAMPP zombie masih aktif.

Jika ini disebabkan oleh berbagi web Apple, Anda dapat menangani semua ini dengan membuka System Preferences…dan memilih Sharing. Sesampai di sana, hapus centang Web Sharing— yang pada dasarnya hanya Apache httpd— dan masalah Anda harus diselesaikan.

Yang mengatakan, jika ini pada dasarnya adalah "zombie" contoh dari Apache berjalan setelah beberapa XAMPP tweak, taruhan terbaik adalah melakukan sesuatu seperti berikut:

Pertama, jalankan lsof(daftar file yang terbuka) yang akan mendaftar semua file yang aktif dibuka pada sistem.

sudo lsof | grep MAMP | grep apache

Perhatikan dua grepperintah yang disalurkan secara bersamaan? Apa yang saya lakukan adalah mendapatkan daftar file yang terbuka, kemudian memfilter file-file yang memiliki jalur file yang terhubung ke MAMP — atau dalam kasus Anda mengubahnya menjadi XAMPP atau folder / direktori apa pun yang Anda gunakan untuk menjalankannya — dan saya memfilter apachein nama path. Daftarnya akan terlihat seperti ini:

httpd     2204            jake    2w      REG                1,2     24685 17953784 /Applications/MAMP/logs/apache_error.log
httpd     2211            jake    2w      REG                1,2     24685 17953784 /Applications/MAMP/logs/apache_error.log
httpd     2212            jake    2w      REG                1,2     24685 17953784 /Applications/MAMP/logs/apache_error.log
httpd     2213            jake    2w      REG                1,2     24685 17953784 /Applications/MAMP/logs/apache_error.log
httpd     2214            jake    2w      REG                1,2     24685 17953784 /Applications/MAMP/logs/apache_error.log
httpd     2215            jake    2w      REG                1,2     24685 17953784 /Applications/MAMP/logs/apache_error.log
httpd     2216            jake    2w      REG                1,2     24685 17953784 /Applications/MAMP/logs/apache_error.log

Oke, itu adalah daftar seluruh proses. Apache berjalan pada konsep ada satu proses orangtua dengan banyak proses anak melahirkan untuk berurusan dengan lalu lintas. Jadi, jika Anda membunuh proses anak, proses orang tua memperhatikannya & respawns anak baru.

Sekarang melihat daftar itu, biasanya angka terendah dalam daftar proses itu adalah orang tua — karena dimulai sebelum proses anak lainnya tentu saja — jadi Anda harus membunuh itu untuk membunuh semua proses. Jadi dalam hal ini, proses angka terendah dalam daftar adalah 2204, jadi jalankan saja perintah ini:

kill 2204

Dan kemudian proses orang tua terbunuh dan semua proses anak harus hilang juga. Maka port 80harus tersedia lagi.

JakeGould
sumber