設定したことを忘れないように書いてあります。
まずは、phpgroupwareの公式ページからソースをもってくる。 インストールの詳細はそこにかいてあるので、主にVine 3.1に特化した部分のみ記載の方向で。
tarballからインストール。apache2のユーザーは、デフォルトのままなので、chown -R apache:apacheとした。 その後、postgres関係の postgresql、postgresql-server、php5-pgsqlをapt-getする。 php5-pgsqlをインストールしたら、sqlite3,php5-pdoがインストールされた。 もともと、php5と、postgresql-libはインストール済みだったが、依存性がありそう。
次に、postgressのインストールと初期化。方法は前回のと同じ。 起動したあと、自分にdbの作成権限の付与とphpgroupwareのユーザーを作成する。 phpgroupwareのパスワードは記念日とした。何をいっているかわからないと思うが俺にはわかるのだ。
$su - postgres -bash-2.05b$ createuser myaccount Shall the new user be allowed to create databases? (y/n) y Shall the new user be allowed to create more new users? (y/n) y CREATE USER -bash-2.05b$ createuser -P Enter name of user to add: phpgroupware Enter password for new user: Enter it again: Shall the new user be allowed to create databases? (y/n) n Shall the new user be allowed to create more new users? (y/n) n CREATE USER b$
次に、pg_hba.confとpg_ident.confを修正。場所は、/var/lib/pgsql/data/配下。と思ったけど、all allにたいしてtrustだったのでそのまま。 ちなみに、公式ページのインストール方法は間違ってないか?。phpgroupwareのあとに、phpgroupwareがもう一つ必要では?
続いてファイル管理などのディレクトリ作成。気分の問題だが、/var直下ではなく/var/libにした。
# mkdir -p /var/lib/phpgw/files/home # mkdir -p /var/lib/phpgw/files/img # chown -R apache:wheel /var/lib/phpgw/files/ # chmod -R 770 /var/lib/phpgw/file
apacheとpoundの設定にvertual hostを追加する。
準備完了と思いきや、phpはapache2から利用できるようになっていなかったため、php5-apache2をインストールしたところ、
#/etc/init.d/apache2 restart httpdを停止中: [失敗] httpdを起動中: [Tue Jun 20 21:53:46 2006] [crit] Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP. Pre-configuration failed [失敗] #
となってしまう。どうやら、スレッドセーフでは無いようだ。しかたがないので、workerではなく、preforkを使う。
# /sbin/update-alternatives --config apache2 There are 4 alternatives which provide `apache2'. Selection Alternative ----------------------------------------------- *+ 1 /usr/sbin/apache2.worker 2 /usr/sbin/apache2.prefork 3 /usr/sbin/apache2.threadpool 4 /usr/sbin/apache2.perchild Press enter to keep the default[*], or type selection number: 2 Using `/usr/sbin/apache2.prefork' to provide `apache2'.
今度は無事に起動した。phpgroupwareの設定をwebから行う。 ヘッダの設定をした後、コンフィギュレーションを実行すると
データベースが存在しません。 データベースの作成とアカウントに権限を与えます. PostgreSQLでデータベースを作成するには: postmaster の起動 [user@server user]# postmaster -i -D /home/[username]/[dataDir] 空のデータベース作成 - [user@server user]# createdb phpgroupware または、下記項目にDB管理者アカウント情報を設定することで、データベースを作成することもできます。
という画面になる。/var/lib/pgsql/data/postgresql.conf中の
#tcpip_socket = false
を
tcpip_socket = true
としなければならないようだ。再度設定すると、テーブルの作成画面が無事表示された。
旧サーバではmod_auth_mysqlでデータベース認証しており、今回もその設定で新サーバーに移行した。 だが、mod_auth_mysqlのディレクティブが変わっていたため、apacheが起動しなかった。下記に差異を記載。
旧 | 新 | コメント |
---|---|---|
AuthMySQLDB auth_db_name | Auth_MySQL_General_DB auth_db_name | 旧に相当する物もあるが、vertiual_host毎に設定するこちらが推奨。 |
AuthMySQLHost host_name | Auth_MySQL_Info host_name db_username db_password | |
AuthMySQLPassword db_password | ||
AuthMySQLUser db_username | ||
AuthMySQLCryptedPasswords On | Off | Auth_MySQL_Encryption_Types Crypt_DES | On|Off指定のディレクティブ残っているが、こちらが推奨。Crypt_DES以外にPlaintext,Crypt_MD5等が選択できる。On|Off形のディレクティブでは、Crypt_DESとなる。 |
AuthMySQLUserTable table_name_of_username&password | Auth_MySQL_Password_Table table_name_of_username&password | user_tableからpassword_tableに名前が変更されている。 |
AuthMySQLNameField field_name_of_username | Auth_MySQL_Username_Field field_name_of_username | 機能に変更はないが、アンダースコアでディレクティブが区切られている。 旧形式もあるが、新しくした方が良い? |
AuthMySQLPasswordField field_name_of_password | Auth_MySQL_Password_Field field_name_of_password | |
AuthMySQLGroupField field_name_of_group_table | Auth_MySQL_Group_Field field_name_of_group_table | |
AuthMySQLGroupTable group_table_name | Auth_MySQL_Group_Table group_table_name |
で、それがわかるまでいろいろと調査していたら、mysqlのdebian-sys-maintというユーザーアカウントがなくなってしまった。 仕方がないので、mysqlのrootアカウントで入ってdebian-sys-maintアカウントを再度作成する。
このアカウントがないと、reloadやシャットダウンができない。
mysqlのrootユーザーで入り、
mysql>\u mysql mysql>GRANT reload,shutdown ON *.* TO 'debian-sys-maint'@localhost IDENTIFIED BY PASSWORD 'PASSWORD' WITH GRANT OPTION;
として、ユーザーを作成する。PASSWORDは、/etc/mysql/debian.cnf 中の password=となっている部分をそのまま転記する。
タイトルに行き詰まってしまった。
会社のサーバーを更新するために、入れ替え用のサーバーを構築中。 このサーバーはSCSIディスクが3本入るのだが、ミラーリングでは奇数で美しくないし、ディスク容量ももったいない。
ということで、RAID-5で構成することにした。
インストールの方法は、前回と同じ。 /dev/sdaに通常にインストールして、/dev/sdbと/deb/sdcでRAID-5を作成し、/dev/sdaから/dev/mdへコピーする。 ただ今回は、debianで構築したため、raidtoolsではなく、mdadmでRAIDを構成した。
apt-getでmdadmをインストール。インストールスクリプトに対しては、自動起動:YES、デーモン通知:YES、通知先:rootとして設定。
mdadmでは、RAID-5を次のようにして設定。/dev/sdbと/dev/sdcでRAIDを構成し、1台をmissingと指定しておく。
mdadm --create /dev/md1 --level=5 --raid-devices=3 /dev/sdb2 /dev/sdc2 missing
つぎに、mdadm.confを作成。
echo 'DEVICE /dev/hd*[0-9] /dev/sd*[0-9]' > /etc/mdadm/mdadm.2006XXXX.conf mdadm --detail --scan >> /etc/mdadm/mdadm.2006XXXX.conf ln -sf /etc/mdadm/mdadm.2006XXXX.conf /etc/mdadm/mdadm.conf
で、ファイルシステム作成、コピー、liloの書き込み、リブートは、前回と同様 に進んで、完了。
ところが、カーネルを2.6系にリビルドしたら、liloが書き込めない。RAID-5には対応していないとメッセージが出る。 仕方がないので、一度RAIDを戻して、/bootのみRAID-1にして再作成。
まずは、RAID-5から/dev/sda1を外す。コマンドは、mdadm /dev/md0 --fail /dev/sda1 --remove /dev/sda1。 一度FAILに指定してからでないと、RAIDからは外せない。
fdiskで、当該のパーティションタイプをfdから83に戻し、mkfs -t ext3 /dev/sda1と再フォーマット。 適当な所にマウントしてコピーし、忘れずにliloを再度アップデートしてリブート。
mdadm -S /dev/md0として、/bootのRAIDを解除、
mdadm --create /dev/md0 --level=1 --raid-devices=2 --spare-devices=1 /dev/sdb1 /dev/sdc1 missing
してからmirrorで再作成。あとはさっきと同じようにRAIDを構成し、mdadm /dev/md0 -a /dev/sda1で/dev/sda1を/dev/md0に追加。 /dev/sdaはspareデバイスとして指定。作成状態を mdadm --detail /dev/md0 みるとこんな感じ。
/dev/md0: Version : 00.90.01 Creation Time : Mon Feb 20 18:42:01 2006 Raid Level : raid1 Array Size : 497856 (486.19 MiB 509.80 MB) Device Size : 497856 (486.19 MiB 509.80 MB) Raid Devices : 2 Total Devices : 3 Preferred Minor : 0 Persistence : Superblock is persistent Update Time : Mon Feb 20 18:52:36 2006 State : clean Active Devices : 2 Working Devices : 3 Failed Devices : 0 Spare Devices : 1 UUID : fa096455:9a2e92cd:1b3b4217:049e6348 Events : 0.277 Number Major Minor RaidDevice State 0 8 17 0 active sync /dev/sdb1 1 8 33 1 active sync /dev/sdc1 2 8 1 - spare /dev/sda1
全文検索システム Namazuが、(セキュリティ対応を除くと)1年9カ月ぶりにUpdateされた。 今回の個人的な目玉は、和布蕪(MeCab)の対応。
namazuを使っているシステムは事情により、Vine 2.6ベースで動いている。 根本的なupdateはできないので、Vine SeedからMeCab-0.81のSRPMをとってきてRPMを作成し、 インストール。先にMeCabをインストールしておかないと、namazuの作成時に検出されず、MeCabか利用できない。 namazuはVine 2.6に入っているnamazu-2.0.12のSRPMからnamazu2.specを借用して作成した。
ここまでは特に問題なくすんだが、namazu-2.0.15をいれようとすると、libnmz.so.3がphp4と依存関係にあると出てインストールできない。 新しいパッケージにはlibnmz.so.7しかないからだ。
仕方がないので、libnmz.so.3を退避してから、nodepsオプション付きでnamazuをupdateした。これで、MeCab対応のnamazuができたと喜んで試したが、いま一つ速度がでない。 MeCabのperl moduleをインストールしていないのが原因だった。 mecab-perl-0.81を、make / installしてから再度namazuのRPMを作成しインストールしたところ、kakasiの倍程度の速度となった。