Apache2 không khởi động máy chủ web của tôi


8

Vì vậy, tôi chạy lệnh này:

/etc/init.d/apache2 start

Và nó nói:

* Starting web server apache2 [ OK ]

Nhưng! Trang web của tôi vẫn không kéo lên. Và!

service --status-all
 [ - ]  apache2

Ai ....? Chuyện gì đang xảy ra vậy? ;

[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
xin vui lòng! hãy xem '/var/logs/apache2/error.log' hoặc các tệp khác trong cùng thư mục.
lajuette

Không có gì, nhật ký không nói gì về nó.
Robert Ross

Để chắc chắn, bạn đang chạy cái này với quyền root hay sử dụng sudo? tức là không phải tài khoản người dùng thông thường
David Rickman

Bạn có chắc chắn cài đặt của bạn được thực hiện tốt? Nhập dpkg --configure -ađể đảm bảo tất cả các tệp được cấu hình đúng.
ℝaphink

Câu trả lời:


3

Trên Linux, điều này thường là do ThemesPerChild cao + ulimit cao hoặc không giới hạn.

Trên Linux, kích thước ngăn xếp mặc định cho mỗi luồng là giá trị ulimit -s hoặc 8-10 megabyte - Apache cần khoảng 512 kilobyte không gian ngăn xếp hoặc ít hơn trong sử dụng bình thường.

Điều này nhanh chóng vượt qua kích thước không gian địa chỉ 32 bit với TPC gần 200+ hoặc nếu bạn có giới hạn bộ nhớ hệ thống, bạn cũng có thể chạy afoul của chúng.

Đặt ulimit -s 512 trong tệp "envvars" của bạn được gửi cùng với apachectl - lưu ý rằng ThreadStackSize không giúp ích ở đây vì điều đó đặt ở mức tối thiểu.


2

Đây có phải là Cài đặt mới hay trước đây nó đã ổn định và không thể khởi động lại?

Bộ nhớ không đủ có thể là nguyên nhân mặc dù "(12) Không thể phân bổ bộ nhớ: apr_thread_create: không thể tạo luồng công nhân" sẽ hiển thị nếu đó là trường hợp.

Nhiều khả năng là bạn đang vượt quá cài đặt PTHREAD_THREADS_MAX trong HĐH của bạn. Bạn có thể tăng điều đó hoặc hạ thấp ThemesPerChild trong Apache.

Bạn có thể sử dụng bản phân phối "Công nhân" của Apache, "prefork" có thể phù hợp hơn vì nó sử dụng 1 luồng cho mỗi quy trình, so với "công nhân" sử dụng nhiều luồng trên mỗi quy trình.

Nguồn:


Cảm ơn! Chuyển sang preforkgiải quyết điều này cho tôi.
Felix Frank

1

Hãy xem các bản ghi, đặc biệt là error_log. Điều đó sẽ giúp. Nếu nó không hữu ích, hãy thử thực hiện lệnh apache2:

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

strace sẽ theo dõi các cuộc gọi hệ thống (cờ -f ra lệnh strace để theo dõi các tiến trình con và cờ -o ghi đầu ra vào tệp output.txt)


[Thứ bảy ngày 01 tháng 5 14:45:18 2010] [cảnh báo] tệp pid /var/run/apache2.pid bị ghi đè - Tắt máy trong quá trình chạy Apache trước đó? [Thứ bảy ngày 01 tháng 5 14:45:18 2010] [thông báo] Apache / 2.2.11 (Ubuntu) PHP / 5.3.2 được định cấu hình - tiếp tục các hoạt động bình thường [Thứ bảy ngày 01 tháng 5 14:45:18 2010] [cảnh báo] (11) Tài nguyên tạm thời không khả dụng: apr_thread_create: không thể tạo luồng công nhân [Thứ bảy ngày 01 tháng 5 14:45:18 2010] [alert] (11) Tài nguyên tạm thời không khả dụng: apr_thread_create: không thể tạo luồng công nhân
Robert Ross

sản lượng bước là gì? những dòng cuối cùng có liên quan ...
Marco Ramos
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.