ページ

ラベル Passenger の投稿を表示しています。 すべての投稿を表示
ラベル Passenger の投稿を表示しています。 すべての投稿を表示

2012年5月9日水曜日

Ubuntu + Passenger + Nginx インストール

Rubyはrvmで入れた1.9.3。
% gem install passenger
% rvmsudo passenger-install-nginx-module

そしたら
Curl development headers with SSL support... not found
って出た。

足りないのはこれだけだったので、指示に従ってインストール
% sudo aptitude install libcurl4-openssl-dev
そして改めて
% rvmsudo passenger-install-nginx-module

途中、選択肢が出るので選択する。人生は選択の連続。

インストール先も設定できるが 、何のこだわりもないのでデフォルトの /opt/nginx 。
設定ファイルの場所は /opt/nginx/conf/nginx.conf になる。

編集する。
pid /var/run/nginx.pid;

server {
listen 8080;
server_name hogehoge.jp;

# publicを指定するらしい
root /var/www/hogeapp/public;

passenger_enabled on;
}


Nginx-init-ubuntuの起動スクリプトを/etc/init.d/nginxにコピペ&ちょっと編集。
DAEMON=/opt/nginx/sbin/nginx
NGINX_CONF_FILE="/opt/nginx/conf/nginx.conf"
にする。

% sudo chmod a+x /etc/init.d/nginx
% sudo update-rc.d -f nginx defaults

参考:
Rails 3 on Ubuntu 10.10 with RVM, Passenger and Nginx « theKindOfMe
Ubuntu 10.04 TLS に nginx + passenger + sinatra を入れたメモ(1) - Moderation is a fatal thing. Nothing succeeds like excess.
Ubuntuに、passenger-install-nginx-moduleした « blog.udzura.jp

2011年9月2日金曜日

SinatraとSlimでInternal Server Errorが出てた

さくらのVPSでrvmとrubyをアップデートしたら各所に弊害が出てた。

Passengerがエラー吐いてたので /etc/apache2/conf.d/passenger を修正。
LoadModule passenger_module /home/zakuni/.rvm/gems/ruby-1.9.2-p290@global/gems/passenger-3.0.8/ext/apache2/mod_passenger.so
PassengerRoot /home/zakuni/.rvm/gems/ruby-1.9.2-p290@global/gems/passenger-3.0.8
PassengerRuby /home/zakuni/.rvm/wrappers/ruby-1.9.2-p290@global/ruby
rubyのバージョンに依存しない書き方にしたいところだけど、とりあえずこれで保留。

apacheをリロード
sudo /etc/init.d/apache2 reload

そして輝くInternal Server Error。

悩む。

どうやらSlimがおかしいと突き止める。

Slimの公式サイト(http://slim-lang.com/)と見比べる。

1行目
! doctype html
になってたのを
doctype html
に変えてやる。

エラー消えた。

いつの間にかSlimの仕様が変わってたらしい。

2011年7月24日日曜日

[Ubuntu][Apache2]PassengerでSinatraをサブディレクトリで動かす

Passengerで普通に動かすときと同じようにSinatraアプリを用意する。

app2/
├ config.ru
├ app.rb
├ public/
└ tmp/

http://ほげほげ.com/app2

で動かしたいとしたら
/etc/apache2/conf.d/passenger
を編集して(ファイル名はなんでもいい)
RackBaseURI /app2
を追加してやり、DocumentRootにapp2ディレクトリ下にあるpublicディレクトリのシンボリックリンクを作成する。

app2の置き場所が/home/user/app2であり、DocumentRootが/var/www/app/publicならば
sudo ln -s /home/user/app2/public /var/www/app/public/app2
/home/user/app2/public/へのシンボリックリンクを、/var/www/app/public/に、app2という名前で貼ってる。

そしてapache再起動
sudo /etc/init.d/apache2 restart

参考:
passengerでsinatraアプリをサブディレクトリで実行する - 橋本詳解
Passenger を使ってサブドメインではなく Rails と Sinatra を共存させる - oooooooo
passenger+sinatraで同一ドメイン内に複数のsinatraアプリを動かす方法 - Dive in Blue

[Ubuntu][Apache2]PassengerでSinatraを動かす

前にも書いたけど、整理的な意味も含めて。


Sinatraアプリの構成は以下の通り。
app/
├ config.ru
├ app.rb
├ public/
└ tmp/

publicもtmpも、中身は入ってなくてよい。

config.ruはこんな風に。
require 'rubygems'
require 'sinatra'
require './app.rb'

run Sinatra::Application

publicディレクトリをDocumentRootに指定してやる。

DocumentRootを指定するには
/etc/apache2/sites-available/default
の中身を編集する。

appディレクトリを/var/www/に置いている場合だったら
DocumentRoot /var/www/app/public
って書いてやればいい。

sudo /etc/init.d/apache2 reload
で、apacheをリロードすればもう動いてるはず。

アプリを再起動するには、tmpディレクトリにrestart.txtをアップロードすればいいそうな。

参考:
passengerでsinatraアプリをサブディレクトリで実行する - 橋本詳解
どうのこうの » さくらのVPSでsinatraを動かすまでのメモ

2011年2月27日日曜日

【Ubuntu】さくらのVPSでSinatraを動かす

Ubuntuにしてrvmが入ってなかったので入れる。

参考:さくらのVPSにRVM、Rubyをインストール


sinatraをインストール
% gem install sinatra

そして以下を参考に

さくらのVPSでsinatraを動かすまでのメモ


さくらのVPSでゼロからubuntuとrailsでなんか動かす 6 apache + passenger


% gem install passenger
% passenger-install-apache2-module

したら、何か色々インストールしろという指示が出たのでaptitude installしてもっかいやってみたけどインストールしろしろと言ってくる。

よくみたらNot Foundになってるものがあってインストールできてなかった。

aptitude updateしてから再度aptitude installしたらできた。

sudo emacs /etc/apache2/conf.d/passenger
して以下を追加
LoadModule passenger_module /home/ユーザ/.rvm/gems/ruby-1.8.7-p334/gems/passenger-3.0.3/ext/apache2/mod_passenger.so
PassengerRoot /home/ユーザ/.rvm/gems/ruby-1.8.7-p334/gems/passenger-3.0.3
PassengerRuby /home/ユーザ/.rvm/wrappers/ruby-1.8.7-p334/ruby

ファイル名はpassengerじゃなくてもいい。なんでもいいらしい。

Sinatraアプリケーションのフォルダ、例えばsinatrappって名前のフォルダの中に、config.ru、myapp.rb、publicフォルダ、tmpフォルダを作成する。

config.ruの中身は適当にこんな感じ
require 'myapp'

run Sinatra::Application

myapp.rb
require 'rubygems'
require 'sinatra'

get '/' do
'Hello, world.'
end


さっきの /etc/apache2/conf.d/passenger に
RackBaseURI /sinatrapp
って加える。

そしてDocument Rootにシンボリックリンクを貼る。
% sudo ln -s /home/ユーザ/sinatrapp/public /var/www/sinatrapp

apacheを再起動するともう動いてる。
% sudo /etc/init.d/apache2 restart

相変わらずshokaiさんのブログも激しく役に立った。
[Ubuntu][MAG][Passenger][Sinatra][Apache2]passengerでsinatraアプリをサブディレクトリで実行する