Rails、Apache、Passenger の開発環境のセットアップに数日を費やした結果、私の頭は混乱から爆発しそうです。
私が持っている質問は次のとおりです。
- 開発環境にパッセンジャーが必要ですか? 代わりに pow.cx で開発できますか? -答えは 99.99% ないと確信しています (開発にパッセンジャーを使用していません)。
- 展開するときは、Passenger のみを使用しますよね?つまり、展開するまで乗客には触れません。
- 私の開発環境は正しいですか?
- プロダクションデプロイメントは、Passenger と Apache VHOST を組み合わせた影響下で Rails アプリケーションを移動するだけですか?
背景(読むことをお勧めします):
Web 上のすべての情報は、物事がどのように機能するかを詳細に説明するのではなく、自分が何をしているかを既に知っている人々に説明することに関心があるようです。開発環境をセットアップし、RoR アプリケーションを正しく展開する方法など、この長い質問はご容赦ください。
過去 3 日間、私は自分の Macbook Pro に開発環境をセットアップしようとしてきましたが、これは Apache のインストールに関する Apple のばかげた制限によって破壊されません。Apache を実行し、PHP などを 5.5 に簡単にアップグレードできるように、カスタム Apache インストールを (Ruby スタックを使用して bitnami から。Server.app の使用を拒否したため) インストールしました。
私は RoR に参加しようとしていますが、これまでのところ苦労しており、あきらめる準備ができています。
サーバーが要求を一度に 1 つずつではなく同時に処理できるように、Rails アプリケーションにサービスを提供するには Apache が必要であり、Thin などのさまざまなインターフェイスが存在することを理解しています。乗客を強くお勧めします。
彼らの指示に従って Passenger をインストールし、Mac OS X のデフォルトの Apache ではなく、Bitnami パッセンジャー インストール用にコンパイルするためにいくつかのハッカーを実行しました。Apache を起動して実行するとpassenger-memory-stats
、インストール ガイドから予想される結果が得られるため、パッセンジャーが実行されていることがわかります。
しかし、単純な Hello World Rails アプリケーションをデプロイしようとすると、大量の「申し訳ありません...」というメッセージが表示されるか、結果がまったく表示されず、空白のページが表示されます。
私の開発環境は正しいと確信しています。この最後のビットを除いて、すべてが機能します。開発が pow.cx サーバーで行われていることを想像できます。デプロイの準備ができたら、Rails アプリケーションをコピーし、Apache の VHOST を構成して、デプロイ可能なアプリを指すようにし、Passenger が残りを処理しますが、それは正しいですか?
Postgress.app 経由で PostgresSQL を使用しています。サーバーは正常に動作し、接続できます。
私はgem 'pg'
自分のGemfileに持っています。
私はすでに読んで、次のSOの質問から考えられるすべての解決策を試しましたが、結果が得られないか、ログが空であり、控えめに言っても腹立たしいです:
- 申し訳ございません。不具合が発生しました。- Rails、Apache、Passenger を使用
- Ruby on Rails:postgresqlのdatabase.ymlを編集するにはどうすればよいですか?
- Rails で database.yml ファイルを設定するにはどうすればよいですか?
- https://www.ruby-forum.com/topic/187128
以上のことから、以下を使用して、この Hello World アプリケーション (標準的な Rails サーバーで動作する) をデプロイしようとしています。
アプリケーションの呼び出し:
http://dmarket.local:8081/
仮想ホスト:
<VirtualHost *:8081>
PassengerEnabled on
RailsEnv production
ErrorLog /Applications/rubystack/apache2/htdocs/helloworld/project_error.log
CustomLog /Applications/rubystack/apache2/htdocs/helloworld/project_error.log combined
ServerName dmarket.local:8081
ServerAlias www.dmarket.local:8081
DocumentRoot "/Applications/rubystack/apache2/htdocs/helloworld/public"
PassengerPreStart http://dmarket.local:8081
<Directory "/Applications/rubystack/apache2/htdocs/helloworld/public">
Allow from all
Options -MultiViews
</Directory>
</VirtualHost>
ホストファイル:
127.0.0.1 dmarket.local
127.0.0.1 www.dmarket.local
DATABASE.YML (開発、テスト、本番で同じ):
adapter: postgresql
encoding: unicode
host: 127.0.0.1
port: 5432
database: tsujp
pool: 5
username: tsujp
password: