ここまででOSとApacheのインストールまで完了した。
続いてはデータベース。
MySQLはディストリビューション別にカスタマイズされてるので
バイナリを使った方がいい。
http://dev.mysql.com/downloads/mysql/Linux version : OpenSUSE 11.2eRuby : 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 を変えれば良い。
Ruby から MySQL を使えるようにする。
うちではいくつかのページで eRuby を使ってWebサイトからDBにアクセスするので、これが必要。
http://tmtm.org/downloads/mysql/ruby/Linux version : OpenSUSE 11.2mysql-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 も掛からないので、無理にプーリングを使う必要は無い。
これは本家からLinuxバイナリを持ってくる。
zypper で入れようとすると gij になってしまうので注意。
http://www.java.com/ja/download/manual.jspLinux version : OpenSUSE 11.2jre : 1.6.0_18
今回は JRE にした。
基本的にサーバマシンでは開発しないので、JDK を入れる必要は無い(はず)。
chmod a+x jre-6u18-linux-i586-rpm.bin sudo ./jre-6u18-linux-i586-rpm.bin
これはソースから。Pure Java なので、ダウンロードして適当な場所に置くだけ。
http://tomcat.apache.org/download-60.cgiLinux version : OpenSUSE 11.2Tomcat : 6.0.20
起動コマンドは以下。
$TOMCAT_HOME/bin/catalina.sh start $TOMCAT_HOME/bin/catalina.sh jpda start
リモートデバッグをしたい場合は後者にする。
Tomcat は1024以前のポートを使わないので、起動は一般ユーザでもOK。
TODO: 自動起動は、また今度。
これもダウンロードするだけ。
http://dev.mysql.com/downloads/connector/j/Linux version : OpenSUSE 11.2mysql-connector-java : 5.1.11
ダウンロードしたら、$TOMCAT_HOME/lib の下に jar を置く。
※ Tomcat5以前なら $TOMCAT_HOME/common/lib
Apache と Tomcat を連携するモジュール。
http://tomcat.apache.org/connectors-doc/Linux version : OpenSUSE 11.2tomcat-connectors : 1.2.28
インストール方法は以下。apxs が必要。これは Apache に付属している。
cd native ./configure --with-apxs=/usr/local/apache2/bin/apxs make sudo make install
まずは先頭に以下を記述する。
<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で動かすことで負荷分散もできる。
FTPサーバ。
http://www.proftpd.org/Linux version : OpenSUSE 11.2proftpd : 1.3.2c
./configure make sudo make install
あとは、以下で起動。
/usr/local/sbin/proftpd
これで、Unix ユーザのユーザ名とパスワードでFTP接続ができるようになった。
TODO: 自動起動は、また今度。
ソース管理。
Linux version : OpenSUSE 11.2subversion : 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: 自動起動は、また今度。