mod_rewriteの有効化
mod_rewriteはurlをリダイレクトする処理に使う。apache2では下記コマンドで有効化を行う。
# a2enmod rewrite
proxy_ajpの有効化
proxy_ajpはapacheとtomcatを連携する場合に使う。ポート80でのアクセスをtomcatの使うポート8080へ渡すために必要な設定。下記コマンドで有効化。
# a2enmod proxy_ajp
mod_rewriteはurlをリダイレクトする処理に使う。apache2では下記コマンドで有効化を行う。
# a2enmod rewrite
proxy_ajpはapacheとtomcatを連携する場合に使う。ポート80でのアクセスをtomcatの使うポート8080へ渡すために必要な設定。下記コマンドで有効化。
# a2enmod proxy_ajp
現在私が使用しているサーバにインストールされているdebianは、2.6.24-etchnhalf.1-486というカーネルでインストールされている。cpuがamd64のマシンで使った場合、メモリが900MB程しか認識されないという現象があった。そのマシンのカーネルをamd64用のものをインストールしてアップグレードをしようと試みたが、アップグレードして起動後の動作確認においてネットワーク関連などのハードウェアドライバの認識などが上手くいかなかった。仕方が無いので、こうなったら最初から、インストールディスクの作成からはじめようと思ってOSの再インストール作業をすることにした。また、この際だからHDDの容量も現在使用している80GBのものから1TBのものへ換装してからやることにする。
myisamchk: warning: Size of indexfile is: 3589517312 Should be: 1024
インデックスファイルのサイズが3億5千万・・・。修復はいつ終わるのだろうか。
DELL PowerEdge T105にLinux のDebianをインストールしてから大分経過したが、今頃になってメモリが2GB搭載しているはずなのに1GBしか認識されていないことに気づいた。
cdn-project:/usr/local/src/tg3-3.92n# cat /proc/meminfo MemTotal: 906400 kB MemFree: 626112 kB Buffers: 26468 kB Cached: 125360 kB SwapCached: 0 kB Active: 152808 kB Inactive: 110544 kB SwapTotal: 2650684 kB SwapFree: 2650684 kB Dirty: 8 kB Writeback: 0 kB AnonPages: 111544 kB Mapped: 39940 kB Slab: 8572 kB SReclaimable: 4248 kB SUnreclaim: 4324 kB PageTables: 1376 kB NFS_Unstable: 0 kB Bounce: 0 kB CommitLimit: 3103884 kB Committed_AS: 570956 kB VmallocTotal: 122564 kB VmallocUsed: 3440 kB VmallocChunk: 118904 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 4096 kB
トータルで利用できるのが906.4MBとなっている。2GB利用できるつもりでマシンをチューニングしていたため道理でパフォーマンスが悪いと思っていた。今現在のインストールされているDebianは、
cdn-project:/usr/local/src/tg3-3.92n# uname -a Linux cdn-project.net 2.6.24-etchnhalf.1-486 #1 Mon Sep 8 05:28:59 UTC 2008 i686 GNU/Linux
となっている。というわけでamd64のDebianをインストールすることを検討。
ユーザビリティとは、大まかに言って使い勝手のことを指す。ソフトウェアや電化製品や乗り物など、人がそれを使う場合に使いやすいと感じるか、使いにくいと感じるか、それを抽象的な概念として定義したものをユーザビリティと言う。多くの人が使い勝手が良いと感じるものをユーザビリティが優れているとされ、誰にも平等に使うことができるユニバーサルデザインと似た側面を持つ。
自宅サーバでxoopsをインストールしようとして、ウィザードに従って入力していくとデータベースサーバに接続できません
というページが現れる。ここで相当迷った。何故、接続ができないのかという理由が検討もつかなかったので。xoopsにつながらないのなら、普通のphpプログラムからはつながるかどうかというのをテストしてみることにした。testdb.phpとか適当なファイルを作成して、
<?php //データベース接続情報 $dbHost = "localhost"; $dbUser = "xoops"; $dbPass = "xoopspass"; $dbName = "xoops"; $db = mysqli_connect( $dbHost, $dbUser, $dbPass ); mysqli_query($db,"SET NAMES sjis"); mysqli_select_db( $db, $dbName ) or die("データベース" . $dbName . "との接続に失敗しました。"); $query = "SELECT aaa " . " FROM xoops"; $result = mysqli_query( $db, $query ) or die("データの読み込みに失敗しました:n " . mysqli_error( $db ) ); ?>
と書き込んでからブラウザでこのファイルにアクセスする。失敗すればエラーの原因がわかり、成功したらaaaなんていう列は無いと怒られる。それで表示テストをしてみたところ、案の定mysqlへの接続に失敗し、その原因はmysql.socketが見つからないというものだった。私の場合はmysqlをインストールした際にmy.cnfでsocketの場所を変更してmysqlを稼動させていた。しかし、phpの標準ではmysql.socketは/var/run/mysqld/mysql.sockになければならないことになっていた。(環境によっては変わる) この情報はphpinfo()によっても確認することができる。したがってやることはこのmysql.socketの正しい場所をphp.iniへ設定するということになる。
mysql.default_socket =
mysqli.default_socket =
という2箇所がphp.iniに存在するので、そこへ実際のmysql.socketがある場所を設定する。その後apacheを再起動して、ブラウザでphpinfo()を確認する。正しく変更がされていればmysqlへ接続ができるようになる。
その後、xoopsは無事インストールできたのだけれど、問題が発生した。このxoopsというcmsツール、一体何をしたらいいのかわからない。参考書が必要なくらいに難解となっている。高機能掲示板を作りたいだけなのだけれど、これほど覚えることが多いと参ってしまう。javaで自作した方が長期的に見た場合マシかと思ってしまう・・・。
cdn-project:/home/nakahira# apt-get install php5 パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています... 完了 以下の特別パッケージがインストールされます: libapache2-mod-php5 php5-common 提案パッケージ: php-pear 以下のパッケージが新たにインストールされます: php5 以下のパッケージはアップグレードされます: libapache2-mod-php5 php5-common アップグレード: 2 個、新規インストール: 1 個、削除: 0 個、保留: 93 個。 2629kB のアーカイブを取得する必要があります。 展開後に 160kB のディスク容量が解放されます。 続行しますか [Y/n]? y 取得:1 http://ftp.jp.debian.org etch/main libapache2-mod-php5 5.2.0-8+etch13 [2413kB] 取得:2 http://ftp.jp.debian.org etch/main php5-common 5.2.0-8+etch13 [214kB] 取得:3 http://ftp.jp.debian.org etch/main php5 5.2.0-8+etch13 [1048B] 2629kB を 8s で取得しました (304kB/s) (データベースを読み込んでいます ... 現在 88898 個のファイルとディレクトリがインストールされています。) libapache2-mod-php5 5.2.0-8+etch11 を (.../libapache2-mod-php5_5.2.0-8+etch13_i386.deb で) 置換するための準備をしています ... libapache2-mod-php5 を展開し、置換しています... php5-common 5.2.0-8+etch11 を (.../php5-common_5.2.0-8+etch13_i386.deb で) 置換するための準備をしています ... php5-common を展開し、置換しています... 未選択パッケージ php5 を選択しています。 (.../php5_5.2.0-8+etch13_all.deb から) php5 を展開しています... php5-common (5.2.0-8+etch13) を設定しています ... libapache2-mod-php5 (5.2.0-8+etch13) を設定しています ... Forcing reload of web server (apache2)... waiting ..... php5 (5.2.0-8+etch13) を設定しています ...
apacheの設定ファイルにphpの情報を更新して再起動もしてくれた模様。次はphpの動作チェック。apacheの公開ディレクトリにphpの環境情報を表示させるphpファイルを作成する。
cdn-project:/home/nakahira# cd ./htdocs/ cdn-project:/home/nakahira/htdocs# vi ./test.php
viで編集して保存する。次はブラウザでそのファイルを表示してみる。
何の苦労もせずに表示させることができた。デフォルトの状態で各オプションが有効か無効かということがわからないが、特にphpに重い処理をさせるというわけではないのでこのままとする。必要があれば、後日チューニングをする、ということで良いだろう。しかし、肝心のmysql関連の情報が見当たらない。apt-getで単なるインストールしただけではダメであるらしい。php-mysqlをインストールする。
cdn-project:/home/nakahira/htdocs# apt-get install php5-mysql パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています... 完了 以下のパッケージが新たにインストールされます: php5-mysql アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 93 個。 64.9kB のアーカイブを取得する必要があります。 展開後に追加で 193kB のディスク容量が消費されます。 取得:1 http://ftp.jp.debian.org etch/main php5-mysql 5.2.0-8+etch13 [64.9kB] 64.9kB を 0s で取得しました (82.7kB/s) 未選択パッケージ php5-mysql を選択しています。 (データベースを読み込んでいます ... 現在 88899 個のファイルとディレクトリがインストールされています。) (.../php5-mysql_5.2.0-8+etch13_i386.deb から) php5-mysql を展開しています... php5-mysql (5.2.0-8+etch13) を設定しています ...
apacheを再起動してもう一度phpinfoを表示させてみたらmysqlの項目が現れた。