nginxにredmineを入れたいど素人
どうもウェブど素人です。
先日VPSを借りて、nginx上に複数サイトを構築しました。
今度はタスク管理のためredmineを導入したいと思い、
nginx上に入れようと思ったが、3日くらいガチャガチャやっても無理でした。
そもそも、何が何だかわからずにやっているからですが現状メモのため
自分の環境
OS | Ubuntu 20.04.4 LTS (GNU/Linux 5.4.0-104-generic x86_64) |
サーバー | nginx/1.18.0 (Ubuntu) |
redmine導入 大撃沈
とりあえず、以下を参考にやってみた
https://blog.redmine.jp/articles/4_2/install/ubuntu/
本人の認識はApacheの設定をnginx風にするだけだろうという安易な思考
1.日本語を扱うためらしい
sudo locale-gen ja_JP.UTF-8
もとから設定できていたようだ
2.何が何だかわからないものをインストール
sudo apt install -y build-essential zlib1g-dev libssl-dev libreadline-dev libyaml-dev libcurl4-openssl-dev libffi-dev
sudo apt install -y subversion git
3.PostgreSQL
sudo apt install -y postgresql libpq-dev
4.ruby
curl -O https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.4.tar.gz
tar xvf ruby-2.7.4.tar.gz
cd ruby-2.7.4
./configure --disable-install-doc
make
sudo make install
cd ..
5.ポスグレ設定
sudo -u postgres createuser -P redmine
sudo -u postgres createdb -E UTF-8 -l ja_JP.UTF-8 -O redmine -T template0 redmine
6.redmineインストール
sudo mkdir /var/lib/redmine
sudo chown www-data /var/lib/redmine
sudo -u www-data svn co https://svn.redmine.org/redmine/branches/4.2-stable /var/lib/redmine
7.DB設定
production:
adapter: postgresql
database: redmine
host: localhost
username: redmine
password: "********"
encoding: utf8
production:
email_delivery:
delivery_method: :smtp
smtp_settings:
address: "localhost"
port: 25
domain: "example.com"
rmagick_font_path: /usr/share/fonts/truetype/takao-gothic/TakaoPGothic.ttf
8.remine設定
cd /var/lib/redmine
sudo -u www-data bin/rake generate_secret_token
sudo -u www-data RAILS_ENV=production bin/rake db:migrate
9.passenger 一番よくわからんもの
sudo gem install passenger -N
sudo passenger-install-nginx-module --auto --languages ruby # Apacheをnginxにとりあえず変えてみた
10.nginxのconfファイルをそれっぽく passenger_rootやらなんやらをググりながら設定
11.いざ実行
passenger_rootとかそんなディレクディブは知らんと怒られた(そもそもディレクティブてなんや?)
12.3日間迷走
理解しようとせず、とにかくガチャガチャ
passenger周りをガチャガチャゴチャチゃ
13.適当な仮説
このディレクティブってやつが認識されてないから動かないんじゃないか?の適当な仮説
他のfastcgi_paramとかはそれっぽいファイルがあり記載されているのに
→
どうやって入れるんだ?→ググりまくる
14.仕方なく今まで実行したコマンドを見返してちょっとだけ思考してみる
前提として稼働済みnginxの存在がおかしいんじゃないか?→再コンパイルする必要的な記事を発見&そもそも無理なんじゃね的なコメントも発見
よくわからん。そしてpython動かすためにunitっての入れたけど、passengerってのいらないんじゃね?の仮説→【ぐぐる】→
unit+redmineで公式のページが出てきた。こっちで試そう。。。
redmine導入 ちょっとだけ進んだ話
謎のpassengerでなくunitを使った方法で試したら若干進んだ話
1.Ruby language module.インストール
apt install unit-ruby
2.Install and configure Redmine’s prerequisites.
よくわかんないけど前回設定済みと信じてスキップ
3.Install Redmine’s core files.
よくわかんないけど前回設定済みと信じてスキップ2
4.Run the following command so Unit can access the application directory:
sudo chown -R unit:unit /path/to/app/
5.config.json作ってアップするらしい
{
"listeners": {
"*:80": {
"pass": "applications/redmine"
}
},
"applications": {
"redmine": {
"type": "ruby",
"working_directory": "/path/to/app/",
"script": "config.ru",
"environment": {
"RAILS_ENV": "production"
}
}
}
}
sudo curl -X PUT --data-binary @config.json --unix-socket \
/path/to/control.unit.sock http://localhost/config/
→早速エラー
“error”: “Failed to apply new configuration.”
→わからん ログ確認
sudo tail -f /var/log/unit.log
failed to start application “redmine”
ほう。アプリが実行できずかredmine側のログ確認
sudo tail -f /var/lib/redmine/log/redmine_error.log
無いし。起動時のエラーログはどこに吐かれるんだ?
飛ばした2,3を確認するか。。
とりあえずこれから実行してみよう。。
bundle exec rake generate_secret_token
エラーも返事なし
RAILS_ENV=production bundle exec rake db:migrate
同様
RAILS_ENV=production bundle exec rake redmine:load_default_data
おっ、なんかSelect languageって返事着たから【ja】を入力したら
Default configuration data loaded
おぉ、わからんが進んだきがする
次がわからん。権限どうこうらしいが
今は www-dataだけどunitにしたほうがいいのか?
わかんないから一旦このままでだめっそうならunitに変えたり666にしたりする
テスト
bundle exec rails server webrick -e production
なんかウェブサーバー立ち上がったけどVPSのhttp://0.0.0.0:3000ってどう確認すりゃいいねん
www.example:3000でアクセスしたけど応答なし。ファイヤーウォール設定か?
ufw status verbose
3000って表示はないから追加するか
ufw allow 3000
ufw reload
ワンモア
bundle exec rails server webrick -e production
アクセス www.example:3000
きたああああああああああ!redmineのページが表示された!
そんでadmin:adminでログインしてパスワードを変更する
一旦、ウェブサーバー落としてそのあとの設定もいろいろあるっぽいけど面倒なのでここまでにする。
6.再びconfig.jsonをアップに戻る
sudo curl -X PUT --data-binary @config.json --unix-socket \
/path/to/control.unit.sock http://localhost/config/
→”error”: “Failed to apply new configuration.” っざっけんなー!
sudo tail -f /var/log/unit.log
[unit] Ruby: Failed to require ‘bundler/setup’ package
[unit] Ruby: /usr/lib/ruby/2.7.0/bundler/spec_set.rb:86:in `block in materialize’: Could not find rake-13.0.6 in any of the sources (Bundler::GemNotFound)
またググるとこか。。英語のサイトしか出ないし
なんか再インストールとかgem.lockファイルを消すだの出てきたけど、ほんとわからん なんも影響ないのか。。
→ 間違えてlockファイルを消してしまった。もういいよ
とりあえず以下実行
bundle install --without development test
なんか進んだ気がする
もっかい
sudo curl -X PUT --data-binary @config.json --unix-socket \
/path/to/control.unit.sock http://localhost/config/
出来ません。わかりません。ruby・Gem bundler自体が何者なのかわからないので、今度調べておこ。。
今回はパワープレイ
nohup bundle exec rails server webrick -e production &
これでひとまずインターネット経由でredmineをいじくることはできそう
さらにカオスに
さすがにちょっとくらい理解しないとダメか。。
gemって何?
rubyのライブラリ管理らしい
bundlerって何?
gemの一種でgemの依存関係も管理してくれるらしい
gem+bundler
gem+bundlerでpythonでいうところのpipという認識でいいのかな?
俺はその認識で行こう。。
とりあえず本題
前回の
[unit] Ruby: Failed to require ‘bundler/setup’ package
[unit] Ruby: /usr/lib/ruby/2.7.0/bundler/spec_set.rb:86:in `block in materialize’: Could not find rake-13.0.6 in any of the sources (Bundler::GemNotFound)
このエラーはどういうことか
まぁシンプルにrake-13.0.6てのがソースにねーよって怒っているのであろう
たしかに/usr/lib/ruby/2.7.0/bundler以下をrakeで検索しても出てこないんだなrakeをinstallしてたコマンドってどこだっけ??
まず1回目に/var/lib/redmineで
sudo -u www-data bin/rake generate_secret_token
sudo -u www-data RAILS_ENV=production bin/rake db:migrate
これを実行している
2回目も同じディレクトリで
bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake redmine:load_default_data
RAILS_ENV=production REDMINE_LANG=fr bundle exec rake redmine:load_default_data
この辺を実行している
rakeの前にbin/がついているかどうかの違いがある
しかし/var/lib/redmine/bin/rakeが存在しているぞ?
てことはbin/rakeにすればうまくいったりする?
sudo bundle exec bin/rake generate_secret_token
sudo RAILS_ENV=production bundle exec bin/rake db:migrate
sudo RAILS_ENV=production bundle exec bin/rake redmine:load_default_data
sudo RAILS_ENV=production REDMINE_LANG=fr bundle exec bin/rake redmine:load_default_data
んで
sudo bundle exec rails server webrick -e production
これは前も動いたからまぁいいとして
これですわ 鬼門
sudo curl -X PUT --data-binary @config.json --unix-socket \
/path/to/control.unit.sock http://localhost/config/
“error”: “Failed to apply new configuration.”
ダメじゃん。もう無理やろ
ぐぐると
https://qiita.com/Nedward/items/55b8dac4001a514b9bcc
バンドらーのパス?
bundle config
Set for your local app (/var/lib/redmine/.bundle/config): [:development, :test, :rmagick]
なんかセットせいって言ってる?
mkdir .bundle/config
mkdir: ディレクトリ `.bundle/config’ を作成できません: ファイルが存在します
ふぁ?
ls .bundle/config
ほんまや
こいうことか
sudo bundle install --path .bundle/config
??翻訳
このフラグは bundler を起動するたびに記憶させる必要がありますが、bundler は将来のバージョンでは記憶させない予定です。代わりに bundle config set path '.bundle/config'
を使って、このフラグを使うのをやめてください。
Bundler を root 権限で実行しないでください。Bundler は必要であれば sudo を要求します。root でバンドルをインストールすると、このマシンの非 root ユーザーのアプリケーションを壊してしまいます。
パス /var/lib/redmine/.bundle/config/ruby/2.7.0
にファイルが存在するためインストールできませんでした。ファイルを削除するか、ファイル名を変更して、ディレクトリを作成してください。
えっ sudoだめなの?そんなこと素人には思いもしなかった
bundle config set path ‘.bundle/config
Your application has set path to “.bundle/config”. This will override the global value you are currently setting
なんかグローバルも上書きしたみたいな怖いこと言ってる
bundle config
うーんわからn ええんか?
sudo bundle exec bin/rake generate_secret_token
sudo RAILS_ENV=production bundle exec bin/rake db:migrate
sudo RAILS_ENV=production bundle exec bin/rake redmine:load_default_data
sudo RAILS_ENV=production REDMINE_LANG=fr bundle exec bin/rake redmine:load_default_data
Could not find rake-13.0.6 in any of the sources
Run bundle install
to install missing gems.
状況悪化してて草
ぐぐりまくる
which ruby
/usr/local/bin/ruby
which bundle
/usr/local/bin/bundle
[DEPRECATED] use bundle info rake
instead of bundle show rake
The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x64-mingw32, x86-mswin32. To add those platforms to the bundle, run bundle lock --add-platform x86-mingw32 x64-mingw32 x86-mswin32
.
The dependency ffi (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x64-mingw32, x86-mswin32. To add those platforms to the bundle, run bundle lock --add-platform x86-mingw32 x64-mingw32 x86-mswin32
.
Could not find rake-13.0.6 in any of the sources
カオスw会社のサーバーだったらクビだなw
まだ一切の理解が出来ていないことと おそらく参照関連がえらいこっちゃなっている気がする
一度全部アンインストールしなおすか。。いや、できれば理解して治したい。。。w
次回
とにかく、人まね猿真似では限界があることは重々承知。
ただしとりあえず動けばいいやなので、理解が進まない
とはいえ、トータル5日くらい時間無駄にしてるし
今度のためにも勉強して次回は想定通りうごかせるようにすることが目標