SyntaxHighlighter

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

2013年5月14日火曜日

PassengerでRailsアプリケーションをデプロイ

Passengerを用いてRailsアプリケーションをサーバへデプロイする際に行ったことをメモ。
サーバのOSはCentOS 6.4、DBはMySQL 5.6.10で、Passengerがインストールされていることを前提に。Passengerのインストールについては下記ページが参考になる。

Apache上でRuby on Railsアプリケーションを動かす/Passenger(mod_rails for Apache)の利用

アプリケーションのアップロード

Apacheのドキュメントルート(/var/www/html/など)にフォルダごとFTPでアップロードする。httpd.confの設定を変えれば、他の場所にしても構わない。

所有者を変更

Passengerはroot権限でrailsアプリケーションを動作させることができないので、chownコマンドでフォルダの所有者を変更する。
% chown -R username:group /var/www/html/RAILS_ROOT

database.ymlの設定

開発機とサーバ機でMySQLのソケットやユーザ名が異なる場合は、development(開発用)、test(テスト用)、production(本番用)それぞれについてdatabase.ymlを修正する必要がある。

RAILS_ROOT/config/database.yml
production:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: railsapp_production
  pool: 5
  username: username
  password: pass
  socket: /tmp/mysql.sock
修正する必用があるのは多くの場合、username/password/socket欄だろうか。
mysql.sockの場所が分からないのであれば下記コマンドを実行する。パスワードを求められるので、指定したユーザに対応するパスワードを入力する。
% mysqladmin -u username -p version
出力結果(下記11行目)にソケットの場所が表示されている。
mysqladmin  Ver 8.42 Distrib 5.6.10, for osx10.8 on x86_64
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version          5.6.10
Protocol version     10
Connection          Localhost via UNIX socket
UNIX socket          /tmp/mysql.sock
Uptime:               29 days 23 hours 20 min 24 sec

Threads: 3  Questions: 37312  Slow queries: 0  Opens: 100  Flush tables: 1  Open tables: 67  Queries per second avg: 0.014

mysql2アダプタをインストール

まずはMySQLの開発ライブラリをインストール。
% sudo yum install mysql-devel
Gemfileに以下を記述。

RAILS_ROOT/Gemfile
gem 'mysql2'
その後でbundle installを実行。

本番用データベースを作成

Passenger上で動くrailsアプリケーションは標準でproductionモードでの動作となるので、それに対応するデータベースをサーバ上で作成する必要がある。
% rake db:create RAILS_ENV=production
% rake db:migrate RAILS_ENV=production
これで完了。

2013年4月2日火曜日

DBpedia日本語版:SPARQLをRubyから実行

前回のSPARQLをRubyから実行する。Rubyのバージョンは1.9.3。

まずはgemをインストール。
% gem install linkeddata
% gem install sparql

SPARQLをRubyで実行するコード。
#-*- coding: utf-8 -*-
require "sparql/client"
 
client = SPARQL::Client.new("http://ja.dbpedia.org/sparql")
results = client.query("
  SELECT ?resource ?title
  WHERE {
    <http://ja.dbpedia.org/resource/織田裕二> dbpedia-owl:wikiPageWikiLink ?resource .
    ?resource rdf:type dbpedia-owl:Film .
    ?resource rdfs:label ?title .
  }
")
results.each do |solution|
  puts "#{solution[:resource]} | #{solution[:title]}"
end
結果は以下のとおり。
http://ja.dbpedia.org/resource/踊る大捜査線_THE_MOVIE | 踊る大捜査線 THE MOVIE
http://ja.dbpedia.org/resource/踊る大捜査線_THE_MOVIE_2_レインボーブリッジを封鎖せよ! | 踊る大捜査線 THE MOVIE 2 レインボーブリッジを封鎖せよ!
http://ja.dbpedia.org/resource/ホワイトアウト_(小説) | ホワイトアウト (小説)
http://ja.dbpedia.org/resource/湘南爆走族 | 湘南爆走族
http://ja.dbpedia.org/resource/県庁の星 | 県庁の星
http://ja.dbpedia.org/resource/彼女が水着にきがえたら | 彼女が水着にきがえたら
http://ja.dbpedia.org/resource/椿三十郎_(2007年の映画) | 椿三十郎 (2007年の映画)
http://ja.dbpedia.org/resource/BEST_GUY | BEST GUY
http://ja.dbpedia.org/resource/将軍家光の乱心_激突 | 将軍家光の乱心 激突
http://ja.dbpedia.org/resource/T.R.Y. | T.R.Y.
http://ja.dbpedia.org/resource/就職戦線異状なし | 就職戦線異状なし
http://ja.dbpedia.org/resource/波の数だけ抱きしめて | 波の数だけ抱きしめて
http://ja.dbpedia.org/resource/卒業旅行_ニホンから来ました | 卒業旅行 ニホンから来ました
http://ja.dbpedia.org/resource/アマルフィ_女神の報酬 | アマルフィ 女神の報酬
http://ja.dbpedia.org/resource/踊る大捜査線_THE_MOVIE3_ヤツらを解放せよ! | 踊る大捜査線 THE MOVIE3 ヤツらを解放せよ!
http://ja.dbpedia.org/resource/きけ、わだつみの声_Last_Friends | きけ、わだつみの声 Last Friends
http://ja.dbpedia.org/resource/エンジェル_僕の歌は君の歌 | エンジェル 僕の歌は君の歌
http://ja.dbpedia.org/resource/アンダルシア_女神の報復 | アンダルシア 女神の報復
http://ja.dbpedia.org/resource/踊る大捜査線_THE_FINAL_新たなる希望 | 踊る大捜査線 THE FINAL 新たなる希望

コードは以下を参考に、というかほぼそのまま。
RDF.rb - LinkedData.jp Wiki