2012-02-24 24 views
24

Tôi đã thực hiện thiết lập Phusion Passenger trên Ubuntu 10.04, với Apache2. Bất cứ khi nào tôi khởi động lại máy chủ Apache, tôi nhận được thông báo lỗi sau và ứng dụng Rails không chạy.Không thể khởi động bộ theo dõi hành khách Phusion?

[error] *** Passenger could not be initialized because of this error: Unable to start the Phusion Passenger watchdog because its executable (/usr/lib/phusion-passenger/agents/PassengerWatchdog) does not exist. This probably means that your Phusion Passenger installation is broken or incomplete, or that your 'PassengerRoot' directive is set to the wrong value. Please reinstall Phusion Passenger or fix your 'PassengerRoot' directive, whichever is applicable. 
+2

Tôi vừa gặp sự cố tương tự với apache 2.4, hành khách 4.0.58. Sau khi một số đào sâu vào, nó bật ra rằng trường hợp vi EC2 của tôi chỉ không có đủ bộ nhớ để biên dịch module hành khách apache - nó đã thất bại với một lỗi bộ nhớ. Nâng cấp lên kích thước cá thể tiếp theo đã khắc phục được sự cố. –

+0

Chỉ để mở rộng vấn đề của Shyam. Việc biên soạn hành khách của tôi thất bại một lần, thành công trong lần chạy tiếp theo, nhưng việc cài đặt hành khách bị bỏ lại trong trạng thái xấu (_các lần chạy thành công tiếp theo không quay trở lại và sửa lại trình biên dịch ban đầu xấu). Tôi lấy một tuyến đường khác ... tạo ra một thể hiện vi mô mới, thêm một số hoán đổi và nhìn thấy hành vi biên dịch và bắn thành công. –

Trả lời

60

Tôi đã gặp phải sự cố tương tự khi biên dịch từ nguồn, nhưng nó đã bị gián đoạn, điều này thực sự bực bội (tôi nghĩ rằng nó phải có môi trường w/Rails). Chúng tôi không thể sử dụng tập lệnh mô-đun hành khách-cài đặt-apache2-mô-đun/hành khách-cài đặt-nginx-mô-đun, bởi vì chúng tôi cần cài đặt nginx tùy chỉnh.

Cuối cùng, tôi đã khắc phục sự cố bằng cách chuyển đến bất kỳ nội dung nào passenger-config --root, sau đó chạy: rake nginx.

Cập nhật tháng 2 năm 2016 (bởi tác giả hành khách):

Phương pháp hỗ trợ chính thức để biên dịch PassengerAgent (không còn biên soạn Nginx, là hành khách-cài đặt-nginx-mô-đun không) là bằng lệnh này:

passenger-config compile-agent 

Hành khách 5.0.26 trở lên sẽ tự động phát hiện lỗi được mô tả trong câu hỏi StackOverflow này và sẽ tự động đề xuất chạy lệnh trên.

+7

Tôi đang sử dụng RVM và đã sử dụng 'rvmsudo rake nginx', và nó hoạt động. –

+0

Bạn có thể phải chuyển sang tài khoản người dùng "gốc" của mình hoặc bất kỳ tài khoản nào bạn đã sử dụng khi thiết lập mô-đun-cài-đặt-hành-khách-nginx. – s2t2

+1

"hành khách-config -root" trỏ đến phiên bản của viên ngọc hành khách mà Gemfile.lock của dự án hiện tại đã chỉ định. Điều đó có thể giải thích tại sao nó không liên tục cho bạn vì các dự án Rails khác nhau có thể sử dụng các phiên bản Hành khách khác nhau. – Sv1

6

Cố gắng cài đặt mô-đun hành khách bằng cách chạy tập lệnh hành khách-cài đặt-apache2-mô-đun. Tôi có cùng một vấn đề nhưng trên nginx; Tôi cài đặt hành khách qua đá quý và sau đó biên dịch lại nginx bằng tay với mô-đun hành khách - điều này gây ra lỗi được mô tả bởi bạn. Sau khi chạy hành khách-cài đặt-nginx-mô-đun lỗi như vậy biến mất.

+1

hành khách-cài đặt-nginx-mô-đun làm việc cho tôi! – AnkitG

9

Tôi vừa mới tự mình nhấn lỗi này và cố gắng tìm một câu trả lời hay, vì vậy đây là bài viết của tôi. Trong thiết lập của tôi, tôi sẽ cho Ubuntu, Apache2, Hành khách và Đường ray mới nhất 2.3.

  1. Cài đặt Ruby và Rubygems NB: làm (rất) chắc chắn gem -v của bạn là đúng, nếu nó sai, bạn sẽ làm tất cả điều này hai lần
  2. sudo gem install passenger
  3. cd /usr/lib
  4. wget http://rubyforge.org/frs/download.php/76005/passenger-3.0.12.tar.gz
  5. tar zxvf passenger-3.0.12.tar.gz
  6. cd passenger-3.0.12
  7. ./bin/passenger-install-apache2-module
  8. Thêm export PATH=/var/lib/gems/1.8/bin:$PATH vào ~/.bashrc
  9. ln -s /usr/lib/passenger-3.0.12 /usr/share/phusion-passenger # => điều này khắc phục một thế giới bị tổn thương phải làm với PassengerWatchdog. NB: PassengerWatchdog không đi xuống với apt-get đó là lý do tại sao chúng tôi nắm lấy các tập tin nhị phân.
  10. ln -s /usr/lib/passenger-3.0.12 /usr/lib/phusion-passenger # => vấn đề tương tự.

Đây là từ bộ nhớ sau đây đập nó qua một ngày rưỡi, tôi sẽ dọn dẹp khi tôi phải trải qua lại lần nữa.

0

Đã một thời gian kể từ khi tôi khởi động lại nginx và trong khi đó con đường dẫn đến hành khách đã thay đổi.Tôi nhìn vào nginx.conf để xem những gì các passenger_root được thành lập đến và nhận ra rằng nó là giá trị cũ:

http { 
    passenger_root /home/nginx/rails_app/myapp/shared/bundle/ruby/1.9.1/gems/passenger-enterprise-server-3.0.17; 

Thường hai vị trí để thay đổi:

server { 
    listen 8888; 
    root /home/nginx/rails_app/myapp/current/public; 

tôi khởi động lại nginx và lỗi đã ra đi.

-2

Tôi gặp sự cố tương tự trên Nginx-Server của mình.
Trong trường hợp của tôi, thư mục passenger_root không chính xác, vì cập nhật đá quý.

[1] Trên Linux, tôi đã tìm kiếm danh mục hành khách với Bộ Tư lệnh sau:

find/-name PassengerWatchdog 

[2] Bây giờ tôi đã thay đổi giá trị 'passenger_root' của tôi để thư mục này.
[3] Và khởi động lại Máy chủ.

suvankar, Có thể bạn cũng nên thay đổi Đường dẫn hành khách.

Các vấn đề liên quan