webの最近のブログ記事
前回インストールしたさくらインターネットのレンタルサーバのRailsで、サンプルアプリのTODOアプリを作ります。
参考:
さくらのレンタルサーバでRuby on Railsをうごかしてみた...らかなり遅いかも...
Ruby on Rails入門2 サンプルアプリを作る
参考サイトはデータベースにmysqlを使っているんだけど、このとおりにやると、Routing Errorが出るみたいです。ほかの人も結構はまってるぽい。
というわけなので、sqliteを使ってしまいます。そしたら簡単。scaffoldで一発だよ。
[Todoプロジェクトの作成]
Railsディレクトリに移動して、railsコマンドでプロジェクトを作成します。
%cd ~/Rails
%rails Todo
create
create app/controllers
...
create log/development.log
create log/test.log
そうすると、Todoディレクトリが作成されプロジェクトができます。
ディレクトリに移動する。
%cd Todo
[rakeコマンドでデータベースの構築]
config/database.ymlを設定して、rakeコマンドを使うと、DBを自動で構築してくれます。
今回は、sqliteを使うので、database.ymlはそのままでOK。
ちなみにdatabase.yamlはこんな感じ。デフォルトのままでいきます。
%less Rails/Todo/config/database.yml
# SQLite version 3.x
# gem install sqlite3-ruby (not necessary on OS X Leopard)
development:
adapter: sqlite3
database: db/development.sqlite3
pool: 5
timeout: 5000# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
adapter: sqlite3
database: db/test.sqlite3
pool: 5
timeout: 5000production:
adapter: sqlite3
database: db/production.sqlite3
pool: 5
timeout: 5000
rakeコマンドを以下のように打つだけ。
%rake db:create:all
(in /home/XXX/Rails/Todo)
これでTodo用のsqliteのDBがdbディレクトリ内にできます。
[scaffoldでTODOアプリを構築]
scaffoldというのがCRUD(Create - 生成、Read - 表示、Update - 更新、Destroy - 削除)を自動生成してくれます。今回はTodoというモデルを自動で構築してくれました。ここでマイグレーションファイル(db/migrate /001_create_todos.rb)も生成されるので、こいつをDBにmigrateすると、テーブルとレコードができあがります。という説明はこのブログで2回目です。
%ruby script/generate scaffold Todo title:string body:text done:boolean due:datetime
exists app/models/
exists app/controllers/
exists app/helpers/
create app/views/todos
exists app/views/layouts/
exists test/functional/
exists test/unit/
exists public/stylesheets/
create app/views/todos/index.html.erb
create app/views/todos/show.html.erb
create app/views/todos/new.html.erb
create app/views/todos/edit.html.erb
create app/views/layouts/todos.html.erb
create public/stylesheets/scaffold.css
create app/controllers/todos_controller.rb
create test/functional/todos_controller_test.rb
create app/helpers/todos_helper.rb
route map.resources :todos
dependency model
exists app/models/
exists test/unit/
exists test/fixtures/
create app/models/todo.rb
create test/unit/todo_test.rb
create test/fixtures/todos.yml
create db/migrate
create db/migrate/20090207005150_create_todos.rb
次にマイグレートする。
%rake db:migrate
(in /home/XXX/Rails/Todo)
== CreateTodos: migrating ====================================================
-- create_table(:todos)
-> 0.0074s
== CreateTodos: migrated (0.0077s) ===========================================
[環境ファイルの設定]
前回同様、environment.rbに以下のパスを追加します。XXXはユーザアカウントね。
RAILS_RELATIVE_URL_ROOTは/todoにしとく。これなくても動くかも。
%vi config/environment.rb
# Be sure to restart your server when you modify this file
$LOAD_PATH.push("/home/XXX/lib/")
$LOAD_PATH.push("/home/XXX/lib/ruby")
ENV['GEM_HOME'] ||= '/home/XXX/lib/ruby/gem'
ENV['RAILS_RELATIVE_URL_ROOT']="/todo"
次に.htaccessも前回同様に。前回のとおりやってる人は、コピーでいい。
%cp ~/Rails/test/public/.htaccess ~/Rails/Todo/public/
一応載せとくと、中身はこんな感じ。
%vi public/.htaccess
# General Apache options
#AddHandler fastcgi-script .fcgi
#AddHandler cgi-script .cgi
#Options +FollowSymLinks +ExecCGI
#AddHandler cgi-script-debug .cgi# If you don't want Rails to look in certain directories,
…
# RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
RewriteEngine On# If your Rails application is accessed via an Alias directive,
...
# RewriteBase /myrailsappRewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.cgi [QSA,L]# In case Rails experiences terminal errors
...
# ErrorDocument 500 /500.htmlErrorDocument 500 "
Application error
Rails application failed to start p
roperly"
[Webに公開]
最後に、webからみられる場所からTodo/publicに向けてシンボリックリンクを
張ります。
~/wwwの直下に「todo」という名前でシンボリックリンクを作ります。
%ln -s $HOME/Rails/Todo/public/ $HOME/www/todo
完了!
以下にアクセスすると、Todoアプリが動いているはずです。
http://XXX.sakura.ne.jp/todo/todos
こんな感じです。レコードの生成、表示、更新、削除ができるよ。
RoR超簡単にアプリできすぎです。
やっぱりさくらだとちょっと遅いけど、勉強用には十分ですな。
Ruby on Railsをさくらインターネットにインストールして実行するまで。
せっかくなので最新版を入れるよ。すごい勢いでつまづきまくったよ。
Ruby on Railsのインストール
参考:
さくらのレンタルサーバーに Ruby on Rails をインストールする手順
さくらのレンタルサーバーにRuby on Rails 2.0.2をインストールする方法
参考サイトどおりにやれば問題ないよ。
%ruby -version ruby 1.8.6 (2008-08-11 patchlevel 287) [i386-freebsd6]現在のさくらのrubyのバージョンは1.8.6です。
[rubygemsのインストール]
rubygemsの最新版、1.3.1を取得し、インストールします。
インストール先はさくらなので$HOME内です。--prefix=$HOMEを忘れずに。
%mkdir $HOME/srcインストール完了
%cd $HOME/src
%ftp http://rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz
%tar zxf rubygems-1.3.1.tgz
%cd rubygems-1.3.1
%ruby setup.rb --prefix=$HOME
[環境変数の設定]
次に環境変数の設定。
%cd.cshrcのset pathに $HOME/lib/ruby/gem/bin と、RUBYLIBとGEM_HOMEを追加します。
%vi .cshrc
set path = (~/pear/bin /sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin /usr/
X11R6/bin $HOME/bin $HOME/lib/ruby/gem/bin)
setenv RUBYLIB $HOME/lib
setenv GEM_HOME $HOME/lib/ruby/gem
%source $HOME/.cshrcsourceで記載したパスを今すぐ通す。通したパス内の実行可能ファイルをすぐ反映させるためrehash。
%rehash
%gem18 --version
1.3.1
Railsのインストール
%gem18 install railsこれで5分くらい待つとインストール完了。すごい簡単。
%rehashrehashしてバージョンを調べたら、ちゃんと2.2.2が入っていた。完璧。
%rails --version
Rails 2.2.2
Railsを動かす
参考:
さくらのレンタルサーバにRuby on Railsをインストールする方法 その2
ここからが地獄の始まりでしたよ。超参考になるかもしれない。
基本、上記参考サイトの通りに進めます。
Railsのアプリケーションのディレクトリを作成。
そして、testというアプリケーションを作成。
%cd
%mkdir Rails
%cd Rails
%rails test
次にパーミッションを変更します。
logとtmpディレクトリに書き込み権限を付加。
%cd test
% chmod -R o+w log tmp
% ls -l
次に環境ファイルの設定です。
test/config/environment.rbが環境ファイル。
この設定、RUBYLIBの場所が変わってるから、
$LOAD_PATH.push("/home/XXX/lib/")としないといけません。注意。
これちゃんとしないと「Rails application failed to start properly」の
エラーが出ます。
%vi config/environment.rb
# Be sure to restart your server when you modify this file
# 以下を追加(XXXはユーザ名に置き換えてね)
$LOAD_PATH.push("/home/XXX/lib/")
$LOAD_PATH.push("/home/XXX/lib/ruby")
ENV['GEM_HOME'] ||= '/home/XXX/lib/ruby/gem'
ENV['RAILS_RELATIVE_URL_ROOT']="/test"
それから、ENV['RAILS_RELATIVE_URL_ROOT']="/test"は、
routing error が出る場合の対策。
これがないと「routing error No route matches "/test/rails/info/properties"」とか出る。調べてみると
http://groups.google.co.jp/group/rubyonrails-core/browse_thread/thread/da88f067f38e76ca?pli=1どうも、Rails2.2になって、挙動が変わったために手動で設定が必要らしい。
The change in relative_url_root behavior was necessary for thread-safety. Passenger needs to be updated.
In the mean time, you can do it yourself by manually setting relative_url_root in your environment.rb.
ここ、かなり悩んだ。気をつけて!><
次に、public/.htaccessの設定。
しかし、.htaccessは作成されてなかった。バージョンの違い?
手動で作ります。サンプルがREADMEの中にあるので、それをコピペして、
AddHandlerとOptionsをコメントアウトします。
%vi public/.htaccess長いけどこんな感じ。
# General Apache options
#AddHandler fastcgi-script .fcgi
#AddHandler cgi-script .cgi
#Options +FollowSymLinks +ExecCGI# If you don't want Rails to look in certain directories,
# use the following rewrite rules so that Apache won't rewrite certain requests
#
# Example:
# RewriteCond %{REQUEST_URI} ^/notrails.*
# RewriteRule .* - [L]# Redirect all requests not available on the filesystem to Rails
# By default the cgi dispatcher is used which is very slow
#
# For better performance replace the dispatcher with the fastcgi one
#
# Example:
# RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
RewriteEngine On# If your Rails application is accessed via an Alias directive,
# then you MUST also set the RewriteBase in this htaccess file.
#
# Example:
# Alias /myrailsapp /path/to/myrailsapp/public
# RewriteBase /myrailsappRewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.cgi [QSA,L]# In case Rails experiences terminal errors
# Instead of displaying this message you can supply a file here which will be re
ndered instead
#
# Example:
# ErrorDocument 500 /500.htmlErrorDocument 500 "<h2>Application error</h2>Rails application failed to start properly"
これもファイルがなくて悩んだので全部載せときます。
次。webからみられる場所からtest/publicに向けてシンボリックリンクを
張ります。
~/wwwの直下に「test」という名前でシンボリックリンクを作ります。
% ln -s $HOME/Rails/test/public $HOME/www/test
これで、http://XXX.sakura.ne.jp/test/にアクセスすると、
「Welcome aboard」のページが表示されます。
ここの「About your application's environment」をクリックしてみてください。
- Application error "Rails application failed to start properly"が出る
⇒config/environment.rbの設定が間違ってる可能性があります。
パスを再確認してください。 - Routing error "No route matches "/test/rails/info/properties" with {:method=>:get}"が出る
⇒config/environment.rbに
ENV\['RAILS_RELATIVE_URL_ROOT'\]="/test"を追加してください。
もしくは、public/.htaccessのRewriteの設定が間違ってる可能性アリ - For security purposes, this information is only available to local requests.と出る
⇒おめでとうございます。成功しました。これで終わりです。 - no such file to load -- sqlite3というエラーが出る
⇒以下に進んでください
僕はここで、no such file to load -- sqlite3というエラーが出ました。
これは、sqlite3-rubyが入ってないせいです。入れます。
%setenv RB_USER_INSTALL truesetenvでRB_USER_INSTALLをtrueにしてるのはどういうことかというと、
%gem18 install sqlite3-ruby
普通にgemでインストールしようとすると、エラーが出ます。
こんなの。
chown/chgrp: Operation not permitted探したら、こんなのを見つけた。
http://blog.proj.jp/ituki/20090107.htmlというわけです。
/usr/local/lib/ruby/1.8/i386-freebsd6/rbconfig.rb を見ると
> CONFIG["INSTALL"] = ENV['RB_USER_INSTALL'] ? '/usr/bin/install -c' : '/usr/bin/install -c -o root -g wheel'
とかいう記述がある
よって
setenv RB_USER_INSTALL true
とかコマンドラインで入力してから rubugemsをインストールすればいい
ちなみに、手動でsqlite3-ruby入れようと試すとこんな感じ。失敗します。
%wget http://rubyforge.org/frs/download.php/42056/sqlite3-ruby-1.2.4.tar.gzしかし、ここではこんなエラーが出たので、オススメできない。
%tar zxf sqlite3-ruby-1.2.4.tar.gz
%cd sqlite3-ruby-1.2.4
%ruby setup.rb config --prefix=$HOME -- --with-sqlite3-dir=$HOME
%ruby setup.rb setup
%ruby setup.rb install
don't know how to make ruby.h. Stop
以上、奮闘しましたが、無事「For security purposes, this information is only available to local requests.」が見えるのではないでしょうか。
実は僕は、なぜかばっちりRuby versionとかが出ちゃってますが。
まあ動いているのでよしとする。次回はサンプルアプリに挑戦します。
Tracをさくらインターネットのスタンダードプランに入れたので、SVNに接続する方法も書きます。ずいぶん遅くなっちゃったけど。
■PuTTYgenを使い鍵を作成する
- PuTTYgenはPuTTYごった煮版が入っていればOKなので、ごった煮版をダウンロード。
http://yebisuya.dip.jp/Software/PuTTY/ - puttygen.exeを起動して、生成ボタンをクリック。空白のエリア内でマウスを動かす。(乱数生成のためだね)
- 表示されるテキスト(ssh-rsa AAAAB3NzaC1yc2・・・・みたいなの)をコピーし、テキストファイルで保存。ファイル名をauthorized_keysというファイル名(拡張子なし)に変更。
- PuTTYgenのほうでは、秘密鍵の保存ボタンをクリック。パスフレーズなしで保存。
C:\Program Files\TortoiseSVN\bin\id_rsa.ppkとして保存。 - authorized_keysをFTPで$HOME/.ssh/にアップロード。
- Telnetで接続して、必要なら適宜$HOME/.ssh/のパーミッションを変更。
■ToritoiseSVNの設定
- ToritoiseSVNの設定画面を開く。エクスプローラで適当なフォルダを選び右クリック→ToriseSVN→設定。
- 画面左のツリーからネットワークを選び、SSHクライアント欄にTortoiseSVNのインストールディレクトリ\binにあるTortoisePlink.exeのフルパスを指定。引数は 「-l アカウント名」と「-i 作成した秘密鍵のパス」を指定。
以下のようになります。XXXはさくらインターネットのユーザID。
"C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe" -l XXX -i "C:\Program Files\TortoiseSVN\bin\id_rsa.ppk"
■つないでみる
- 適当なフォルダで右クリック→TortoiseSVN→RepositoryBrowser(またはリポジトリブラウザ)
- URLを入力("svn+ssh" + "://さくらサーバのアドレス" + レポジトリの絶対パス)。
$HOME/var/svn/repoにレポジトリを作った場合。XXXはさくらインターネットのユーザID
svn+ssh://XXX.sakura.ne.jp/home/XXX/var/svn/repo
- リポジトリが見えて、ツリーが開ければ完了。
■もっと使いやすく
複数のSVNにつなげる場合などは以下を参照。
僕はとりあえずまだやってません。
http://sfi.hamazo.tv/e1317475.html
■Tracの静的リソースアクセスを軽くする(おまけ)
さくらのTracを早くする方法を見つけたのでやってみた。
参考:http://weekbuild.sakura.ne.jp/trac/ticket/158
% ln -s ~/local/share/trac/htdocs ~/www/trachtdocs
Trac.iniを以下のように編集
[trac]
htdocs_location = /trachtdocs/
こんな感じで、とりあえずさくらでのTrac+SVNな生活は幸せに過ぎていくと思います。
Web上で管理するためには、0.10.x系では、WebAdminというプラグインが必要です。
あとは、ユーザ管理にAccountManagerというプラグインも入れたほうがいいらしい。
[WebAdmin]
■TortoiseSVNのインストール
WebAdminはSVNで取得の必要ありとのことで、TortoiseSVNをインストールします。
ここ見た。
http://www.gside.org/Gentoo/subversion/subversion_client.html
■WebAdminの取得
・SVNでチェックアウト
Windowsの適当なエクスプローラ上で、
[右クリック] ⇒ [SVNチェックアウト] ⇒ [リポジトリのURL:http://svn.edgewall.com/repos/trac/sandbox/webadmin/]
でチェックアウトディレクトリを適当に入れる。
ダウンロードしたものをZIP化し、FTPでアップロード。
$HOME/local/srcに置きます。
■WebAdminのインストール
%cd $HOME/local/srcこれで、tracのメニューに"Admin"が追加される。
%unzip webadmin.zip
%cd webadmin
%python setup.py build
%python setup.py install --prefix=$HOME/local
%vi $HOME/var/trac/repo/conf/trac.ini
[components]
webadmin.* = enabled
[AccountManager]
■AccountManagerの取得
いろいろ調べた結果、これもソースを取ってきて
自分でセットアップするのが早そうなので、WebAdminと同様に。
バージョンは、Tracのバージョンにあわせて、0.10です。
Windowsの適当なエクスプローラ上で、
[右クリック] ⇒ [SVNチェックアウト] ⇒ [リポジトリのURL:http://trac-hacks.org/svn/accountmanagerplugin/0.10]
でチェックアウトディレクトリを適当に入れる。
ダウンロードしたものをZIP化し、FTPでアップロード。
$HOME/local/srcに置きます。
■AccountManagerのインストール
%cd $HOME/local/srcこれで、インストールは完了。
%unzip accountmanager.zip
%cd accountmanager
%python setup.py install --prefix=$HOME/local
あとは、設定は、Webでやる。
WebAdminを見ます。Webの右上のAdminをクリック。
Pluginsで、TracAccountManager 0.1.3dev-r3857クリック。
使いたいものをチェック。ComponentのEnabledね。
Adminの左のメニューにAccountsと出ているから、インストール成功。
使い方は後で調べる。下の参考ページ見たり、ぐぐったりしてくだしあ><
参考ページ:http://trac-hacks.org/wiki/AccountManagerPlugin
-
客「ここの仕様こうなりました。」
僕「分かりました。」
↓ 3ヵ月後
客「あれってどうなったんでしたっけ。」
僕「あれ、実装はこうなってるけど・・・なんでこうなったんだろう?」
-
客「ここの仕様こうなりました。」
僕「分かりました。Aさん実装しといて」
A「OK。sige sige(フィリピン人)」
↓ 1ヵ月後
僕「あれ、Aさん実装した・・・のかな?」 A「Yes」
僕「あれ、こういう仕様だっけ?」 A「Yes」
僕「お客さんに一応確認してみよう」
そんな感じだから、確認のための無駄な工数がかかったり、正しい仕様が誰にも分からなかったりする事態が生まれている。そんなので悩んでいたときに、Tracで変更管理をして、効率化に成功しているプロジェクトがあった。
うちのチームでも見習おう、ということでTracを試してみる。
Tracについては、この辺を読んでみると、もっと使いたくなる。
Web2.0ナビ: 意外と使われていない「個人用trac」活用のすすめ
Trac Lightningで始めるチケット式開発「電撃」入門 (1/4) - @IT
[Think IT] 第2回:なぜTracの導入に失敗するのか? (1/3)
ということで、さくらインターネットにTracをインストールしてみたよ。
参考サイト:
さくらサーバにtracをインストール - プログラミングノート
さくらレンタルサーバにTracをインストール - FREE STYLE WEBLOG
さくらインターネットにTracを構築する - WeekbuildのHack倉庫 - Trac
さくらインターネットのスタンダードプランです。SSHで接続。
■[ 環境設定 ]
%mkdir -p $HOME/local/srcsetenvのところは、シェルに登録しといたほうがいい
%cd $HOME/local/src
%mkdir -p $HOME/local/lib/python2.4/site-packages
%ln -s ~/local/lib/python2.4 ~/local/lib/python
%setenv PYTHONPATH $HOME/local/lib/python:$HOME/local/lib/python/site-packages
%setenv PATH $HOME/local/bin:$PATH
%setenv LD_LIBRARY_PATH $HOME/local/lib
%vi .cshrc■[ swig ]
setenv PYTHONPATH $HOME/local/lib/python:$HOME/local/lib/python/site-packages
setenv PATH $HOME/local/bin:$PATH
setenv LD_LIBRARY_PATH $HOME/local/lib
swigの最新版:1.3.36
%cd $HOME/local/src■[ subversion ]
%wget http://downloads.sourceforge.net/swig/swig-1.3.36.tar.gz
%tar zxvf swig-1.3.36.tar.gz
%cd swig-1.3.36
%./configure -prefix=$HOME/local
%make
%make install
Subversion最新版:1.5.3
APRは0.9.17でやってみる。
%cd $HOME/local/src■[ pysqlite ]
%mkdir subversion-1.5.3
%wget http://www.meisei-u.ac.jp/mirror/apache/dist/apr/apr-0.9.17.tar.gz
%tar zxvf apr-0.9.17.tar.gz
%mv apr-0.9.17 subversion-1.5.2/apr
%wget http://www.meisei-u.ac.jp/mirror/apache/dist/apr/apr-util-0.9.15.tar.gz
%tar zxvf apr-util-0.9.15.tar.gz
%mv apr-util-0.9.15 subversion-1.5.2/apr-util
%wget http://subversion.tigris.org/downloads/subversion-1.5.3.tar.gz
%tar zxvf subversion-1.5.3.tar.gz
%cd subversion-1.5.3
%./configure --prefix=$HOME/local --with-neon=$HOME/local --without-berkeley-db --enable-swig-bindings=python --with-swig=$HOME/local/bin/swig --disable-static
%make
%make install
%make swig-py
%make install-swig-py
%ln -s $HOME/local/lib/svn-python $HOME/local/lib/python/site-packages/svn-python
%ln -s $HOME/local/lib/svn-python/svn $HOME/local/lib/python/site-packages/svn
%ln -s $HOME/local/lib/svn-python/libsvn $HOME/local/lib/python/site-packages/libsvn
pythonでsqliteを使うためのライブラリ。
pysqliteは最新だと動かないそうなので、1.1.7をインスコ。
%cd $HOME/local/src■[ clearsilver ]
%wget http://initd.org/pub/software/pysqlite/releases/1.1/1.1.7/pysqlite-1.1.7.tar.gz
%tar zxvf pysqlite-1.1.7.tar
%cd pysqlite
%setenv LOCALBASE $HOME/local
%python setup.py build
%python setup.py install --prefix=$HOME/local
C言語によるテンプレートエンジン。非常にシンプルで、かつ高速に動作する。C言語、Python、Perl、Java、Ruby等の言語から利用できる。プロジェクト管理ツールであるTracがPythonバインディングを使用していることで有名。また、Bloglines、Google Groups等の著名サイトでも使用されている。
最新版:0.10.5
でも、0.9.14でいい。
%cd $HOME/local/src■[ docutils ]
%wget http://www.clearsilver.net/downloads/clearsilver-0.9.14.tar.gz
%tar zxvf clearsilver-0.9.14.tar
%cd clearsilver-0.9.14
%./configure --prefix=$HOME/local --oldincludedir=$HOME/local/include --disable-ruby --disable-java --disable-perl --disable-csharp --disable-python --disable-static
%gmake
%gmake install
%cd python
%python setup.py build
%python setup.py install --prefix=$HOME/local
Pythonで書かれたテキスト処理ツール群です。
reStructuredTextという簡単な構文で構造化されたテキストファイルを、
HTML,XMLやLaTeXなどのフォーマットに変換することができます。
最新版:0.5
%cd $HOME/local/src■[ trac ]
%wget http://downloads.sourceforge.net/docutils/docutils-0.5.tar.gz
%tar zxvf docutils-0.5.tar.gz
%cd docutils-0.5
%python setup.py install --home=$HOME/local
Trac最新バージョン:0.11.1
Trac日本語版:
インタアクト株式会社--業務内容--公開資料
Trac-0.11.1.ja1.zip (インストール失敗)
trac-0.10.5-ja-1.zip (こっちをインストールした)
インタアクト株式会社が日本語化して配布。ありがたい。
Tracは、日本語版を使います。最新版を試したところ、失敗。
==ここからは失敗なので真似しないで><===気をとりなおして、0.10.5をインストール。
%wget http://www.i-act.co.jp/project/products/downloads/Trac-0.11.1.ja1.zip
%unzip Trac-0.11.1.ja1.zip
%cd Trac-0.11.1.ja1
%python setup.py install --prefix=$HOME/local
---
ここで問題が発生。
---
%python setup.py install --prefix=$HOME/local
Traceback (most recent call last):
File "setup.py", line 15, in ?
from setuptools import setup, find_packages
ImportError: No module named setuptools
---
で、ここから、setuptools入れたりなんだりして進めたら、
インストールはできるんだが、Trac環境設定で、こんなことになる。
%trac-admin $HOME/var/trac/repo initenv
No module named scripts.adminなんたらかんたら
---
ここではまり、1日くらいうなったが、諦めた。
Tracを消す。どうやったら消せるんだ。
悩んだ挙句、findして、Tracと名のつくファイルをすべて消した。
%find . -name "*trac*"
これで出てきたファイルを消す。Tracに関係なさそうなファイル以外を消す。
---
==ここまでは失敗なので真似しないで><===
%wget http://www.i-act.co.jp/project/products/downloads/trac-0.10.5-ja-1.zipもうこの辺から、参考サイトと同じ。参考サイトがなくなったりしたときのために書く。
%unzip trac-0.10.5-ja-1.zip
%cd trac-0.10.5-ja-1
%python setup.py install --prefix=$HOME/local
---
上の失敗の名残でsetuptoolsを入れてます。ここ参照。
http://d.hatena.ne.jp/yamanetoshi/20080712/p1
---
%wget http://peak.telecommunity.com/dist/ez_setup.py
%python ez_setup.py --prefix=$HOME/local
%cp $HOME/local/share/trac/cgi-bin/trac.cgi $HOME/www
■subversion のリポジトリを作成
%mkdir -p $HOME/var/svn■trac の環境を設定
%svnadmin create --fs-type=fsfs $HOME/var/svn/repo
%mkdir $HOME/tmp
%cd $HOME/tmp
%mkdir proj
%cd proj
%mkdir trunk branches tags
%cd ..
%svn import proj file:///$HOME/var/svn/repo -m "Import First"
%rm -r proj
%mkdir -p $HOME/var/trac上のコマンドを実行すると対話形式に。
%trac-admin $HOME/var/trac/repo initenv
以下を聞かれたらちゃんと入力。後はEnterでおkとのこと。
Project Name [My Project]>プロジェクト名を入力■trac.cgiとか、Web周りの設定
Path to repository [/var/svn/test]> /home/○○○(アカウント名)/var/svn/repo
%mv $HOME/www/trac.cgi $HOME/www/trac_.cgi以上。
%vi trac.cgi
#!/bin/sh
LD_LIBRARY_PATH=/home/○○○(アカウント名)/local/lib;export LD_LIBRARY_PATH
TRAC_ENV=/home/○○○(アカウント名)/var/trac/repo;export TRAC_ENV
PYTHONPATH=/home/○○○(アカウント名)/local/lib/python:/home/○○○(アカウント名)/local/lib/python/site-packages;export PYTHONPATH
/usr/local/bin/python /home/○○○(アカウント名)/www/svn/trac_.cgi
%cd $HOME/www
%mkdir svn
%mv trac_.cgi svn/trac_.cgi
%mv trac.cgi svn/trac.cgi
%cd svn
%chmod 755 trac.cgi
フォルダ区切りでアクセスできるように.htaccessいじる。
%vi $HOME/www/svn/.htaccess
RewriteEngine On
RewriteBase /
RewriteRule ^$ /svn/trac/ [R=301,L]
RewriteRule ^/svn/trac/(.*)$ /svn/trac.cgi/$1 [L]
ベーシック認証とTracのログインをうまいことやる。
%htpasswd -c $HOME/var/trac/repo/conf/.tracpasswd admin
New password: ******
Re-type new password: ******
%cd $HOME/www
%vi .htaccess
AuthUserFile /home/○○○(アカウント名)/var/trac/repo/conf/.tracpasswd
AuthGroupFile /dev/null
AuthName “Type your password prease.”
AuthType Basic
require valid-user
%trac-admin $HOME/var/trac/repo/ permission add admin TRAC_ADMIN
あとは、trac.iniをいじる。↓はロゴのリンク先変更。
%cd var/trac/repo/conf/
%vi trac.ini
[header_logo]
alt =
height = -1
link = http://○○○(アカウント名).sakura.ne.jp/svn/trac/
src = common/trac_banner.png
width = -1
あとは0.10系では管理画面ないので、
WebAdminとかプラグインのインストールが必要ですね。
あとで書く。とりあえずこれでTracが動く。
個人用のチケット登録したりして遊んでます。
理由は、簡単に発展させる技を見つけちゃったからです。
ということで、MyMiniCityで比較的簡単に、一人で発展させられる技を紹介しちゃうよ!
MyMiniCityは、1日のユニークアクセス数によって、人口が増えたり、さまざまな環境が変わったりして町が発展していくサービスです。
この、ユニークアクセスってやつがキモで、要は「違うIPアドレスでアクセスすること」=「ユニークアクセス」になるわけです。
みんなは頑張ってブログで宣伝したり、twitterで釣り発言をしてtinyURLにした自分のMyMiniCityにアクセスしたりと必死に努力をここ1~2ヶ月前くらいまで続けてたと思うけど、僕は宣伝がめんどくさくて一人で増やしてました。家のPC、職場のPC、そしてeMobileでのアクセスでそれぞれ1日1回ずつね。
で、あるとき気づいたのが、eMobileでのアクセスって、1日1回だけじゃなくて、接続⇒切断⇒接続することでIP変わるじゃん!ということ。
というわけで、まずは手動で試してみた。
- eMobile接続
- MyMiniCityにアクセス
- eMobile切断
- 1に戻る
これで人口1人増える!
調子に乗って、自動化。このマウスとキーボードの自動化でいいやと思って、このソフト使った。
HiMacroEX
http://www.vector.co.jp/soft/winnt/util/se427963.html
自動化手順は以下。
eMobile接続ボタン押した状態、ブラウザ開いた状態で開始
- ブラウザのURL欄クリック
- http://mmc.nipotan.org/町の名前/をURL欄に貼り付け(nipotanの自動で適切なMyMiniCityURLへ飛ばしてくれるサービスです)
- Enter
- しばらく待つ
- eMobile切断ボタンクリック
- しばらく待つ
- eMobile接続ボタンクリック
- しばらく待つ
- 1に戻る
http://nyontan.myminicity.com/
この時点で、飽きた(´・ω・`)
もし頑張って町の発展を目指している人は、是非試してみるといいよ!すぐに飽きちゃうと思うけど><
※もしかしたら利用規約違反かもしれん。規約は見当たらなかったけど。
そして、飽きちゃった僕は、違う遊び方を考えた。
MyMiniCityは、町を作るだけ作って、後はログインも何もないので、所有者が誰なんてことは気にしないシステム。
突き詰めて言うと、町の名前にどれだけ自分のアイデンティティを盛り込ませて、それを誇示したいか、というだけの自己顕示欲を満たせるだけのためのサービスとか言っちゃうと身も蓋もないけど言っちゃう><
ということで、自分の町は飽きたので友達に町をプレゼントすることにした。
たとえば、目が離れていることがアイデンティティのさわだ君に、彼の両目の距離を含んだ町をプレゼント!
http://sawada4.8.myminicity.com/
調子に乗って、職場の女の子の名前にブラのサイズを入れて町をプレゼントした!
http://名前-bcup.myminicity.com/
見事に恩は仇になって返されたよ!セクハラとか!訴えるとか訴えないとか!
人生オワタ\(^o^)/
後悔先に立たず、MyMiniCityでは作ったURLは消せないよ。だってログインできないから、消せるなら誰でも消せちゃう。
さあみんなも、この楽しい遊び方を試してみよう!
以下贖罪。
http://nyontan-iboji.myminicity.com/
ちょっと事務作業に疲れたので、脳内ブログメーカー
コンビニの雑誌コーナーで、一服中デス。
これから、あとピンポンダッシュやってから、
在庫チェックして、やっと今日の仕事終わりです。
まだまだ、長いなー。
goo×うそこメーカー
http://blog.goo.ne.jp/portal/brain_blog_maker/
こういう、自動的に日記書いてくれる感じのが前から作りたかったんだよな。
何故なら日記が毎日続かないから。
これはどういうアルゴリズムで出来てるんだろう。
ちょっと見た感じだとテンプレがかなりあって、単語だけ若干入れ替えてるみたいだな。
脳内メーカーが流行ったから、これは面白く感じるね。この発想はなかった。
さて、早く仕事終わらせてピンポンダッシュして帰ろう。
Movable Type4で色々試行錯誤したのです。ウィジェット便利だよウィジェット。
まずはブログを新規作成して、そこで記事インポート、そして色々いじる。
これがMT4の機能を使うのには必要、というのがキモです。詳しくは気が向いたら書くかも。
今回は、アプリを作ってみるよ!
前回、めんどくさそうなので、と言ったのは、masuidrive on rails » Blog Archive » PHPユーザの為のRuby/Rails入門 の「Railsチュートリアル」に従って試してみたけどエラーが出て動かなかった><
Todoアプリをチュートリアルどおりに動かしたんです。MySQLもしっかり設定した。
scaffoldやってみると、「wrong number of arguments (1 for 2)」と出て、引数の数がおかしいとか。
実際に動かしてみると、
Routing Error
No route matches "/todo/" with {:method=>:get}
むう。
無知な僕は、色々調べて、ルーティングがおかしそうだなと思い、試してみた。
ルーティングというのは、mod_rewriteみたいな、URLの書き換え機能だそうで、config/routes.rbで定義されてます。色々いじって、別のサイトに載ってるサンプルで試してルーティングの変え方とかわかったんだけど、Todoは動かなかった。
またもや色々調べて、やっと分かった。Railsのバージョンが違うからですな。
最新版のRails2.0.2ではデフォルトのDBがMySQLからSQLite3へ変わっていた。こいつが原因だ!
http://journal.mycom.co.jp/news/2007/12/18/025/index.html
こっからはうまくいった方法。
まず、前回作ったtestアプリケーションは(rails test)一旦忘れて、todoプロジェクトを作成。
その際に、DBをMySQLを指定します。以下のコマンドをコマンドプロンプトで。
>cd c:\RoR_project
>rails -d mysql todo
create
create app/controllers
create app/helpers
create app/models
(中略)
create log/server.log
create log/production.log
create log/development.log
create log/test.log
アプリケーションが作成されて、ディレクトリがいっぱいできます。
次は、データベースの設定です。config/database.ymlを設定します。
中身はこんな感じ。(コメント除く)
development:
adapter: mysql
encoding: utf8
database: todo_development
username: root
password:
host: localhost
test:
adapter: mysql
encoding: utf8
database: todo_test
username: root
password:
host: localhost
production:
adapter: mysql
encoding: utf8
database: todo_production
username: root
password:
host: localhost
Railsでは開発環境・テスト環境・本番環境がそれぞれ用意されているらしい。上のdevelopment、test、productionですね。詳しいことはまだ勉強が必要だけどものすごい便利そう!すごいよ仕事でも使おうよ!って思った。
ここは、passwordを設定してる場合は書いておけばok。インストールしたばかりなら編集なしでok。ほんとはrootは危ない。
次はrakeコマンド。データベースを自動で構築してくれます。
>cd todo
>rake db:create:all
(in C:/RoR_project/todo)
phpMyAdmin(http://localhost/mysql/)でmySQLを確認すると、todo_development、todo_production、todo_testができてるはず。
最後に一気にTODOを構築するコマンドです。
>ruby script/generate scaffold Todo title:string body:text done:boolean due:datetime
exists app/models/
exists app/controllers/
exists app/helpers/
create app/views/todos
exists app/views/layouts/
exists test/functional/
exists test/unit/
create app/views/todos/index.html.erb
create app/views/todos/show.html.erb
create app/views/todos/new.html.erb
create app/views/todos/edit.html.erb
create app/views/layouts/todos.html.erb
create public/stylesheets/scaffold.css
dependency model
exists app/models/
exists test/unit/
exists test/fixtures/
create app/models/todo.rb
create test/unit/todo_test.rb
create test/fixtures/todos.yml
create db/migrate
create db/migrate/001_create_todos.rb
create app/controllers/todos_controller.rb
create test/functional/todos_controller_test.rb
create app/helpers/todos_helper.rb
route map.resources :todos
scaffoldというのがCRUD(Create - 生成、Read - 表示、Update - 更新、Destroy - 削除)を自動生成してくれます。今回はTodoというモデルを自動で構築してくれました。ここでマイグレーションファイル(db/migrate/001_create_todos.rb)も生成されるので、こいつをDBにmigrateすると、テーブルとレコードができあがります。
>rake db:migrate
(in C:/RoR_project/todo)
== 1 CreateTodos: migrating ===================================================
-- create_table(:todos)
-> 0.0620s
== 1 CreateTodos: migrated (0.0620s) ==========================================
最後にWEBサーバを起動して、アプリケーションを実行してみます。
>ruby script/server
=> Booting WEBrick...
=> Rails application started on http://0.0.0.0:3000
=> Ctrl-C to shutdown server; call with --help for options
[2008-01-22 01:49:31] INFO WEBrick 1.3.1
[2008-01-22 01:49:31] INFO ruby 1.8.6 (2007-09-24) [i386-mswin32]
[2008-01-22 01:49:31] INFO WEBrick::HTTPServer#start: pid=4628 port=3000
http://localhost:3000/todos/にアクセスしてみると、TODOができてます!
レコードの生成、表示、更新、削除がちゃんとできた!
ちょっとつまづいたけど、簡単にアプリができちゃった。動かない原因調べるのに2時間かかったけど><
Railsの初歩の初歩と仕組みの大枠が理解できたので、今度は本を買ってこつこつやってみるよ。
とりあえずこれ買った。
基礎Ruby on Rails (IMPRESS KISO SERIES)
黒田 努 佐藤 和人
インプレスジャパン 2007-10
売り上げランキング : 6837
おすすめ平均
1ヶ月くらいでなんか公開できるものを作りたいなあ。