ページ

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

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アプリをサブディレクトリで実行する

2011年2月20日日曜日

【Ubuntu】さくらのVPSにapacheをインストールして動かす

参考:『さくらのVPS』でWordPressを動かすまで – Apache2のインストール①

$ sudo aptitude install apache2
でインストール。

/etc/apache2/conf.d/security を以下のように修正
-ServerTokens Full
+ServerTokens Prod

-ServerSignature On
+ServerSignature Off

-TraceEnable On
+TraceEnable Off

設定を反映して再起動
$ sudo /etc/init.d/apache2 reload
$ sudo /etc/init.d/apache2 restart


これで動いてるはずと思ってアクセスしてみたら動いてない。
ファイアウォールの設定の問題だった。

$ sudo ufw allow 80

して、もっかいアクセスしてみたらIt works!