前に書いた
RedMineのプラグイン作成でハマった話 その2
http://blog.goo.ne.jp/xmldtp/e/4472576b53bd39b505fc8ac97e139bd0
から、かなりたってしまいました。
いま、さくらのVPSにRedMineのプラグインを入れていたんだけど、
Linuxの場合、新手のエラーが出たので、それについてと、
今までのインストール方法のまとめについて、メモメモ。
■新手のエラー
【状況】
ruby bin/rails generate redmine_plugin redmine_standard
を実行すると、
/opt/redmine-3.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.0.0/gems/mysql2-0.3.14/lib/mysql2/client.rb:67:in `connect': Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) (Mysql2::Error)
というエラーが出る
【理由】
現在プラグインが見ているdatabase.yml、つまり
/opt/redmine-3.0.3-0/apps/redmine/htdocs/config/database.yml
に、データベース設定がされていない
【対策】
上記のdatabase.ymlで、
development:
と
test :
に対して、production: と同じsocket指定をして、
ついでに、username:とpassword:を設定しておく
→詳細は、以下参照
■plugin 作成方法
●0.準備
<<config/database.ymlの設定>>
development:とtest :に対して、production: と同じsocket指定をする。
ついでに、username:とpassword:を設定しておく
developのところは、こんな感じになる
![](https://blogimg.goo.ne.jp/user_image/14/a4/67ba89f97a5cf9392792bf8f642e335e.png)
(ユーザー名root,パスワードpasswordの場合。良い子のみんなは、
こんなアカウントを設定しちゃ、だめだよ!)
<<redmine_developmentの作成>>
mysqlで入って
cd /opt//opt/redmine-3.0.3-0/mysql/bin
./mysql -u root -p
(このあとパスワード入力)
CREATE DATABASE redmine_development CHARACTER SET utf8;
<<schema_migrationsテーブルをredmine_development中に作成>>
mysqlに入って、今redmine_developmentを作ったその後で
use redmine_development
CREATE TABLE `schema_migrations` (`version` varchar(255) NOT NULL) ENGINE=InnoDB;
exitで抜ける。
●1.Redmine のトップディレクトリに移動して、生成コマンドを実行します。
cd /opt/redmine-3.0.3-0/apps/redmine/htdocs
ruby bin/rails generate redmine_plugin redmine_standard
●2.init.rbの書き換え
作成したプラグイン(例だとplugins/redmine_standard)のディレクトリに移動して
init.rbを書き換え。コレは以前
RedMineのプラグイン作成でハマった話 その2
http://blog.goo.ne.jp/xmldtp/e/4472576b53bd39b505fc8ac97e139bd0
に書いた。そこのinit.rbの書き換えを参考に
(standardを、自分のモジュール名に代える)
●3.config/routes.rbの書き換え
作成したプラグイン(例だとplugins/redmine_standard)のディレクトリの下の
configにいき、routes.rbを上記エントリに書いてあるように修正する
●4.モデル、コントローラーなど作成
cd /opt/redmine-3.0.3-0/apps/redmine/htdocs
ruby bin/rails generate redmine_plugin_model redmine_standard foo project_id:integer
ruby bin/rails generate redmine_plugin_controller redmine_standard foos index new show edit
●5.プラグイン登録
bundle exec rake db:migrate_plugins RAILS_ENV='production'
●6.再起動
cd /opt/redmine-3.0.3-0
./ctlscript.sh restart
(時間がかかることあり)
なぜか、mysqlが立ち上がらなくなった・・・
ps -alしたら、mysqld_safeとmysqldがいたので、killで殺して、
再度
./ctlscript.sh restart
したら、立ち上がった・・・なんだったんだろう?
●7.ブラウザからアクセス
管理者でログイン
管理>プラグインでみると、プラグインがインストールできていることを確認
各プロジェクトに行き、
設定>モジュール
で、作成したプラグインにチェックを入れると、プラグインが見れる。
●8.コントローラーを直す
cd /opt/redmine-3.0.3-0/apps/redmine/htdocs/plugins/redmine_standard/app/controllers
をおこない、プラグインのappのコントローラーにいって、
vi foos_controller.rb
で、foos_controller.rbを以下のように編集する
/opt/redmine-3.0.3-0/ctlscript.sh restart
をして、再起動しないと、表示が変わらない場合あり
ちなみに、ログは、
/opt/redmine-3.0.3-0/apps/redmine/htdocs/log
のproduction.logにある。ここで、
SyntaxError (/opt/redmine-3.0.3-0/apps/redmine/htdocs/plugins/redmine_standard/app/co
ntrollers/foos_controller.rb:21: syntax error, unexpected keyword_end, expecting
end-of-input):
とかいうエラーが出た場合、なにか、単純な?書き間違いをしている。
●このあと
ここまででRails を知らない人のための Redmine プラグイン開発ガイドの9なので、それ以降を行っていくことになる。
RedMineのプラグイン作成でハマった話 その2
http://blog.goo.ne.jp/xmldtp/e/4472576b53bd39b505fc8ac97e139bd0
から、かなりたってしまいました。
いま、さくらのVPSにRedMineのプラグインを入れていたんだけど、
Linuxの場合、新手のエラーが出たので、それについてと、
今までのインストール方法のまとめについて、メモメモ。
■新手のエラー
【状況】
ruby bin/rails generate redmine_plugin redmine_standard
を実行すると、
/opt/redmine-3.0.3-0/apps/redmine/htdocs/vendor/bundle/ruby/2.0.0/gems/mysql2-0.3.14/lib/mysql2/client.rb:67:in `connect': Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) (Mysql2::Error)
というエラーが出る
【理由】
現在プラグインが見ているdatabase.yml、つまり
/opt/redmine-3.0.3-0/apps/redmine/htdocs/config/database.yml
に、データベース設定がされていない
【対策】
上記のdatabase.ymlで、
development:
と
test :
に対して、production: と同じsocket指定をして、
ついでに、username:とpassword:を設定しておく
→詳細は、以下参照
■plugin 作成方法
●0.準備
<<config/database.ymlの設定>>
development:とtest :に対して、production: と同じsocket指定をする。
ついでに、username:とpassword:を設定しておく
developのところは、こんな感じになる
![](https://blogimg.goo.ne.jp/user_image/14/a4/67ba89f97a5cf9392792bf8f642e335e.png)
(ユーザー名root,パスワードpasswordの場合。良い子のみんなは、
こんなアカウントを設定しちゃ、だめだよ!)
<<redmine_developmentの作成>>
mysqlで入って
cd /opt//opt/redmine-3.0.3-0/mysql/bin
./mysql -u root -p
(このあとパスワード入力)
CREATE DATABASE redmine_development CHARACTER SET utf8;
<<schema_migrationsテーブルをredmine_development中に作成>>
mysqlに入って、今redmine_developmentを作ったその後で
use redmine_development
CREATE TABLE `schema_migrations` (`version` varchar(255) NOT NULL) ENGINE=InnoDB;
exitで抜ける。
●1.Redmine のトップディレクトリに移動して、生成コマンドを実行します。
cd /opt/redmine-3.0.3-0/apps/redmine/htdocs
ruby bin/rails generate redmine_plugin redmine_standard
●2.init.rbの書き換え
作成したプラグイン(例だとplugins/redmine_standard)のディレクトリに移動して
init.rbを書き換え。コレは以前
RedMineのプラグイン作成でハマった話 その2
http://blog.goo.ne.jp/xmldtp/e/4472576b53bd39b505fc8ac97e139bd0
に書いた。そこのinit.rbの書き換えを参考に
(standardを、自分のモジュール名に代える)
●3.config/routes.rbの書き換え
作成したプラグイン(例だとplugins/redmine_standard)のディレクトリの下の
configにいき、routes.rbを上記エントリに書いてあるように修正する
●4.モデル、コントローラーなど作成
cd /opt/redmine-3.0.3-0/apps/redmine/htdocs
ruby bin/rails generate redmine_plugin_model redmine_standard foo project_id:integer
ruby bin/rails generate redmine_plugin_controller redmine_standard foos index new show edit
●5.プラグイン登録
bundle exec rake db:migrate_plugins RAILS_ENV='production'
●6.再起動
cd /opt/redmine-3.0.3-0
./ctlscript.sh restart
(時間がかかることあり)
なぜか、mysqlが立ち上がらなくなった・・・
ps -alしたら、mysqld_safeとmysqldがいたので、killで殺して、
再度
./ctlscript.sh restart
したら、立ち上がった・・・なんだったんだろう?
●7.ブラウザからアクセス
管理者でログイン
管理>プラグインでみると、プラグインがインストールできていることを確認
各プロジェクトに行き、
設定>モジュール
で、作成したプラグインにチェックを入れると、プラグインが見れる。
●8.コントローラーを直す
cd /opt/redmine-3.0.3-0/apps/redmine/htdocs/plugins/redmine_standard/app/controllers
をおこない、プラグインのappのコントローラーにいって、
vi foos_controller.rb
で、foos_controller.rbを以下のように編集する
class FoosController < ApplicationController unloadable before_filter :find_project, :authorize def index end def new end def show end def edit end private def find_project @project = Project.find(params[:project_id]) rescue ActiveRecord::RecordNotFound render_404 end end |
/opt/redmine-3.0.3-0/ctlscript.sh restart
をして、再起動しないと、表示が変わらない場合あり
ちなみに、ログは、
/opt/redmine-3.0.3-0/apps/redmine/htdocs/log
のproduction.logにある。ここで、
SyntaxError (/opt/redmine-3.0.3-0/apps/redmine/htdocs/plugins/redmine_standard/app/co
ntrollers/foos_controller.rb:21: syntax error, unexpected keyword_end, expecting
end-of-input):
とかいうエラーが出た場合、なにか、単純な?書き間違いをしている。
●このあと
ここまででRails を知らない人のための Redmine プラグイン開発ガイドの9なので、それ以降を行っていくことになる。