GitLab5.4をCentOS6.4にインストールする。(2)

さて、前回からの続き。・・・忘れたw。次、何するんだっけ?

GitLabのインストール

いよいよ、GitLabのインストール。
基本的にここを見ながら進めていきます・・・が、分からんわwww

https://github.com/gitlabhq/gitlabhq/blob/master/doc/install/installation.md

# su - git
$ cd /home/git
$ git clone https://github.com/gitlabhq/gitlabhq.git gitlab

Initialized empty Git repository in /home/git/gitlab/.git/
remote: Counting objects: 54488, done.
remote: Compressing objects: 100% (18934/18934), done.
remote: Total 54488 (delta 39937), reused 48920 (delta 34852)
Receiving objects: 100% (54488/54488), 22.59 MiB | 505 KiB/s, done.
Resolving deltas: 100% (39937/39937), done.

$ cd gitlab
$ git checkout 5-4-stable

Branch 5-4-stable set up to track remote branch 5-4-stable from origin.
Switched to a new branch '5-4-stable'

GitLabの設定やらディレクトリの作成やら

そしたら、とりあえず設定ファイルのexampleを基にして設定ファイルを作成してちょこちょこっと修正、
・・・と思ったけど、gitlab.ymlを眺めてみたら、なんかデフォルトで大丈夫そう?

$ pwd

/home/git/gitlab

$ cp ./config/gitlab.yml.example ./config/gitlab.yml


参考にしているページに従ってディレクトリを作成したりchownしたりchmodしたり。

$ chown -R git log/
$ chown -R git tmp/
$ chmod -R u+rwX log/
$ chmod -R u+rwX tmp/
$ mkdir /home/git/gitlab-satellites
$ mkdir tmp/pids/
$ mkdir tmp/sockets/
$ chmod -R u+rwX tmp/pids/
$ chmod -R u+rwX tmp/sockets/
$ mkdir public/uploads
$ chmod -R u+rwX public/uploads/


さて、ここで「はて」と悩む。
unicornって何?ガンダムサイコフレーム発動していいの?

$ cp config/unicorn.rb.example config/unicorn.rb


あと前回gitの設定もしたけど、以下もやっとく。

git config --global core.autocrlf input

GitLabで使用するDB(MySQL)に関する設定


次はGitLabで使用するDBに関する設定ファイルを作成して修正。

$ cp ./config/database.yml.mysql ./config/database.yml
$ vi ./config/database.yml

#
# PRODUCTION
#
production:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: gitlabhq_production
  pool: 10
#  username: root
#  password: "secure password"
  username: gitlab
  password: gitlab
  # host: localhost
  # socket: /tmp/mysql.sock

#
# Development specific
#
development:
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: gitlabhq_development
  pool: 5
#  username: root
#  password: "secure password"
  username: gitlab
  password: gitlab
  # host: localhost
  # socket: /tmp/mysql.sock
  # socket: /tmp/mysql.sock

# 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: &test
  adapter: mysql2
  encoding: utf8
  reconnect: false
  database: gitlabhq_test
  pool: 5
#  username: root
#  password:
  username: gitlab
  password: gitlab
  # host: localhost
  # socket: /tmp/mysql.sock

Gemのインストール

次の難関。つ〜か、分からん。charlock_holmesって何だ?
シャーロック・ホームズ?探偵?コナンじゃないの?
とりあえずインストールする。

$ su - root
# cd /home/git/gitlab
# gem install charlock_holmes --version '0.6.9.4'

Fetching: charlock_holmes-0.6.9.4.gem (100%)
Building native extensions.  This could take a while...
ERROR:  Error installing charlock_holmes:
        ERROR: Failed to build gem native extension.

        /usr/local/bin/ruby extconf.rb
