2010-11-19 20 views
1

私はRuby on Webでのプログラミングを開始しようとしています。 私はUbuntu 10.04を使用しています。私のIDEはNetBeansです。 ruby​​、railsを実行するのに必要なすべてのパッケージをインストールしました。私はPHP用にApacheを使用するのが好きなので、Phusion PassengerをインストールするApacheを使用することに決めました。私もポート3000の仮想ホストを設定しました(ports.confも変更しました)。
私はすべて構いませんが、NetBeans(私はvar/wwwに保存されたPHPファイル用の同じフォルダ)に新しいプロジェクトを作成し、firefoxでプロジェクトを開きます。 パブリックフォルダにtest.rbという名前の新しいファイルを作成します。 私はこのtest.rbを実行しますが、Firefoxはファイルをダウンロードして実行してください。Ruby on Rails on Ubuntu + apache2 + Passenger

私はルビーと思う、レールは完全に構成されています。私のapache2の設定には問題はないと思います。 だから、私はどのように私のルビープロジェクトを実行できますか?私は.erb、.rhtmlを実行することができますが、代わりにコードを実行すると、彼は私にコードを表示します; s

ありがとう。

+0

mod_rubyを試しましたか? – auralbee

+0

はい、libapache2-mod-rubyをインストールしました – StiveKnx

答えて

4

あなたがRailsアプリケーションのパブリックフォルダにいる場合、Rubyスクリプトを実行することはできません(アプリケーションのどこかから明示的に参照する必要はありません。おそらくセキュリティホール)、実際のファイルを叩くとPHPが結果をレンダリングするようなものではありません。

リクエストがRailsアプリケーションにヒットすると、ルータ経由でリダイレクトされます(config/routes.rb参照)。Railsアプリケーションでルビコードを実行するには、最初にコントローラにルーティングする必要があります。あなたは、コマンドに

rails generate scaffold/resource test 

を実行することによってこれを行うことが

(オプションscaffoldまたはresourceの一つだけが必要とされている)

これは定型的なコードのすべてを作成する(そして、あなたにルートを追加しますルートファイル)を作成します。

スタティックアセット(html、イメージなど)のみがパブリックフォルダから配信されます。このため、CSSとJSはすべて公共側に保管されています。

サーバーリクエストに応答するPury Rubyアプリケーションを作成する場合は、Railsアプリケーションではなく独自のアプリケーション構造で記述する必要があります。

0

scaneyが正しいです、私は追加ポイントを追加します。

/var/wwwは、apacheがコンテンツではなくコンテンツを提供するために使用するディレクトリです。このディレクトリを使用して、Webサーバーから非レールコンテンツを配信し、レールフレームワークを使用してレールコンテンツを配信することができます。あなたのレールプロジェクトを設定するには、rails generateコマンド(rails3用)をscaneyショーとして実行するか、そこにある多くのチュートリアルの1つに従います。

0

私はUbuntu for Rails開発も使用しています。実際に開発用サーバーを開発用に使用するのが最善です。私はホスト上の実稼働環境にPassengerを使用します。

Apacheを使用して、Railsプログラムを回避することができれば、「懸念の分離」の目的を本当に打ち負かすことができます。

また、レールサーバーのデバッグには、開発サーバーからの詳細な出力が必要になります。

0

Rubyは、PHPスクリプトを実行するのと同じ方法で実行されません。 RubyとRailsでは、コードを実行するアプリケーションサーバーを実行する必要があります。 Railsの場合、これはプロジェクトルートディレクトリにあるrails server(Rails 3の場合は、Rails 2の場合は./script/server)を実行するのと同じくらい簡単です。これにより、ポート3000で動作するサーバーが起動しますので、http://localhost:3000/にアクセスしてアプリを表示してください。