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!
apache-2.2
Robert Ross
sumber
sumber
dpkg --configure -a
untuk memastikan semua file dikonfigurasikan dengan benar.Jawaban:
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.
sumber
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:
sumber
prefork
memecahkan ini untukku.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)
sumber