apache2の設定備忘録

mod_rewriteの有効化

mod_rewriteはurlをリダイレクトする処理に使う。apache2では下記コマンドで有効化を行う。


# a2enmod rewrite

proxy_ajpの有効化

proxy_ajpはapacheとtomcatを連携する場合に使う。ポート80でのアクセスをtomcatの使うポート8080へ渡すために必要な設定。下記コマンドで有効化。


# a2enmod proxy_ajp

Debian amd64用のインストールCDを作成

前口上

現在私が使用しているサーバにインストールされているdebianは、2.6.24-etchnhalf.1-486というカーネルでインストールされている。cpuがamd64のマシンで使った場合、メモリが900MB程しか認識されないという現象があった。そのマシンのカーネルをamd64用のものをインストールしてアップグレードをしようと試みたが、アップグレードして起動後の動作確認においてネットワーク関連などのハードウェアドライバの認識などが上手くいかなかった。仕方が無いので、こうなったら最初から、インストールディスクの作成からはじめようと思ってOSの再インストール作業をすることにした。また、この際だからHDDの容量も現在使用している80GBのものから1TBのものへ換装してからやることにする。

“Debian amd64用のインストールCDを作成”の続きを読む

mysqlのテーブルがクラッシュした

myisamchk: warning: Size of indexfile is: 3589517312      Should be: 1024

インデックスファイルのサイズが3億5千万・・・。修復はいつ終わるのだろうか。

DELL PowerEdge T105 のDebianのメモリが1GBしか認識しない

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をインストールしようとして、ウィザードに従って入力していくとデータベースサーバに接続できませんというページが現れる。ここで相当迷った。何故、接続ができないのかという理由が検討もつかなかったので。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で自作した方が長期的に見た場合マシかと思ってしまう・・・。

linux debian にphpをインストール

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-in.gif何の苦労もせずに表示させることができた。デフォルトの状態で各オプションが有効か無効かということがわからないが、特に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の項目が現れた。

MSI Titan700 の詳細 (biosアップデート編)

MSI Titan700のbiosのバージョンを現在の3.0から3.1へアップデートする。アップデートする理由は、現在のbiosのバージョンではディスプレイの解像度1680×1050に対応してなく、biosのバージョンを3.1にアップデートすると大画面解像度に対応できるようになるため。解像度に対応させるためにbiosのバージョンをあげる必要があるというのはよくわからないが、とにかく大解像度に対応させるためにはbiosのバージョンを上げるしかない。逆に、大解像度に対応させる必要がなければ、biosのバージョンは上げる必要はない。

“MSI Titan700 の詳細 (biosアップデート編)”の続きを読む