oss-gate / workshop

OSSの開発に未参加または参加したことはあるけどまだ自信がない人を後押しするワークショップ用のリポジトリー
124 stars 547 forks source link

OSS Gateワークショップ 2016-11-26: bontakun-mk2: Redmine: 作業ログ #159

Closed bontakun-mk2 closed 7 years ago

bontakun-mk2 commented 7 years ago

OSS Gate へようこそ。

OSS Gateワークショップでは一人ずつ issue を作り、そこに作業ログを残しながら進めます。 過去のビギナーのものはこちらで見られます。 https://github.com/oss-gate/workshop/issues?q=is%3Aissue+is%3Aclosed

この issue 作成時点でまずやること

作業ログを書くタイミング

作業ログを書くタイミングは次のタイミングです。

作業ログに書く内容

作業ログに残すことは次のことです。「備考」以外は作業の邪魔にならないように一言でよいです。備考は作業に役立つので必要な分だけ書いてください。

ログはコメントとして追記していってください。テンプレートは次の通りです。

* 作業:(ここにやること、やっていること、やったことを書く)
* 思っていること:(今どう思っているかを書く)

備考:(必要なら必要なだけ書く。必要ないなら書かなくてもよい。)

例1(備考なし):

* 作業:インストールを始めた
* 思っていること:ドキュメント通りに進めれば大丈夫だろう

例2:

* 作業:インストールが失敗した
* 思っていること:ドキュメントに手順が足りない?

備考:エラーメッセージは次の通り

```text
XXX is not found
```

必要なファイルが足りないのかなぁ。

ふりかえり

作業ログは、ビギナーが、このワークショップを通して得るものをより増やすために重要になります。なぜなら作業ログがメンターからのフィードバックをより充実させるからです。

作業ログを元にメンターと「ふりかえり」をするタイミングがあります。「ふりかえり」では次のことをします。

メンターは次のようなフィードバックをします。これは、ビギナーとは違う視点からビギナーの行動を観察することおよびメンターの経験があるからできることです。(「ふりかえり」の前にこんなフィードバックをよろしくお願いします!とお願いすると効果が高まるので実践してみましょう。)

このように、ビギナーの作業をメンター視点で一緒に整理し、ビギナーの今後の行動に活かす活動がここでいう「ふりかえり」です。そのため、「ビギナーにとって」ログに残すべきかどうか、という視点ではなく、「とりあえずログに残す」という視点でログを残してください。これは、ビギナーが重要だと判断しなくてもメンターの視点から見たら大事なこともあるからです。

bontakun-mk2 commented 7 years ago

まず日本語のほうで進める

bontakun-mk2 commented 7 years ago

*作業:Redmineインストール手順確認 Ubuntu用インストール手順をBash on Ubuntu on Windowsで進めてみる まずは内容確認 http://blog.redmine.jp/articles/3_2/install/ubuntu/

bontakun-mk2 commented 7 years ago

*作業:前提条件確認

ソフトウェア バージョン
Redmine Redmine 3.2.0
OS Ubuntu Server 14.04.3 LTS
データベース PostgreSQL 9.3
webサーバ Apache 2.4.7 (Railsの実行にはPassengerを使用)
Ruby 2.2.3

自環境 $lsb_release -a ... Description: Ubuntu 14.04.5 LTS ... 前提ソフトは何も入っていない(Rubyすら)

bontakun-mk2 commented 7 years ago

*作業:OSの設定 ja_JP.UTF-8ロケールの作成

問題なし


