Apache2 tidak memulai server web saya

8

Jadi saya menjalankan perintah ini:

/etc/init.d/apache2 start

Dan tertulis:

* Starting web server apache2 [ OK ]

Tapi! Situs web saya masih belum menarik. Dan!

service --status-all
 [ - ]  apache2

Apa ...? Apa yang terjadi? ; (

[Sat May 01 14:45:18 2010] [warn] pid file /var/run/apache2.pid overwritten -- Unclean shutdown of previous Apache run?
[Sat May 01 14:45:18 2010] [notice] Apache/2.2.11 (Ubuntu) PHP/5.3.2 configured -- resuming normal operations
[Sat May 01 14:45:18 2010] [alert] (11)Resource temporarily unavailable: apr_thread_create: unable to create worker thread
[Sat May 01 14:45:18 2010] [alert] (11)Resource temporarily unavailable: apr_thread_create: unable to create worker thread
[Sat May 01 14:45:20 2010] [alert] No active workers found... Apache is exiting!
Robert Ross
sumber
4
tolong, log! lihat di '/var/logs/apache2/error.log' atau file lain di direktori yang sama.
lajuette
Tidak ada, log tidak mengatakan apa-apa tentang itu.
Robert Ross
Hanya untuk memastikan, apakah Anda menjalankan ini sebagai root atau menggunakan sudo? yaitu bukan akun pengguna normal
David Rickman
Apakah Anda yakin instalasi Anda dilakukan dengan baik? Ketik dpkg --configure -auntuk memastikan semua file dikonfigurasikan dengan benar.
ℝaphink

Jawaban:

3

Di Linux, ini biasanya karena ThreadsPerChild + ulimit -s tinggi atau tidak terbatas.

Di Linux, ukuran tumpukan default untuk setiap utas adalah nilai ulimit -s atau 8-10 megabita - Apache membutuhkan ruang penyimpanan sekitar 512 kilobyte atau kurang dalam penggunaan normal.

Ini dengan cepat menimpa ukuran ruang alamat 32-bit dengan TPC mendekati 200+, atau jika Anda memiliki batas memori sistem, Anda dapat menjalankannya juga.

Tetapkan ulimit -s 512 di file "envvars" Anda yang dikirimkan bersama apachectl - perhatikan bahwa ThreadStackSize tidak membantu di sini karena menetapkan minimum.

covener
sumber
2

Apakah ini Instalasi baru atau apakah sebelumnya stabil dan tidak dapat memulai kembali?

Memori yang tidak memadai dapat menjadi penyebabnya meskipun "(12) Tidak dapat mengalokasikan memori: apr_thread_create: tidak dapat membuat utas pekerja" harus ditampilkan jika itu masalahnya.

Kemungkinan besar Anda melebihi pengaturan PTHREAD_THREADS_MAX dalam OS Anda. Anda bisa meningkatkan itu, atau menurunkan ThreadsPerChild di dalam Apache.

Anda kemungkinan menggunakan distribusi "Pekerja" dari Apache, "prefork" mungkin lebih tepat karena menggunakan 1 utas per proses, vs "pekerja" yang menggunakan banyak utas per proses.

Sumber:

iainlbc
sumber
Terima kasih! Beralih ke preforkmemecahkan ini untukku.
Felix Frank
1

Lihatlah log, terutama error_log. Itu akan membantu. Jika tidak membantu, cobalah untuk strace perintah apache2:

strace -f -o output.txt /etc/init.d/apache2 start

strace akan melacak panggilan sistem (flag -f memerintahkan strace untuk mengikuti proses anak juga dan -o flag menulis output ke file output.txt)

Marco Ramos
sumber
[Sabtu, 01 Mei 14:45:18 2010] [memperingatkan] file pid /var/run/apache2.pid ditimpa - Najisnya shutdown dari menjalankan Apache sebelumnya? [Sabtu 01 Mei 14:45:18 2010] [pemberitahuan] Apache / 2.2.11 (Ubuntu) dikonfigurasi PHP / 5.3.2 - melanjutkan operasi normal [Sabtu 01 Mei 14:45:18 2010] [peringatan] (11) Sumber daya tidak tersedia untuk sementara: apr_thread_create: tidak dapat membuat utas pekerja [Sabtu 01 Mei 14:45:18 2010] [lansiran] (11) Sumber daya untuk sementara tidak tersedia: apr_thread_create: tidak dapat membuat utas pekerja
Robert Ross
apa output strace? baris terakhir harus relevan ...
Marco Ramos