minimize

ここまででOSとApacheのインストールまで完了した。
続いてはデータベース。

MySQL

MySQLはディストリビューション別にカスタマイズされてるので
バイナリを使った方がいい。

http://dev.mysql.com/downloads/mysql/
Linux version : OpenSUSE 11.2
eRuby : 1.6.2

Platform で SuSE を選択。Enterprice Server しか選択肢が無いので、そちらにする。
server, devel, client をそれぞれダウンロード。
あとはrpmでインストール。

sudo rpm -ivh MySQL-server-community-5.1.42-0.sles11.i586.rpm

これでサーバ起動までいく。
忘れずに root のパスワードを設定しておく。

/usr/bin/mysqladmin -u root password 'new-password'

メモ。
rpm でインストールした場合、インストール場所を確認するコマンドは以下。

rpm -ql MySQL-server-community-5.1.42-0.sles11.i586.rpm

これで、インストールされたファイルが以下のようにずらっと表示される。

/etc/init.d/mysql
/etc/logrotate.d/mysql
/etc/my.cnf
...

init.d にも入ったようだ。これでOS再起動時にMySQLは自動で立ち上がる。

しかし、/etc/my.cnf はファイルが存在しない。
デフォルトでは作成されないらしいので、必要ならば自分で作る。
ユーザ毎に設定ファイルを作りたい場合などは ここ を参照。

ちなみにうちの設定は以下。

/etc/my.cnf

[mysqld]
default-character-set=utf8
relay-log=moon-relay-bin
log-bin=moon-bin
skip-innodb
server-id=2

デフォルトの character-set は utf8 にしておいた方がいい。
そちらの方が JDBC との連動も良い。

デフォルトリポジトリの場所は /var/lib/mysql/ なので
変えたい場合は /etc/init.d/mysql に記述されている datadir を変えれば良い。

mysql-ruby

Ruby から MySQL を使えるようにする。
うちではいくつかのページで eRuby を使ってWebサイトからDBにアクセスするので、これが必要。

http://tmtm.org/downloads/mysql/ruby/
Linux version : OpenSUSE 11.2
mysql-ruby : 2.8.1

ruby extconf.rb --with-mysql-config
make
sudo make install

ちなみに、RubyからMySQLにアクセスするコードは以下のような感じ。

sql = Mysql.new("HOSTNAME", "USERNAME", "PASSWORD", "DATABASE_NAME")
row = sql.query('select * from access order by number desc limit 1').fetch_hash
cnt = row['number'].to_i
sql.close

MySQL ではDB接続に 1ms も掛からないので、無理にプーリングを使う必要は無い。

Java

これは本家からLinuxバイナリを持ってくる。
zypper で入れようとすると gij になってしまうので注意。

http://www.java.com/ja/download/manual.jsp
Linux version : OpenSUSE 11.2
jre : 1.6.0_18

今回は JRE にした。
基本的にサーバマシンでは開発しないので、JDK を入れる必要は無い(はず)。

chmod a+x jre-6u18-linux-i586-rpm.bin
sudo ./jre-6u18-linux-i586-rpm.bin

Tomcat

これはソースから。Pure Java なので、ダウンロードして適当な場所に置くだけ。

http://tomcat.apache.org/download-60.cgi
Linux version : OpenSUSE 11.2
Tomcat : 6.0.20

起動コマンドは以下。

$TOMCAT_HOME/bin/catalina.sh start
$TOMCAT_HOME/bin/catalina.sh jpda start

リモートデバッグをしたい場合は後者にする。

Tomcat は1024以前のポートを使わないので、起動は一般ユーザでもOK。
TODO: 自動起動は、また今度。

MySQL JDBC

これもダウンロードするだけ。

http://dev.mysql.com/downloads/connector/j/
Linux version : OpenSUSE 11.2
mysql-connector-java : 5.1.11

ダウンロードしたら、$TOMCAT_HOME/lib の下に jar を置く。
※ Tomcat5以前なら $TOMCAT_HOME/common/lib

mod_jk

Apache と Tomcat を連携するモジュール。

http://tomcat.apache.org/connectors-doc/
Linux version : OpenSUSE 11.2
tomcat-connectors : 1.2.28

インストール方法は以下。apxs が必要。これは Apache に付属している。

cd native
./configure --with-apxs=/usr/local/apache2/bin/apxs
make
sudo make install

httpd.conf

まずは先頭に以下を記述する。

<IfModule !mod_jk.c>
  LoadModule jk_module "/usr/local/apache2/modules/mod_jk.so"
</IfModule>
JkWorkersFile /usr/local/apache2/conf/workers.properties

workers.properties の内容は以下のようにする。

worker.list=ajp13

worker.ajp13.type=ajp13
worker.ajp13.host=localhost
worker.ajp13.port=8009

先頭にworker名の一覧を記述する。
上の例では一つだけだが、もし Tomcat を2台以上立ち上げている場合はカンマ区切りで複数書く。
あとは worker 毎に type, host, port を書く。
複数 worker の場合は host, port が異なるようにしておく。

もちろんこれは起動している Tomcat のポート番号(Connectorの方)に合わせる必要がある。

$TOMCAT_HOME/conf/server.xml

<Server port="8005" shutdown="SHUTDOWN">
  <Service name="Catalina">
    <Connector port="8080" protocol="HTTP/1.1" redirectPort="8443" />
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
  </Service>
</Server>

上の Connector はHTTP接続(スタンドアロンモード)の場合に使うもので
下の Connector はAJP接続の場合に使う。
もしTomcatアプリにHTTP接続せず、全てApache(AJP)経由で接続するのだったら
上の方はコメントアウトにしても良い。

最後に httpd.conf に、Apache -> Tomcat へと連動するパスを指定する。

JkMount /limyweb-diary ajp13
JkMount /limyweb-diary/* ajp13

このように書くと、

http://HOST/limyweb-diary/a/b

というアクセスがApacheに来ると、それをAJP経由でTomcatにつなぐ。つまり、

http://HOST:8080/limyweb-diary/a/b

へアクセスしたのと同じ挙動にすることができる。

複数のTomcatを立ち上げて別々のWebアプリを動かすこともできるし、
同一のWebアプリを複数のTomcatで動かすことで負荷分散もできる。

proftpd

FTPサーバ。

http://www.proftpd.org/
Linux version : OpenSUSE 11.2
proftpd : 1.3.2c

./configure
make
sudo make install

あとは、以下で起動。

/usr/local/sbin/proftpd

これで、Unix ユーザのユーザ名とパスワードでFTP接続ができるようになった。

TODO: 自動起動は、また今度。

Subversion

ソース管理。

Linux version : OpenSUSE 11.2
subversion : 1.6.6

今回は zypper で。

sudo zypper install subversion
svnserve -d

これで、Unixパスがそのまま svn パスになって svnサービスが起動する。
つまり、/var/svn/repository へ配置したリポジトリに
svn://HOST/var/svn/repository でアクセスできる。

svnserve -d -r /var/svn

上のようにすると、このディレクトリが基準ディレクトリになる。
つまり、svn://HOST/repository でアクセスできるようになる。

TODO: 自動起動は、また今度。

[コメント(0)]