FreeBSD

pukiwiki

  • 新規インストールだと問題ないですが、バックアップから復旧するときに毎回はまるポイント。
  • READMEには下記のパーミッション設定しか書かれてませんが、実際にはattach, backup, counter, diff, wiki配下のファイルも0666に変更しないと、更新時にエラーが起こる。
    4.  サーバ上のファイルおよびディレクトリのパーミッションを確認します。

        ディレクトリ   パーミッション
        attach         777	添付ファイル格納ディレクトリ
        backup         777	バックアップファイル格納ディレクトリ
        cache          777	キャッシュファイル格納ディレクトリ
        counter        777	カウンタファイル格納ディレクトリ
        diff           777	差分ファイル格納ディレクトリ
        image          755	画像ファイル
        image/face     755 	(画像ファイル)フェイスマーク  
        lib            755	ライブラリ
        plugin         755	プラグイン
        skin           755	スキン、CSS、JavaScirptファイル
        trackback      777	TrackBackファイル格納ディレクトリ
        wiki           777	データの格納ディレクトリ

        ファイル       パーミッション 転送モード
        *.php          644            ASCII
        cache/*        666            ASCII
        image/*        644            BINARY
        image/face/*   644            BINARY
        lib/*          644            ASCII
        plugin/*       644            ASCII
        skin/*         644            ASCII
        wiki/*         666            ASCII

ホームディレクト

  • 解説書を読むと、MySQL, PostgreSQL, Subversion, wwwなどは/home配下に専用のディレクトリを作って運用することを前提にしている物が多い。
  • 長らくこの構成が気に入らなかったので、須く$HOME配下に置いていたのだが、単純にtarでバックアップしても、MySQLInnoDBPostgreSQLは復旧できるわけで花井にもかかわらず、それなりの容量を食われてしまう等のデメリットが目立ってきたので、これを機に/home/mysql, /home/pgsql, /home/svnに引っ越してもらうことにしました。/home/wwwだけはどうにも受け入れがたいので、却下ですが。(--ゞ
  • MySQLコンパイルやっている間に、PostgreSQLの方はあっけなく引っ越し完了してしまった。
  • こんなに巨大なソフトなんだっけ?MySQLって。

MySQL

基本方針
  • MySQL4.1.x の最新版
  • デフォルト言語設定は ujis
  • テーブルは MyISAM, InnoDB
  • ndbclusterは面白そうだが、とりあえず見送り
  • 常駐するので、プロセスサイズを小さくする設定
ports の場合
  • /usr/ports/databases/mysql41-server
 make WITH_CHARSET=ujis   \
      WITH_NDB
 make install
ソースからつくる場合
./configure --help

/stand/sysinstall
mysql:*:88:88:MySQL Daemon:/home/mysql:/sbin/nologin

./configure --prefix=/usr/local          \
            --with-tcp-port=3306         \
            --with-mysqld-user=mysql     \
            --with-charset=ujis          \
            --with-extra-charsets=all    \
            --with-csv-storage-engine    \
            --localstatedir=/home/mysql
make
make install

cp support-files/my-small.cnf /etc/my.cnf
cd /home/mysql
/usr/local/bin/mysql_install_db --user=mysql
/usr/local/bin/mysqld_safe --user=mysql &
結果

topしてみたら、以前と比べて半減していた。

  PID USERNAME PRI NICE  SIZE    RES STATE    TIME   WCPU    CPU COMMAND
  244 mysql      2   0 30996K 14776K poll     0:11  0.00%  0.00% mysqld

PostgreQLの引っ越し手順

  • バックアップ
pg_dumpall > db.out
pg_ctl stop
  • データベース作成
mkdir /home/pgsql
mkdir /home/pgsql/data
chown -R pgsql:pgsql /home/pgsql

su pgsql
initdb --encoding=EUC_JP --no-locale -D /home/pgsql/data
  • postmaster 起動
su pgsql -c '/usr/local/bin/pg_ctl start -o -i -D /home/pgsql/data '
   または
su pgsql
/usr/local/bin/pg_ctl start -o -i -D /home/pgsql/data
   または
リブート
  • 復元
$ su
# su pgsql
$ psql -e template1 < db.out  # フルダンプからの復元

Subversion

  • 明日以降。

Backup

  • 明日以降。