LANG=ja_JP.UTF-8
LANGUAGE=
LC_CTYPE="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_PAPER="ja_JP.UTF-8"
LC_NAME="ja_JP.UTF-8"
LC_ADDRESS="ja_JP.UTF-8"
LC_TELEPHONE="ja_JP.UTF-8"
LC_MEASUREMENT="ja_JP.UTF-8"
LC_IDENTIFICATION="ja_JP.UTF-8"
LC_ALL=```
bontakun-mk2 commented 7 years ago

*作業:必要なパッケージのインストール

パッケージ管理システムのデータベースを最新に更新
sudo apt-get update

RubyとPassengerのビルドに必要な開発ツールやヘッダファイルのインストール
sudo apt-get install -y build-essential zlib1g-dev libssl-dev libreadline-dev libyaml-dev libcurl4-openssl-dev

PostgreSQLとヘッダファイルのインストール
sudo apt-get install -y postgresql postgresql-server-dev-9.3

Apacheとヘッダファイルのインストール
sudo apt-get install -y apache2-mpm-worker apache2-threaded-dev libapr1-dev libaprutil1-dev

ImageMagickとヘッダファイル・日本語フォントのインストール
sudo apt-get install -y imagemagick libmagick++-dev fonts-takao-pgothic
bontakun-mk2 commented 7 years ago

*作業:PostgreSQLのインストールにコケる

パッと見Bash on Windowsの未実装機能を使用してるように見える dmesg: klogctl failed: 関数は実装されていません

:~$ sudo apt-get install -y postgresql postgresql-server-dev-9.3
sudo: ホスト DESKTOP-ANEKSIA の名前解決ができません
パッケージリストを読み込んでいます... 完了0%
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
  libpq-dev libpq5 postgresql-9.3 postgresql-client-9.3
  postgresql-client-common postgresql-common ssl-cert
提案パッケージ:
  postgresql-doc-9.3 oidentd ident-server locales-all openssl-blacklist
以下のパッケージが新たにインストールされます:
  libpq-dev libpq5 postgresql postgresql-9.3 postgresql-client-9.3
  postgresql-client-common postgresql-common postgresql-server-dev-9.3
  ssl-cert
アップグレード: 0 個、新規インストール: 9 個、削除: 0 個、保留: 10 個。
4,463 kB のアーカイブを取得する必要があります。
この操作後に追加で 19.7 MB のディスク容量が消費されます。
取得:1 http://archive.ubuntu.com/ubuntu/ trusty-updates/main libpq5 amd64 9.3.15-0ubuntu0.14.04 [78.7 kB]
取得:2 http://archive.ubuntu.com/ubuntu/ trusty-updates/main libpq-dev amd64 9.3.15-0ubuntu0.14.04 [140 kB]
取得:3 http://archive.ubuntu.com/ubuntu/ trusty-updates/main postgresql-client-common all 154ubuntu1 [25.4 kB]
取得:4 http://archive.ubuntu.com/ubuntu/ trusty-updates/main postgresql-client-9.3 amd64 9.3.15-0ubuntu0.14.04 [788 kB]
取得:5 http://archive.ubuntu.com/ubuntu/ trusty/main ssl-cert all 1.0.33 [16.6 kB]
取得:6 http://archive.ubuntu.com/ubuntu/ trusty-updates/main postgresql-common all 154ubuntu1 [103 kB]
取得:7 http://archive.ubuntu.com/ubuntu/ trusty-updates/main postgresql-9.3 amd64 9.3.15-0ubuntu0.14.04 [2,706 kB]
取得:8 http://archive.ubuntu.com/ubuntu/ trusty-updates/main postgresql all 9.3+154ubuntu1 [5,038 B]
取得:9 http://archive.ubuntu.com/ubuntu/ trusty-updates/main postgresql-server-dev-9.3 amd64 9.3.15-0ubuntu0.14.04 [601 kB]
4,463 kB を 10秒 で取得しました (439 kB/s)
パッケージを事前設定しています ...
以前に未選択のパッケージ libpq5 を選択しています。
(データベースを読み込んでいます ... 現在 32230 個のファイルとディレクトリがインストールされています。)
.../libpq5_9.3.15-0ubuntu0.14.04_amd64.deb を展開する準備をしています ...
libpq5 (9.3.15-0ubuntu0.14.04) を展開しています...
dpkg: アーカイブ /var/cache/apt/archives/libpq5_9.3.15-0ubuntu0.14.04_amd64.deb の処理中にエラーが発生しました (--unpack):
 '/usr/lib/libpq.so.5.6.dpkg-new' をオープンできません: 許可がありません
dmesg: klogctl failed: 関数は実装されていません
                                   以前に未選択のパッケージ libpq-dev を選択しています。
.../libpq-dev_9.3.15-0ubuntu0.14.04_amd64.deb を展開する準備をしています ...
libpq-dev (9.3.15-0ubuntu0.14.04) を展開しています...
以前に未選択のパッケージ postgresql-client-common を選択しています。
.../postgresql-client-common_154ubuntu1_all.deb を展開する準備をしています ...
postgresql-client-common (154ubuntu1) を展開しています...
以前に未選択のパッケージ postgresql-client-9.3 を選択しています。
.../postgresql-client-9.3_9.3.15-0ubuntu0.14.04_amd64.deb を展開する準備をしています ...
postgresql-client-9.3 (9.3.15-0ubuntu0.14.04) を展開しています...
以前に未選択のパッケージ ssl-cert を選択しています。
.../ssl-cert_1.0.33_all.deb を展開する準備をしています ...
ssl-cert (1.0.33) を展開しています...
以前に未選択のパッケージ postgresql-common を選択しています。
.../postgresql-common_154ubuntu1_all.deb を展開する準備をしています ...
'postgresql-common による /usr/bin/pg_config から /usr/bin/pg_config.libpq-dev への退避 (divert)' を追加しています
postgresql-common (154ubuntu1) を展開しています...
以前に未選択のパッケージ postgresql-9.3 を選択しています。
.../postgresql-9.3_9.3.15-0ubuntu0.14.04_amd64.deb を展開する準備をしています ...
postgresql-9.3 (9.3.15-0ubuntu0.14.04) を展開しています...
以前に未選択のパッケージ postgresql を選択しています。
.../postgresql_9.3+154ubuntu1_all.deb を展開する準備をしています ...
postgresql (9.3+154ubuntu1) を展開しています...
以前に未選択のパッケージ postgresql-server-dev-9.3 を選択しています。
.../postgresql-server-dev-9.3_9.3.15-0ubuntu0.14.04_amd64.deb を展開する準備をしています ...
postgresql-server-dev-9.3 (9.3.15-0ubuntu0.14.04) を展開しています...
man-db (2.6.7.1-1ubuntu1) のトリガを処理しています ...
ureadahead (0.100.0-16) のトリガを処理しています ...
処理中にエラーが発生しました:
 /var/cache/apt/archives/libpq5_9.3.15-0ubuntu0.14.04_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
bontakun-mk2 commented 7 years ago

Bash on WindowsでPostgreSQLのインストールについて検索してみたが同様の情報なし 他のISSUEは見つかった https://github.com/Microsoft/BashOnWindows/issues/61

エラーメッセージをよく見るとlibpq5のインストールに失敗していた

bontakun-mk2 commented 7 years ago

*作業:Bash on Windowsでのlibpq5インストールについてもエラー情報は見つからなかった しかしlibpq5単体でインストールすると(なぜか)成功した

:~$ sudo apt-get install libpq5
sudo: ホスト DESKTOP-ANEKSIA の名前解決ができません
パッケージリストを読み込んでいます... 完了0%
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが新たにインストールされます:
  libpq5
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 10 個。
8 個のパッケージが完全にインストールまたは削除されていません。
78.7 kB 中 0 B のアーカイブを取得する必要があります。
この操作後に追加で 274 kB のディスク容量が消費されます。
(データベースを読み込んでいます ... 現在 33250 個のファイルとディレクトリがインストールされています。)
.../libpq5_9.3.15-0ubuntu0.14.04_amd64.deb を展開する準備をしています ...
libpq5 (9.3.15-0ubuntu0.14.04) を展開しています...
libpq5 (9.3.15-0ubuntu0.14.04) を設定しています ...
libpq-dev (9.3.15-0ubuntu0.14.04) を設定しています ...
postgresql-client-common (154ubuntu1) を設定しています ...
postgresql-client-9.3 (9.3.15-0ubuntu0.14.04) を設定しています ...
update-alternatives: /usr/share/man/man1/psql.1.gz (psql.1.gz) を提供するために 自動モード で /usr/share/postgresql/9.3/man/man1/psql.1.gz を使います
ssl-cert (1.0.33) を設定しています ...
hostname: Name or service not known
make-ssl-cert: Could not get FQDN, using "DESKTOP-ANEKSIA".
make-ssl-cert: You may want to fix your /etc/hosts and/or DNS setup and run
make-ssl-cert: make-ssl-cert generate-default-snakeoil --force-overwrite
make-ssl-cert: again.
postgresql-common (154ubuntu1) を設定しています ...
Adding user postgres to group ssl-cert

Creating config file /etc/logrotate.d/postgresql-common with new version
Building PostgreSQL dictionaries from installed myspell/hunspell packages...
Removing obsolete dictionary files:
initctl: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: 接続を拒否されました
runlevel:/var/run/utmp: そのようなファイルやディレクトリはありません
invoke-rc.d: policy-rc.d denied execution of start.
ureadahead (0.100.0-16) のトリガを処理しています ...
postgresql-server-dev-9.3 (9.3.15-0ubuntu0.14.04) を設定しています ...
postgresql-9.3 (9.3.15-0ubuntu0.14.04) を設定しています ...
Creating new cluster 9.3/main ...
  config /etc/postgresql/9.3/main
  data   /var/lib/postgresql/9.3/main
  locale ja_JP.UTF-8
FATAL:  could not create shared memory segment: 関数は実装されていません
DETAIL:  Failed system call was shmget(key=1, size=48, 03600).
child process exited with exit code 1
initdb: removing contents of data directory "/var/lib/postgresql/9.3/main"
Error: initdb failed
Error: could not create default cluster. Please create it manually with

  pg_createcluster 9.3 main --start

or a similar command (see 'man pg_createcluster').
update-alternatives: /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) を提供するために 自動モード で /usr/share/postgresql/9.3/man/man1/postmaster.1.gz を使います
initctl: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: 接続を拒否されました
runlevel:/var/run/utmp: そのようなファイルやディレクトリはありません
invoke-rc.d: policy-rc.d denied execution of start.
postgresql (9.3+154ubuntu1) を設定しています ...
libc-bin (2.19-0ubuntu6.9) のトリガを処理しています ...
:~$ sudo apt-get install -y postgresql postgresql-server-dev-9.3
sudo: ホスト DESKTOP-ANEKSIA の名前解決ができません
パッケージリストを読み込んでいます... 完了0%
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
postgresql はすでに最新版です。
postgresql-server-dev-9.3 はすでに最新版です。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 10 個。
bontakun-mk2 commented 7 years ago

libpq5を単独インストールする前はPostgreSQLを再インストールしても以下依存エラーが出ていた

:~$ sudo apt-get install -y postgresql postgresql-server-dev-9.3
sudo: ホスト DESKTOP-ANEKSIA の名前解決ができません
パッケージリストを読み込んでいます... 完了0%
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
postgresql はすでに最新版です。
postgresql-server-dev-9.3 はすでに最新版です。
以下の問題を解決するために 'apt-get -f install' を実行する必要があるかもしれません:
以下のパッケージには満たせない依存関係があります:
 libpq-dev : 依存: libpq5 (= 9.3.15-0ubuntu0.14.04) しかし、インストールされようとしていません
 postgresql-9.3 : 依存: libpq5 (>= 9.1~) しかし、インストールされようとしていません
 postgresql-client-9.3 : 依存: libpq5 (>= 9.3.15) しかし、インストールされようとしていません
E: 未解決の依存関係です。'apt-get -f install' を実行してみてください (または解法を明示してください)。
bontakun-mk2 commented 7 years ago

*作業:そのほかのツールのインストール sudo apt-get install subversion git 問題なし

bontakun-mk2 commented 7 years ago

*作業:Rubyのインストール

ソースコードのダウンロード curl -O https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.3.tar.gz Rubyのビルド tar xvf ruby-2.2.3.tar.gz cd ruby-2.2.3 ./configure --disable-install-doc make sudo make install cd ..

bontakun-mk2 commented 7 years ago

configureが長い

bontakun-mk2 commented 7 years ago

Rubyとその後のbundlerのインストール問題なし

:~$ ruby -v
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]
:~$ sudo gem install bundler --no-rdoc --no-ri
Fetching: bundler-1.13.6.gem (100%)
Successfully installed bundler-1.13.6
1 gem installed
bontakun-mk2 commented 7 years ago

*作業:PostgreSQLの設定

Redmine用ユーザーの作成 sudo -u postgres createuser -P redmine

失敗する

$ sudo -u postgres createuser -P redmine
sudo: setresuid() [1000, 106, 1000] -> [-1, 0, -1]: 許可されていない操作です
:~$ less /etc/passwd
bontakun-mk2 commented 7 years ago

less /etc/passwdを見てみるとpostgresユーザは作られていた sudo -uがうまくいってないようなので、sudo -uが何をするのか調べる 結果そのユーザ権限で実行するとのことだったのでsuでそのユーザになってから実行 しかし今度は接続できないエラー

:~$ sudo su postgres
...
$ createuser -P redmine
Enter password for new role:
Enter it again:
createuser: could not connect to database postgres: could not connect to server: そのようなファイルやディレクトリはありません
        Is the server running locally and accepting
        connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
bontakun-mk2 commented 7 years ago

postgresが起動してないのだろうという事で調べるとやはり動いていない

:~$ ps aux|grep postgre
***     8793  0.0  0.0      0     0 ?        S     2432   0:00 grep --color=auto postgre

起動させようとすると別のエラー

:~$ sudo /etc/init.d/postgresql start
 * No PostgreSQL clusters exist; see "man pg_createcluster"
bontakun-mk2 commented 7 years ago

上記エラーで調べると以下が見つかる http://solutions4linux.blogspot.jp/2014/09/solving-no-postgresql-clusters-exist.html

createclusterを実行するも失敗

:~$ psql -V
psql (PostgreSQL) 9.3.15
:~$ sudo pg_createcluster 9.3 main --start
Creating new cluster 9.3/main ...
  config /etc/postgresql/9.3/main
  data   /var/lib/postgresql/9.3/main
  locale ja_JP.UTF-8
FATAL:  could not create shared memory segment: 関数は実装されていません
DETAIL:  Failed system call was shmget(key=1, size=48, 03600).
child process exited with exit code 1
initdb: removing contents of data directory "/var/lib/postgresql/9.3/main"
Error: initdb failed
bontakun-mk2 commented 7 years ago

少し前に見つけたBash on WindowsのISSUEとエラーメッセージが酷似 同件の模様 https://github.com/Microsoft/BashOnWindows/issues/61

bontakun-mk2 commented 7 years ago

*作業:上記ISSUEはまだ未解決の模様 PostgreSQLをあきらめ、Mysqlでの構築にトライ

bontakun-mk2 commented 7 years ago

上記ISSUEに情報提供も行う 現WindowsVer(build 14393.447)での報告はなし Insider Previewではなかったので、それに上げた後どうなっているか確認もできそう

Still unable to install postgres with build 14393.447:

$ LANG=C sudo pg_createcluster 9.3 main --start
Creating new cluster 9.3/main ...
  config /etc/postgresql/9.3/main
  data   /var/lib/postgresql/9.3/main
  locale C
FATAL:  could not create shared memory segment: Function not implemented
DETAIL:  Failed system call was shmget(key=1, size=48, 03600).
child process exited with exit code 1
initdb: removing contents of data directory "/var/lib/postgresql/9.3/main"
bontakun-mk2 commented 7 years ago

*作業:mysqlのインストール 今度は下記ページを参考にインストールを進める http://redmine.jp/guide/RedmineInstall/

gemでmysqlはインストールできた

:~$ sudo gem install mysql2
Fetching: mysql2-0.4.5.gem (100%)
Building native extensions.  This could take a while...
Successfully installed mysql2-0.4.5
Parsing documentation for mysql2-0.4.5
Installing ri documentation for mysql2-0.4.5
Done installing documentation for mysql2 after 1 seconds
1 gem installed
bontakun-mk2 commented 7 years ago

上記手順はrubyでmysqlを使うパッケージをインストールするだけで、 mysql自体がインストールされるわけではなかった

下記ページを参考にmysqlをインストール

bontakun-mk2 commented 7 years ago

このページをもとに最新のmysqlを調べると0.8まで上がっていた https://dev.mysql.com/get/mysql-apt-config_0.8.0-1_all.deb 変わっていて躓くと嫌なのでページに記載と同じもの(0.7.3)で進める

bontakun-mk2 commented 7 years ago

mysqlのインストールは問題なし mysqlへの接続後、データベースの作成などはRedmineの記述に従う

create database redmine character set utf8;
create user 'redmine'@'localhost' identified by 'my_password';
grant all privileges on redmine.* to 'redmine'@'localhost';
bontakun-mk2 commented 7 years ago

mysqlのインストール方法や使用方法の記載がないのでフィードバックしてもいいかも

bontakun-mk2 commented 7 years ago

sudo -u www-dataが使えないのでsudo suしようとしたが、 www-dataはログインできないので以下手順で回避した

:~$ mkdir redmine
:~$ svn co http://svn.redmine.org/redmine/branches/3.2-stable redmine
:~$ sudo cp -r redmine/* /var/lib/redmine/
:~$ sudo chown -R www-data /var/lib/redmine/
:~$ ls -l /var/lib/redmine/
合計 32
-rw-r--r-- 1 www-data root  241 11月 26 15:12 CONTRIBUTING.md
-rw-r--r-- 1 www-data root 3815 11月 26 15:12 Gemfile
...
bontakun-mk2 commented 7 years ago

bundle installもwww-dataアカウントで実行しないといけなかったので 一度ローカル(~/redmine)のまま構築する bundle installするとエラー発生

bontakun-mk2 commented 7 years ago
:~/redmine$ bundle install --without development test postgresql sqlite --path vendor/bundle
Please configure your config/database.yml first
Fetching gem metadata from https://rubygems.org/..........
Fetching version metadata from https://rubygems.org/..
Fetching dependency metadata from https://rubygems.org/.
Resolving dependencies...
Installing rake 11.3.0
Installing i18n 0.7.0
Installing json 1.8.3 with native extensions
Installing minitest 5.9.1
Installing thread_safe 0.3.5
Installing builder 3.2.2
Installing erubis 2.7.0
Installing mini_portile2 2.1.0
Installing rack 1.6.5
Installing mime-types-data 3.2016.0521
Installing arel 6.0.3
Installing public_suffix 2.0.4
Using bundler 1.13.6
Installing coderay 1.1.1
Installing concurrent-ruby 1.0.2
Installing htmlentities 4.3.1
Installing thor 0.19.1
Installing mimemagic 0.3.2
Installing net-ldap 0.12.1
Installing ruby-openid 2.3.0
Installing rbpdf-font 1.19.0
Installing redcarpet 3.3.4 with native extensions
Installing request_store 1.0.5
Installing rmagick 2.16.0 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    /usr/local/bin/ruby -r ./siteconf20161126-12719-sko1zu.rb extconf.rb
Cannot allocate memory - /usr/local/bin/ruby -r
./siteconf20161126-12719-sko1zu.rb extconf.rb 2>&1

Gem files will remain installed in
/home/kenji/redmine/vendor/bundle/ruby/2.2.0/gems/json-1.8.3 for inspection.
Results logged to
/home/kenji/redmine/vendor/bundle/ruby/2.2.0/extensions/x86_64-linux/2.2.0-static/json-1.8.3/gem_make.out

An error occurred while installing json (1.8.3), and Bundler cannot
continue.
Make sure that `gem install json -v '1.8.3'` succeeds before bundling.
bontakun-mk2 commented 7 years ago

gem installを手動実行するも失敗 sudoつけるとうまくいくが、再度bundle installで失敗する(エラー同じ)

~/redmine$ gem install json -v1.8.3
Fetching: json-1.8.3.gem (100%)
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /usr/local/lib/ruby/gems/2.2.0 directory.
:~/redmine$ sudo gem install json -v1.8.3
Building native extensions.  This could take a while...
Successfully installed json-1.8.3
Parsing documentation for json-1.8.3
Installing ri documentation for json-1.8.3
Done installing documentation for json after 2 seconds
1 gem installed
bontakun-mk2 commented 7 years ago

Ruby2.3.3を使用してやり直すと上記エラーは発生せずうまくいった https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.3.tar.gz

bontakun-mk2 commented 7 years ago

*作業:Redmineの初期設定と初期データ登録 bundle exec rake generate_secret_token RAILS_ENV=production bundle exec rake db:migrate RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data

bontakun-mk2 commented 7 years ago

*作業:手順を進める前に、以下の動作確認を実施

  1. WEBrickによるwebサーバを起動して、インストールができたかテストしてください: http://redmine.jp/guide/RedmineInstall/

手順通りやるとエラーとなる $ ruby script/rails server webrick -e production script/rails no longer exists, please use bin/rails instead. メッセージ通りscript/railsをbin/railsに変更すると動作しWebからRedmineにアクセスできた $ ruby bin/rails server webrick -e production

:~/redmine$ ruby script/rails server webrick -e production
script/rails no longer exists, please use bin/rails instead.
:~/redmine$ ruby bin/rails server webrick -e production
/usr/local/lib/ruby/gems/2.3.0/gems/htmlentities-4.3.1/lib/htmlentities/mappings/expanded.rb:465: warning: key "inodot" is duplicated and overwritten on line 466
=> Booting WEBrick
=> Rails 4.2.7.1 application starting in production on http://localhost:3000
=> Run `rails server -h` for more startup options
=> Ctrl-C to shutdown server
[2016-11-27 11:08:11] INFO  WEBrick 1.3.1
[2016-11-27 11:08:11] INFO  ruby 2.3.3 (2016-11-21) [x86_64-linux]
[2016-11-27 11:08:11] INFO  WEBrick::HTTPServer#start: pid=14074 port=3000
^C[2016-11-27 11:09:24] INFO  going to shutdown ...
[2016-11-27 11:09:24] INFO  WEBrick::HTTPServer#start done.
Exiting
bontakun-mk2 commented 7 years ago

*作業:Passengerのインストール

sudo gem install passenger --no-rdoc --no-ri
sudo passenger-install-apache2-module --auto
passenger-install-apache2-module --snippet

:~/redmine$ passenger-install-apache2-module --snippet
LoadModule passenger_module /usr/local/lib/ruby/gems/2.3.0/gems/passenger-5.0.30/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /usr/local/lib/ruby/gems/2.3.0/gems/passenger-5.0.30
  PassengerDefaultRuby /usr/local/bin/ruby
</IfModule>
bontakun-mk2 commented 7 years ago

*作業:Apacheの設定 apache2ctl configtestの実行ができなかった 権限の問題と言われたのでsudoをつけたら実行できた ワーニングは出たが、調べると名前解決ができないだけで問題なさげ

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK
bontakun-mk2 commented 7 years ago

実際にWebページにアクセスすると以下のようなエラーとなる

We're sorry, but something went wrong.
We've been notified about this issue and we'll take a look at it shortly.

less /var/log/apache2/error.logを見る

[ 2016-11-27 14:37:44.7224 32287/7f5d966a0700 age/Cor/App/Implementation.cpp:304 ]: Could not spawn process for application /var/lib/redmine: An error occured while starting the web application.
  Error ID: db509b67
  Error details saved to: /tmp/passenger-error-RTPSXy.html
  Message from application: Address already in use - listen(2) (Errno::EADDRINUSE)
  /usr/local/lib/ruby/gems/2.3.0/gems/passenger-5.0.30/src/ruby_supportlib/phusion_passenger/request_handler.rb:303:in `listen'

