2010-11-20 38 views
5

Tôi đang cố gắng để có được một ứng dụng Rails xương được triển khai dưới Apache, Passenger 3.0.0 và Rails 3.0.3. Tôi nhận được tất cả các loại lỗi kỳ lạ. chủ yếu xoay quanh những gì tôi nghĩ có liên quan đến bundler hoặc RAILS_ENV.Người dùng nào đang chạy ứng dụng Rails của tôi?

Chỉ điều không mặc định về ứng dụng là phát triển & môi trường thử nghiệm sử dụng SQLite3 và sản xuất sử dụng MySQL.

Khi nhấn ứng dụng từ trình duyệt web Hành khách đang ném lỗi liên quan đến đá quý (sqlite3) cụ thể (trong Gemfile AND trong database.yml) được khai báo là KHÔNG phải là một phần của môi trường sản xuất.

Tôi làm cách nào để biết người dùng đang cố gắng chạy ứng dụng Rails của mình như thế nào? Tôi muốn đảm bảo rằng RAILS_ENV được đặt chính xác cho người dùng đó vì tôi nghĩ Hành khách đang cố gắng chạy ứng dụng này trong chế độ phát triển vì một lý do nào đó.

Edit: thêm kết quả của ps aux | grep httpd

myserver:current elvis$ ps aux | grep httpd 
elvis  4424 0.4 0.0 66152 192 s000 S+ 11:03AM 0:00.00 grep httpd 
_www  1950 0.0 0.2 93024 2544 ?? S 11:40PM 0:01.23 /usr/sbin/httpd -D FOREGROUND 
root  1918 0.0 1.0 93024 10244 ?? Ss 11:39PM 0:02.75 /usr/sbin/httpd -D FOREGROUND 
_www  4084 0.0 0.2 93024 2536 ?? S  9:41AM 0:00.15 /usr/sbin/httpd -D FOREGROUND 

ls -l ...

myserver:current elvis$ ls -l config 
total 48 
-rw-rw-r-- 1 aaron admin 1923 Nov 19 21:40 application.rb 
-rw-rw-r-- 1 aaron admin 326 Nov 19 21:40 boot.rb 
-rw-rw-r-- 1 aaron admin 741 Nov 19 21:40 database.yml 
-rw-rw-r-- 1 aaron admin 1257 Nov 19 21:40 deploy.rb 
-rw-rw-r-- 1 aaron admin 149 Nov 19 21:40 environment.rb 
drwxrwxr-x 5 aaron admin 170 Nov 19 21:40 environments 
drwxrwxr-x 7 aaron admin 238 Nov 19 21:40 initializers 
drwxrwxr-x 3 aaron admin 102 Nov 19 21:40 locales 
-rw-rw-r-- 1 aaron admin 1808 Nov 19 21:40 routes.rb 
+0

Bạn có thể cho chúng tôi biết một số lỗi không? –

Trả lời

9

Theo mặc định, hành khách sẽ chạy ứng dụng của bạn như là người dùng những người sở hữu tập tin config/environment.rb hoặc config.ru, xem http://www.modrails.com/documentation/Users%20guide%20Apache.html#user_switching

hành khách sẽ chạy trong môi trường production theo mặc định trừ khi bạn nói nó khác với RailsEnv, xem http://www.modrails.com/documentation/Users%20guide%20Apache.html#rails_env

+0

OK. chỉ cần đọc liên kết user_switching. cố gắng để có được điều này để làm việc ... bất kỳ ý tưởng những gì chủ sở hữu/sự cho phép "nên" được trên 'config/environment.rb'? giống như trên chính thư mục trang web? tôi có một trang web được phục vụ bởi apache và một liên kết tượng trưng từ w/trong cảnh 'tĩnh' chính được gọi là 'đường ray' trỏ tới thư mục ứng dụng Rails của tôi nơi ứng dụng đang ở đó. – Meltemi

+1

Tôi nghĩ rằng người dùng đang chạy ứng dụng có thể là một cá trích đỏ trong trường hợp của bạn. Có nhiều khả năng là vấn đề về cấu hình đường ray. Bạn có thể chạy './script/console production' từ thư mục ứng dụng trên máy chủ không? Nếu điều đó ném cùng một lỗi thì sẽ dễ dàng hơn để gỡ lỗi. – malclocke

+0

Chủ sở hữu của config.ru/environment.rb của bạn phải là bất kỳ người dùng nào bạn đã chạy 'bundle install'. cài đặt 'bó cài đặt' thành $ HOME/.bundle hoặc để ./help tùy thuộc vào cài đặt Bundler của bạn; trong trường hợp cũ, $ HOME tùy thuộc vào người dùng đã gọi 'cài đặt nhóm'. Vì vậy, nếu bạn chạy 'bundle install' thành 'foobar' thì bạn cũng phải đảm bảo rằng ứng dụng Rails của bạn đang chạy như 'foobar', nếu không nó không thể truy cập vào các gem mà Bundler đã cài đặt do các vấn đề về quyền. – Hongli

3

Bạn có thể chạy ps aux | grep httpd để xem những gì người dùng đang chạy quá trình apache của bạn.

+0

đã thêm kết quả của 'ps aux | grep httpd' ở trên. trong số các câu hỏi trước .. khi nào thì có hai người dùng khác nhau đang chạy các quy trình httpd?!? – Meltemi

+0

Tôi không chắc chắn. Đây là trên hộp sản xuất của bạn, phải không? – jergason

+0

yup. sản xuất. đã có một ứng dụng Rails 2.3.5 chạy trên nó trước đây. Đang cố gắng để có được 3.0.3 chạy và tất cả các địa ngục là phá vỡ lỏng lẻo. – Meltemi

0
RAILS_USER=$(stat -c '%U' /YOUR_PATH/environment.rb) 

echo "Detected rails user: $RAILS_USER" 
Các vấn đề liên quan