3

Rails アプリを開発しており、デプロイ先の Web サーバーを構成しようとしています。私の問題は、ページが読み込まれないことです。

Apacheerror.logにはエラーはなく、私のアプリにlog/production.logは行のみが表示されConnecting to database specified by database.ymlます。

アプリの public フォルダーに index.html がなく、アプリケーションは開発環境で正常に動作します。

Ubuntu 12.04 で Amazon インスタンスを使用しており、RVM を介して Ruby をインストールしました。私のhttpd.confには次のものがあります:

LoadModule passenger_module /home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.17/ext/apache2/mod_passenger.so
PassengerRoot /home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.17
PassengerRuby /home/ubuntu/.rvm/wrappers/ruby-1.9.3-p194/ruby

Apache はエラーなしで起動します。

以下は私のものsites-available/defaultです:

# other virtualhosts
#

<VirtualHost *:80>
    ServerName my_app.mydomain.com
    ServerAdmin mail@mail.com

    DocumentRoot /home/ubuntu/public_html/my_app/current/public

    <Directory /home/ubuntu/public_html/my_app/current/public>
        Allow from all
        Options -MultiViews
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
</VirtualHost>

乗客を働かせるために今何をすべきですか?

4

2 に答える 2

2

Ruby と他のすべてのものを再インストールし、nginx に移行することにしました。 最後に、すべての作業が完了しました (ngnix と apache の両方で)。誰かが気にするなら、これは私がやったことです:

ルビー + レール

ruby + rails を RVM 経由でインストール

curl -L https://get.rvm.io | bash -s stable --rails

開いているすべてのシェルに rvm をロードする

source ~/.rvm/scripts/rvm

宝石をインストールする

gem install passenger

アパッチ

Apache とパッセンジャー モジュールをインストールする

rvmsudo passenger-install-apache2-module

これらの行をにコピーします/etc/apache2/httpd.conf

LoadModule passenger_module /home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.17/ext/apache2/mod_passenger.so
PassengerRoot /home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.17
PassengerRuby /home/ubuntu/.rvm/wrappers/ruby-1.9.3-p194/ruby

nginx

nginxとパッセンジャーモジュールをインストール

rvmsudo passenger-install-nginx-module

これらの行をにコピーします/opt/nginx/conf/nginx.conf

passenger_root /home/ubuntu/.rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.17;
passenger_ruby /home/ubuntu/.rvm/wrappers/ruby-1.9.3-p194/ruby;

Nginx を制御できるようにスクリプトをセットアップする

wget -O init-deb.sh http://library.linode.com/assets/660-init-deb.sh
sudo mv init-deb.sh /etc/init.d/nginx
sudo chmod +x /etc/init.d/nginx
sudo /usr/sbin/update-rc.d -f nginx defaults

このスクリプトで Nginx を制御できるようになりました

sudo /etc/init.d/nginx stop
sudo /etc/init.d/nginx start

nodejs を使用した最終セットアップ

他に必要なものの 1 つは Node.js です。これは、デプロイメントでアセットをコンパイルするのに役立ちます

sudo apt-add-repository ppa:chris-lea/node.js
sudo apt-get -y update
sudo apt-get -y install nodejs
于 2012-09-09T14:00:15.120 に答える
0

私はこれと同じ問題を抱えていましたが、答えは unicorn.log ファイルにありました。コントローラーの構文エラーでした。旅客ログファイルを調べる必要があります

于 2013-03-19T16:33:20.523 に答える