エラーを吐いている個所のコードを見るとUNIX Socketを使おうとしている模様 Bash on WindowsのUNIX Socketは怪しかった記憶があるので、またもやBash on Windowsが原因ではと予想

bontakun-mk2 commented 7 years ago

別のワーニングも出ていたが、かきーページの内容で解決 http://stackoverflow.com/questions/36469527/installing-apache-on-windows-subsystem-for-linux

In order to eliminate this warning

Invalid argument: AH00076: Failed to enable APR_TCP_DEFER_ACCEP
Add this to the end of /etc/apache2/apache2.conf

AcceptFilter http none
bontakun-mk2 commented 7 years ago

PassengerでTCP Socketを使用するようにしたらRedmineが動することを確認できた

環境変数を設定すればTCPで動くかと思ったけど変わらなかったので ソースコードを直接編集した

:/usr/local/lib/ruby/gems/2.3.0/gems/passenger-5.0.30/src/ruby_supportlib/phusion_passenger$ diff request_handler.rb request_handler.rb.org
88,89c88
< #      @force_http_session = ENV["_PASSENGER_FORCE_HTTP_SESSION"] == "true"
<       @force_http_session = true
---
>       @force_http_session = ENV["_PASSENGER_FORCE_HTTP_SESSION"] == "true"
kou commented 7 years ago

おぉ。動いてよかったですね!

環境変数はどのように指定しましたか!? もし、これがPassengerの問題ならPassengerにフィードバックするのはどうですか!?(フィードバックチャンス!)

kou commented 7 years ago

おつかれさまでした! 次回は2017-01-28に開催なので、ぜひメンター(あるいは再ビギナー)で参加してみてください!