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!

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.


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:


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)


[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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.