checking for main() in -licui18n... no
which: no brew in (/usr/lib/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
checking for main() in -licui18n... no


 ***************************************************************************************
 *********** icu required (brew install icu4c or apt-get install libicu-dev) ***********
 ***************************************************************************************
 *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=/usr/local/bin/ruby
        --with-icu-dir
        --without-icu-dir
        --with-icu-include
        --without-icu-include=${icu-dir}/include
        --with-icu-lib
        --without-icu-lib=${icu-dir}/lib
        --with-icui18nlib
        --without-icui18nlib
        --with-icui18nlib
        --without-icui18nlib


Gem files will remain installed in /usr/local/lib/ruby/gems/1.9.1/gems/charlock_holmes-0.6.9.4 for inspection.
Results logged to /usr/local/lib/ruby/gems/1.9.1/gems/charlock_holmes-0.6.9.4/ext/charlock_holmes/gem_make.out


・・・そして躓く。くぅ。。。
メッセージを見た限りlibicu-devが無いから・・・か?
ならば!

# yum list | grep libicu

libicu.i686                             4.2.1-9.1.el6_2                  @anaconda-CentOS-201303020136.i386/6.4
libicu-devel.i686                       4.2.1-9.1.el6_2                  base
libicu-doc.noarch                       4.2.1-9.1.el6_2                  base


なんだこれ?とりあえずlibicu-develをインストールしてから再度ホームズをインストールする。

# gem install charlock_holmes --version '0.6.9.4'

Building native extensions.  This could take a while...
Successfully installed charlock_holmes-0.6.9.4
1 gem installed
Installing ri documentation for charlock_holmes-0.6.9.4...
Installing RDoc documentation for charlock_holmes-0.6.9.4...


うまくいったっぽい。
続けてbundle install。bundle exec。これ、かなり時間掛かった。。。ちょっと風呂入ってくる。。。

# bundle install --deployment --without development test postgres unicorn aws
# chmod 666 /home/git/gitlab/log/production.log
# su - git
$ cd /home/git/gitlab
$ bundle exec rake gitlab:setup RAILS_ENV=production

:
:
:
Administrator account created:

login.........admin@local.host
password......5iveL!fe

GitLabのサービス起動設定


とりあえずサービス起動用のシェルをどっかから持ってきて起動させてみる。

# curl --output /etc/init.d/gitlab https://raw.github.com/gitlabhq/gitlab-recipes/5-0-stable/init.d/gitlab
# chmod +x /etc/init.d/gitlab
# service gitlab start

・・・なんか動いてる気がしない。つ〜か動いてない。とりあえず放置。。。

Apacheで動かすための設定。

なんかよく分からんが、Apacheが/home/git以下にアクセスできるように以下を実施。

# usermod -G git apache
# chmod g+rX /home/git

次にバーチャルホストの設定。
httpd.confにGit用のバーチャルホストを定義する。そしてhttpdの再起動。

# cd /etc/httpd/conf
# vi httpd.conf

NameVirtualHost *:80

#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for requests without a known
# server name.
#
#
#    ServerAdmin webmaster@dummy-host.example.com
#    DocumentRoot /www/docs/dummy-host.example.com
#    ServerName dummy-host.example.com
#    ErrorLog logs/dummy-host.example.com-error_log
#    CustomLog logs/dummy-host.example.com-access_log common
#

    ServerName www.mngsvr01.gitlab
    DocumentRoot /home/git/gitlab/public

# service httpd restart

とりあえずクライアントPCのhostsファイルに上記で設定したバーチャルホストを書いとく。
クライアントPCがWindows7の場合、まずはメモ帳アイコンを右クリックして表示されるメニューから「管理者として実行...」を選択して起動する。
そしてC:\Windows\System32\drivers\etc\hostsを開いて以下のように追記。

192.168.0.11            www.mngsvr01.gitlab    # VirtualHost for GitLab

さて、これでクライアントPCから以下のURLでアクセスしてみる。

http://www.mngsvr01.gitlab/

そしたら、こうだぁぁぁ!

やっと画面出た!泣けた!!
もうサービス起動しない時は諦めかけた。
あと巷じゃnginx連携ばかりでApache連携分からなくて諦めかけた。


いやぁ、良かった。
次はGitLabの使い方、つ〜かそもそもGitの使い方って・・・てな感じで。


ん?
ふとGitLabのGitHub覗いてみたんだが・・・

https://github.com/gitlabhq/gitlabhq/tree/6-0-stable


あれ?6.0-stableって・・・


うわぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁぁ

GitLab5.4をCentOS6.4にインストールする。(1)

さて、全然プログラミングはしていないわけだが、ソース管理について考えてみる。


会社じゃあMS系はVisualSourceSafe(以後VSS)が中心なんだけど、WEBアプリ、特にJavaもVSSで管理してたり統一感は取れてるかもしれんが開発時の利便性がかなり損なわれている感じ。
で、ここ数年はWEB関係ではEclipseを使うようにしてソースコードSubversionで管理するようにして、Eclipse上でソースの取得やコミットするようになって・・・ってこれ、世間じゃ普通なはずなのに結構今まで普通じゃなかった。


でも、ようやく会社でもSubversionが浸透してきたわけだけど・・・


今、gitだよね?
ソーシャルコーディングって感じでgithub?こいつも流行ってるよね?
それなのにSubversionでいいの?いや、いいんじゃね?って話もあるが・・・

俺たちは新しいことを知ってしまったら試さずにはいられない!そんな人種なんだ!いやそうでありたい!


つ〜わけで、gitだな、gitで行くんだな、gitらーーーーーーーーーーーーぶっ、なんだな!


つ〜わけで、GitLabをインストールする。するしかない。ラブ[lab|love]だし。

GitLabとは?

さて、そもそもGitLabってなんなのよ?ってことだが、つまるところソース管理のエンジンとなるgitのフロントエンドって感じでしょうか?


色々なサイトを調べてみると「GitHubのようなサービスをクローズドな環境に構築できるようにする」ものみたい。


しかもRuby on Railsで実装されてます、って・・・Redmine同様インストールに時間が掛かるのでしょうか。仕方ないですね、ラブ[lab|love]ですから。

インストール前の準備

Redmineをインストールしたおかげでepelリポジトリ追加したりRubyインストールしたりってのはもう不要なんだけどRedisってやつをインストールしなきゃいけないっぽい。


Redisというのはデータ構造サーバーとも呼ばれるインメモリデータベースの1つらしい。
・・・まったく分からん。memcachedみたいなもん?・・・まぁmemcachedも、あんま分からんがwww

とりあえずインストールしてみる。そして自動起動も設定。そしてサービス起動。

# yum install redis
# chkconfig redis on
# service redis start


GitLab用のユーザーを作成しておく必要があるらしいので、以下で作成。

# useradd git


GitLab上で登録されるユーザーはすべて上記で作成したgitユーザーのsshキーで管理されるっぽい。
なので、予め作成しておく必要がある。

# su - git
$ cd /home/git/
$ mkdir .ssh
$ touch .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys
$ chmod 700 .ssh


gitのほうも設定しておく。

$ git config --global user.name "GitLab"
$ git config --global user.email "gitlab@localhost"

GitLab shellのインストール


で、GitLab shellをインストールする。これってGitoliteの代わりに出てきたやつですか?
ちなみにチェックアウトのバージョン番号はGithubのgitlab-shellで確認。

https://github.com/gitlabhq/gitlab-shell

$ git clone https://github.com/gitlabhq/gitlab-shell.git
$ cd gitlab-shell/
$ git checkout v1.7.0
$ git checkout -b v1.7.0
$ cp config.yml.example config.yml
$ vi config.yml
$ ./bin/install
$ exit
#

MySQLの設定

MySQLはインストール出来ているんだけど、my.cnfにbind-addressは設定しておく必要があるっぽい。

# vi /etc/my.cnf

[mysqld]
bind-address = 127.0.0.1


# service mysqld restart


そんでもってDBを作成。

# mysql -u root -p
> CREATE USER 'gitlab'@'localhost' IDENTIFIED BY 'gitlab';
> CREATE DATABASE IF NOT EXISTS `gitlabhq_production` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER ON `gitlabhq_production`.* TO 'gitlab'@'localhost';
> \q

・・・今日はここまで。


うわ〜、なんか調べながら実行してるからGitLabのインストールまでいってねーよwww


予想通りだ。。。はぁぁぁ。。。ラブって辛い。。。

テキストエディター考(Windows版)

今日はフリーのテキストエディターについて色々考えてみます。
しかもWindows環境で。


さて、Windowsでエディターといえば、秀丸が有名です。
タブ化で複数起動しても扱いやすいしカスタマイズも出来て何よりマクロも使える。
検索も正規表現使えるしGREPでファイル検索できるし便利。


でもね、結構お高いわけです。


で、フリーで使いやすいテキストエディターを探しています。
俺が求めるテキストエディター、それは使いやすいこと。


でもそれじゃ一言過ぎなので、色々とテキストエディターに求める要件を考えてみる。

テキストエディターとして、俺的に必要なもの

テキストエディターに求めるものは以下だろうか。どうだろうか。

  • フリーソフト
  • タブ化
  • 文字色、背景色などのカスタマイズ、特に黒背景で文字色白な設定可能
  • 複数文字コード対応だったり
  • 拡張子により単語が強調表示されたり
  • 検索機能で正規表現使えたり
  • GREPも使えたり
  • 矩形選択可能だったり
  • 対応する括弧が強調表示されたり飛べたり
  • マクロは案外使わないけど、あるとやっぱり便利
  • デザインがそれなりにかっこよかったりシンプルだったり


普段よく使ってる機能から要件を導き出すとこんなところか。


ちなみにこの記事を書くにあたって使用しているエディターはTeraPad
これもフリーですが機能的にはかなり揃っている。
ただし、このソフトだけではタブ化できないことが、自分的にマイナス。


で、探してみるとサクラエディタがいけそうか?

サクラエディタと出会う

とりあえずダウンロードして試してみる。

http://sakura-editor.sourceforge.net/


2013年7月28日時点で最新はVer.2.1.0.0みたいです。
でもインストーラパッケージはVer.2.0.5.0みたい。
なのでまずはインストーラパッケージでインストールしてその後Ver.2.1.0.0のexeで上書き、かな。


でもなんかVer.2.1.0.0のインストーラ?これ。。。

http://sourceforge.net/projects/sakura-editor/files/sakura2-installer/2.1.0.0/sinst2-1-0-0.exe/download


やってみる。
なんかインストーラを起動したらavast!が起動してマルウェアなんじゃねぇ?みたいなことを言ってきた。


気にしない。


セットアップ中の追加タスクの選択で「Quick Launchにアイコン作成」「起動時に常駐」以外をチェック。
インストールが終わって起動。
メニューバーにある目玉のアイコンが少し気に入らない。


早速調べる。

1.タブ化

設定の「タブバーを表示」でタブは表示された。
一度サクラエディタを終わらせて再び起動してもタブは表示された。OK。

2.色カスタマイズ

どこで設定するのかよく分からん。タイプ別設定か?
設定の「タイプ別設定」のスクリーンタブで「設定の名前」がテキストに対して、カラータブの画面に移動して・・・ここか。
とりあえず背景色を黒、文字色を白にしたいんだが面倒。
ここでインポート、エクスポートのボタンがあることに気付いた。
多分世の中に設定が落ちてるはず。


・・・30分経過。見つからん。止めた。自分で設定する。


でも出来ることは分かった。OK。

3.複数文字コード対応。

ファイル保存時に文字コードセットを指定できることも分かった。
改行コードも指定できる。OK。

4.強調表示

2の色カスタマイズで拡張子による単語の強調表示も出来そう。
ただし、2とこの4は時間がかかりそうだぜ。。。

5.検索機能で正規表現の使用

問題なし。OK。
ただし、秀丸と比べると若干貧弱な気がする。

6.GREP

問題なし。OK。

7.矩形選択

[Shift]+[F6]で矩形選択モードに突入。これ良いわ!秀丸より良いよ。

8.対応括弧強調表示とか

なんかデフォで括弧の前にカーソル置くと対応する括弧の色が変わるな。OKだぜ。
ちなみに対応括弧にジャンプするには[Ctrl]+[[]または[Ctrl]+[]]。

9.マクロとか

色々充実してる。
以下からいくつか入れてみる。

http://www.geocities.jp/maru3128/sakura_bbs.html

例えば選択行をコメント、またはコメント解除。
拡張子で制御している部分があるので、定義している拡張子意外だとUndefinedって文字列が補完されるっていう微妙な動作はあるけど・・・いけるぜ!

10.デザインとか

初めて起動してすぐにツールバーの目玉のアイコン(検索系機能)と目が合った。。。
駄目だ。。。これだけは駄目だ。。。。。



このほかにもチェックする項目はあるんだろうけど、それは使いながら気付いて、そして慣れていくもんだろう。


というわけで、Windowsではサクラエディタを使ってみようかな。
Linuxでは・・・やっぱりvimかな。

JenkinsをCentOS6.4にインストールする。

さて、とりあえずJenkinsぅぅぅ!
インストールしてみた。やたら簡単。

rootユーザーになって以下のコマンドでOK!

# wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
# rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
# yum install jenkins

そんでもって設定!
まずはJenkinsで使用するポートを!開けるっ!!

# vi /etc/sysconfig/iptables

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
 *filter
INPUT ACCEPT [0
0]
FORWARD ACCEPT [0
0]
OUTPUT ACCEPT [0
0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 18080 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT


# service iptables restart

そしてさっき開けたポート番号をJenkinsに割り当てるために設定ファイルを修正修正ぃぃぃ〜

# vi /etc/sysconfig/jenkins

# JENKINS_PORT="8080"
JENKINS_PORT="18080"


そして!Jenkinsを起動!Redmineとぜんぜん違う!早い!

# service jenkins start


ついでに自動起動されるように設定。

# chkconfig jenkins on


そしたら以下のURLにアクセス!

http://[サーバーのIPアドレス]:18080/

そしたら、こうだ!

Yes!

今回は簡単だったわ。。。

次はどうするかな。。。

Redmineを設定する

Redmineのインストールは完了した!・・・っぽい。


で、まずは見た目!見た目が大事!
というわけで、テーマを入手&インストールする。

テーマの入手&インストール。それとデフォ設定のロード

テーマはfarend fancyテーマってやつをインストールしよう。
インストール方法は、Redmineのインストールディレクトリで以下のコマンドを実行する。

# git clone git://github.com/farend/redmine_theme_farend_fancy.git public/themes/farend_fancy


そしてhttpdを再起動。

# service httpd restart


で、次はログイン!
http://[サーバーのIPアドレス]/redmine/でアクセスして表示される画面の右上のログインリンクをクリックするとログイン画面が表示されるのでadmin/adminでログイン。

そして次は管理。
するとこんな画面が。



とりあえず「デフォルト設定をロード」ボタンをクリックする。


そして設定!
設定リンクをクリック後、表示タブをクリック。
そこで、テーマをFarend fancyに、規定の言語をJapanese(日本語)に、ユーザー名の表示書式をAdmin Redmineに変更して「保存」ボタンをクリック。

すると・・・



アイコンが表示されたり。
フォントがなんだか綺麗になったり。


テンションちょっと上がってきた。。。


さて次は設定->全般でホスト名を[サーバーのIPアドレス]/redmineに、添付ファイルとリポジトリの円コーディングをutf-8,cp932,euc-jpとして保存。


そして次。メール通知!

ちょいとハマったメール通知

さて、メール通知のリンクをクリック。



・・・あれ?
・・・まぁ、確かに。configuration.ymlちゃんと設定してねぇし。


さて、SMTPサーバーどうしようw
SMTPサーバーを自前で立ち上げようと思って色々調べてみたけど、面倒臭い!
用語がよう分からん!
FQDNって何?!DQNの親戚?!


というわけで、GoogleさんのSMTPサーバーを利用させてもらいましょ。


ここで、WEBブラウザーから離れてまたTeraTermからサーバーに接続。
/var/lib/redmine/configの下のconfiguration.ymlを編集してSMTPサーバーの設定をしちゃう。

# vi /var/lib/redmine/config/configuration.yml

default:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      enable_starttls_auto: true
      address: "smtp.gmail.com"
      port: 587
      domain: "smtp.gmail.com"
      authentication: :plain
      user_name: "****.*******.****@gmail.com"
      password: "*************"

rmagick_font_path: /usr/share/fonts/ipa-pgothic/ipagp.ttf


※上記の赤字部分はRedmine用に取得したGMailアカウントのメアドとパスワードね。


保存した後はApacheを再起動。
・・・つ〜か、Redmineの再起動ってApacheの再起動でいいんだよな?

# service httpd restart


そしたらWEBブラウザーに戻ってadminでログイン。
メール通知を試す前に管理のユーザーリンククリックでadminに対してメアドを設定。
それからメール通知へ。



お、俺の願いが通じたか?


送信元メールアドレスの欄は適当に。
そしてメールのヘッダまたはフッタに適当に入力。
そして、画面右下の「テストメールを送信」リンクをクリック!


・・・これ、実はかなりたくさんやった。configuration.ymlどう書いたらいいか分からんかった。結構ハマりまくり。


で、ようやくadminに設定したメアドにメール来た!
やっと俺の願いが通じた!


あとはadmin以外に開発ユーザーってことでdevuser01を追加。



あと残ってるのはトラッカーとチケットのステータスだけど・・・これは開発やりながら考えよっと。




とりあえず、こんなところかな。


次は・・・Jenkinsあたりかな。

Redmine2.3.2をCentOS6.4にインストールする。

以下のページを参考にしてRedmineをインストールしたんだが、ところどころ違う箇所があるのでメモっておく。

http://blog.redmine.jp/articles/2_3/installation_centos/

SELinuxを無効にする

/etc/sysconfig/selinuxを開き編集して再起動

# vi /etc/sysconfig/selinux

SELINUX=enforcing
↓
SELINUX=disabled

# reboot now


以下のコマンドでSELinuxが無効(Disabled)になっていることを確認。

# getenforce

iptablesでHTTPを許可

ファイアウォールのデフォ値では外部からHTTPに接続できん。
つ〜わけでiptablesの設定を以下の通りに変更してサービス再起動。

# vi /etc/sysconfig/iptables

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
 *filter
INPUT ACCEPT [0
0]
FORWARD ACCEPT [0
0]
OUTPUT ACCEPT [0
0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT

# service iptables restart

EPELリポジトリの登録

Rubyのビルドに必要なlibyamlをyumでインストールできるようにするために、EPEL(エンタープライズ Linux 用の拡張パッケージ)リポジトリを追加する。
まず以下ののURLを開く。

http://dl.fedoraproject.org/pub/epel/6/i386/

で、2013年7月14日時点でepel-release-6-8.noarchとなっているリンクURLをコピー。
その後は以下のコマンドで、CentOSyumリポジトリにEPELを追加する。

# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

必要なパッケージをインストール

以下のコマンドで既にインストール済みの確認する。

# yum grouplist

すると開発ツールは既にインストール済みなので飛ばす。

で、RubyとPassengerのビルドに必要なヘッダファイルなどを以下のコマンドでインストール。

# yum install openssl-devel readline-devel zlib-devel curl-devel libyaml-devel

MySQLApacheはインストール済みなので飛ばす。
日本語フォントもインストール済みなので飛ばす。

あとはImageMagickのみ。

# yum install ImageMagick ImageMagick-devel

Rubyのインストール

RubyのオフィシャルサイトのダウンロードページからRuby 1.9.3の最新のソースコードをダウンロードする。

# mkdir soft
# cd soft
# wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p448.tar.gz


ダウンロードしたRubyのtarballを展開してconfigureを実行後、ビルドとインストール。
これが結構時間かかる。。。

# tar zxvf ruby-1.9.3-p448.tar.gz
# cd ruby-1.9.3-p448
# ./configure --disable-install-doc
# make
# make install


インストール後、rubyコマンドを実行して正しくインストールされたことを確認

# ruby -v
ruby 1.9.3p448 (2013-06-27 revision 41675) [i686-linux]


続いてRedmineが使用するGemを一括インストールするためのツール、bundlerをインストール。

# gem install bundler --no-rdoc --no-ri

MySQLの設定

まず以下のようにしてMySQLのデフォルトキャラセットをutf8に設定する。

# vi /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

character-set-server=utf8

innodb_file_per_table
query-cache-size=16M

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[mysql]
default-character-set=utf8

その後、以下の通りMySQLを再起動および自動起動設定。

# service mysqld restart
# chkconfig mysqld on


以下のようにしてMySQLの設定が反映されているか確認。

# mysql -uroot
mysql> show variables like 'character_set%';

 +--------------------------+----------------------------+
 | Variable_name            | Value                      |
 +--------------------------+----------------------------+
 | character_set_client     | utf8                       |
 | character_set_connection | utf8                       |
 | character_set_database   | utf8                       |
 | character_set_filesystem | binary                     |
 | character_set_results    | utf8                       |
 | character_set_server     | utf8                       |
 | character_set_system     | utf8                       |
 | character_sets_dir       | /usr/share/mysql/charsets/ |
 +--------------------------+----------------------------+

8 rows in set (0.00 sec)


そしてそのままrootユーザーのパスワード変更・匿名ユーザー削除を実施。

mysql> use mysql;
mysql> update user set password=password('********') where user = 'root';
mysql> delete from user where user = '';
mysql> flush privileges;
mysql> exit;


※ ******** の部分は任意のパスワードを設定するんだよ。


続いて、Redmine用データベースとユーザーの作成する。

# mysql -uroot -p
Enter password:
mysql> create database db_redmine default character set utf8;
mysql> grant all on db_redmine.* to user_redmine identified by '********';
mysql> flush privileges;
mysql> exit;


※ ******** の部分は任意のパスワードを設定するんだよ。

Redmineのインストール

ようやくRedmineをインストール。
なんと本日2013年7月15日、Ver.2.3.2がリリースされとりました。
こいつをゲットして解凍します。

# cd /root/soft/
# wget http://rubyforge.org/frs/download.php/77023/redmine-2.3.2.tar.gz
# tar zxvf redmine-2.3.2.tar.gz

解凍したRedmineを/var/lib/redmineとして配置する。

# mv redmine-2.3.2 /var/lib/redmine


次にRedmineからデータベースへ接続するための設定を記述したファイルを作成する。
一応サンプルがあるので、そいつをコピーして作成。

# cd /var/lib/redmine/config
# cp database.yml.example database.yml
# vi database.yml

production:
  adapter: mysql2
  database: db_redmine
  host: localhost
  username: user_redmine
  password: ********
  encoding: utf8


※ ******** の部分はさっきRedmine用データベースとユーザー作成で設定したパスワードだよ。


ちなみにviで複数行をコメントアウトしたい場合は、

  1. コメントアウトしたい先頭行でCtrl+vで矩形選択モードへ
  2. j(下)でコメントアウトしたい最終行へ
  3. :を押す
  4. :'<,'>って出てるので、s/^/#/って押す。

これでOK。べ、べんり〜


続いてRedmineからメールサーバへ接続するための設定や日本語フォントファイルのパスを記述した設定ファイルを作成する。

# cp configuration.yml.example configuration.yml
# vi configuration.yml

production:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      enable_starttls_auto: true
      address: "smtp.gmail.com"
      port: 587
      domain: "smtp.gmail.com" # 'your.domain.com' for GoogleApps
      authentication: :plain
      user_name: *****.*****@gmail.com
      password: ********

  rmagick_font_path: /usr/share/fonts/ipa-pgothic/ipagp.ttf


※正直、ここは後で設定するんで適当です。


bundlerを使用してRedmineで使用するGemをインストール。

# cd /var/lib/redmine
# bundle install --without development test

Redmineの初期設定とデータベースのテーブル作成

Redmineのインストールディレクトリで以下のコマンドを叩いて、セッションデータ改竄防止用鍵の生成とテーブルを作成する。

# bundle exec rake generate_secret_token
# RAILS_ENV=production bundle exec rake db:migrate


後はPassengerのインストールやらApacheの設定やらが残ってるんだが、ちと休憩。
長ぇぇぇ。。。やべぇ、疲れた。。。


(休憩中)


さて、Redmineのインストールの続き。
ここからはhttpd周りの設定だす。

Passengerのインストール

Apache上でRedmineなどのRailsアプリケーションの実行に必要なPhusion Passengerをインストールする。

# gem install passenger --no-rdoc --no-ri


インストーラを実行してPassengerのApache用モジュールをインストールする。

# passenger-install-apache2-module


インストールが完了すると以下のように表示されるので、太字部分をコピーしておく。

                                                                                      • -
The Apache 2 module was successfully installed. Please edit your Apache configuration file, and add these lines: LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-4.0.8/buildout/apache2/mod_passenger.so PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-4.0.8 PassengerDefaultRuby /usr/local/bin/ruby After you restart Apache, you are ready to deploy any number of Ruby on Rails applications on Apache, without any further Ruby on Rails-specific configuration! Press ENTER to continue.

Apacheの設定

Apacheの設定にPassengerの設定を追加する。
ただし、Passengerの設定はApacheの設定ファイルhttpd.confとは別のファイルにまとめる。

# vi /etc/httpd/conf.d/passenger.conf

# Passengerの基本設定。
# passenger-install-apache2-module --snippet を実行して表示される設定を使用。
#
LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-4.0.8/buildout/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.9.1/gems/passenger-4.0.8
PassengerDefaultRuby /usr/local/bin/ruby

# Passengerが追加するHTTPヘッダを削除するための設定(任意)。
#
Header always unset "X-Powered-By"
Header always unset "X-Rack-Cache"
Header always unset "X-Content-Digest"
Header always unset "X-Runtime"

# 必要に応じてPassengerのチューニングのための設定を追加(任意)。
# 詳しくはPhusion Passenger users guide(http://www.modrails.com/documentation/Users%20guide%20Apache.html)を参照
PassengerMaxPoolSize 20
PassengerMaxInstancesPerApp 4
PassengerPoolIdleTime 3600
PassengerHighPerformance on
PassengerStatThrottleRate 10
PassengerSpawnMethod smart
RailsAppSpawnerIdleTime 86400
PassengerMaxPreloaderIdleTime 0


※赤字のところが、参考にしたサイトとは違うのです。


あとはApache自体のServerNameがまだ設定されていないので以下の通り設定。

# vi /etc/httpd/conf/httpd.conf

#ServerName www.example.com:80
ServerName mngsvr01:80


以下のコマンドでApacheの起動および自動起動の設定を実施

# service httpd start
# chkconfig httpd on

Apache上のPassengerでRedmineを実行するための設定

RedmineApache実行ユーザー・グループで読み書きできるようにオーナーを変更する。

# chown -R apache:apache /var/lib/redmine


さて、Redmineの実行のさせ方だが、このサーバーではRedmineだけでなく他にもアプリを動かしたいのでサブディレクトリでRedmineを実行させよう、そうしよう。
つ〜わけで、/var/www/htmlの下にRedmineのpublicへのシンボリックリンクを作成する。

# ln -s /var/lib/redmine/public /var/www/html/redmine


あと/etc/httpd/conf.d/passenger.confに以下を追加。

# vi /etc/httpd/conf.d/passenger.conf

RackBaseURI /redmine


設定後、Apacheを再起動する。

# service httpd configtest
# service httpd graceful


そして!
以下のURLにアクセス!

http://[サーバーのIPアドレス]/redmine/

そしたら、こうだ!



Yes!

よし、次回はRedmineの設定などを。。。

CentOS6.4をインストールする。(2)

さて、前回はメモリーが届いたところまで。
モリーを増設する。怖い。


ノートPCの裏のパネルを空けると、そこには空のメモリーソケットが。
斜め45度にメモリーをはめた後に水平に押し込む。


「カチッ」


はまった。。。なんか怖い。


外付けDVDドライブを付けてノートPCを起動。
起動時にF2を押してBIOS上でメモリーを確認すると・・・


1GB


に、認識してる。(うれし涙)
そしてインストーラーを起動。


あれ、テキストモードに入った。。。なんで。。。
とりあえずLanguage、KeyboardまでをJapanese、Jp106と選択して。。。
ここまでテキストモード。。。逃れられんのか。。。


しかし、ここでまたDisk Foundと出てGUIモードに!(うれし涙)


というわけで、以下のサイトを見てパッケージ選択。
何も考えない。何も悩まない。

http://www.obenri.com/_install_cent6/package1_cent6.html


そして選択したパッケージは以下の通り

WEBサービス
 PHPサポート(12/12)
 Webサーバー(20/20)
 Webサーブレットエンジン(/)
アプリケーション
 Emacs(4/4)
 TeXのサポート
 インターネットアプリケーション(8/8)
 インターネットブラウザ(3/3)
サーバー
 CIFSファイルサーバー(1/1)
 FTPサーバー(1/1)
 NFSファイルサーバー
 ディレクトリサーバー(6/6)
 ネットワークインフラストラクチャサーバー(15/15)
 ネットワークストレージサーバー(2/2)
 バックアップサーバー(2/2)
 プリントサーバー(5/5)
 識別管理サーバー(10/10)
 電子メールサーバー(10/10)
デスクトップ
 X Window System(10/10)
 グラフィカル管理ツール(16/16)
 デスクトップ(16/16)
 汎用デスクトップ(GNOMEデスクトップ)(49/49)
データベース
 MySQLデータベースサーバー(2/2)
 MySQLデータベース接続クライアント(5/5)
 PostgreSQLデータベースサーバー(7/7)
 PostgreSQLデータベース接続クライアント(7/7)
ベースシステム
 Javaプラットフォーム(0/1)
 Perlのサポート(5/12)
 コンソールインターネットツール(7/7)
 ディレクトリ接続クライアント(17/17)
 デバッグツール(18/18)
 ネットワークファイルシステムクライアント(5/6)
 ハードウェア監視ユーティリティ(1/4)
 パフォーマンスツール(8/14)
 ベース(116/116)
 大規模システムのパフォーマンス(5/6)
仮想化
 仮想化(2/2)
 仮想化クライアント(1/1)
 仮想化プラットフォーム(7/7)
言語
 日本語のサポート(6/6)
開発
 その他の開発(105/105)
 開発ツール(46/46)


インストール後、まずはネットワークの設定をする。
とりあえずIPアドレスを192.168.0.11に固定。


次にサービスを見てSSHが動いていることを確認。


で、実はクライアントPCをこの前中古で買った。
ノートPC。すなわちPanasonic Let's note、CF-T8FW1AJR。
Let's noteだらけ。


そのクライアントPCにTeraTermをインストール。

http://www.forest.impress.co.jp/library/software/utf8teraterm/


そしてTeraTermからサーバーへ接続。



接続できた。。。(うれし涙)


というわけで、OSのインストールは完了。


次回は・・・Redmineかな。