今まで考えないようにしてきたPHP4と5の共存について、ちょっとだけ薄目開けて取り組んでみました。

とりあえず、何とかなりそうなCLI版の方のPHP4をインストール。(Debian etch)

colinux:~% sudo apt-get install php4-cli

PHP5もインストール。

colinux:~% sudo apt-get install php5-cli

pagerみたいにalternativesが使えれば簡単に切り替えられるはず。

colinux:~% sudo update-alternatives --display php
php - status is manual.
 link currently points to /usr/bin/php4
/usr/bin/php4 - priority 40
 slave php.1.gz: /usr/share/man/man1/php4.1.gz
/usr/bin/php5 - priority 50
 slave php.1.gz: /usr/share/man/man1/php5.1.gz
Current `best' version is /usr/bin/php5.

つかえた。

colinux:~% sudo update-alternatives --set php /usr/bin/php4
colinux:~% php -v
PHP 4.4.2-1 (cli) (built: Jan 18 2006 12:33:46)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies

CLIに関しては安心した。でもapacheモジュールの方は・・・?

mod_php4をインストール

colinux:~% sudo apt-get install libapache2-mod-php4

そしてmod_php5をインストール

colinux:~% sudo apt-get install libapache2-mod-php5
パッケージリストを読みこんでいます... 完了
依存関係ツリーを作成しています... 完了
<strong>以下のパッケージは「削除」されます:
  libapache2-mod-php4</strong>
以下のパッケージが新たにインストールされます:
  libapache2-mod-php5
アップグレード: 0 個、新規インストール: 1 個、削除: 1 個、保留: 1 個。
2341kB 中 0B のアーカイブを取得する必要があります。
展開後に追加で 2081kB のディスク容量が消費されます。
続行しますか [Y/n]?

えー削除かよー。 etchのapache2では各モジュールのconfが/etc/apache2/mods-availableディレクトリにはいって、/etc/apache2/mods-enabledディレクトリからそっちへシンボリックリンクを張ると有効になるって感じになってるらしい。

colinux:~% ls /etc/apache2
README        conf.d   httpd.conf  mods-available  ports.conf       sites-enabled
apache2.conf  envvars  magic       mods-enabled    sites-available  ssl
colinux:~% ls /etc/apache2/mods-available
actions.load      cgid.load        imap.load        <strong>php5.load</strong>           suexec.load
asis.load         dav.load         include.load     proxy.conf          unique_id.load
auth_anon.load    dav_fs.conf      info.load        proxy.load          userdir.conf
auth_dbm.load     dav_fs.load      ldap.load        proxy_connect.load  userdir.load
auth_digest.load  deflate.load     mem_cache.load   proxy_ftp.load      usertrack.load
auth_ldap.load    disk_cache.load  mime_magic.conf  proxy_http.load     vhost_alias.load
cache.load        expires.load     mime_magic.load  rewrite.load
cern_meta.load    ext_filter.load  <strong>php4.conf</strong>        speling.load
cgi.load          file_cache.load  <strong>php4.load</strong>        ssl.conf
cgid.conf         headers.load     <strong>php5.conf</strong>        ssl.load
colinux:~% ll /etc/apache2/mods-enabled
合計 0
lrwxr-xr-x  1 root root 36 2005-12-12 23:06 cgi.load -&gt; /etc/apache2/mods-available/cgi.load
<strong>lrwxr-xr-x  1 root root 37 2006-02-20 00:38 php5.conf -&gt; /etc/apache2/mods-available/php5.conf
lrwxr-xr-x  1 root root 37 2006-02-20 00:38 php5.load -&gt; /etc/apache2/mods-available/php5.load</strong>
lrwxr-xr-x  1 root root 40 2005-12-11 18:22 userdir.conf -&gt; /etc/apache2/mods-available/userdir.conf
lrwxr-xr-x  1 root root 40 2005-12-11 18:22 userdir.load -&gt; /etc/apache2/mods-available/userdir.load

自分の手でシンボリックリンク張ったり消したりするしかないのかな? なんか仕組みがありそうな気がする!

Zくんバレンタインデーシリーズ

zkun-val-1.png

zkun-val-2.PNG

zkun-val-3.PNG

zkun-val-4.PNG

zkun-val-5.PNG

Manpage of LOGGER

logger はシステムログにエントリを作成する。 logger は syslog(3) システムログモジュールのシェルコマンドインターフェースを提供する。

ちょうど簡単なスクリプト中で、 「大したもんじゃないから独自にログ吐くのもなんかキモイなぁ」 と思ってたところ。

簡単にsyslogに吐けるコマンドがあるとは知りませんでした。

#!/bin/sh

MOUNT_POINT='/'
USE_BORDER=90

df | while read LINE; do
    USE=`echo $LINE | awk '{print $5}' | sed s/%//`
    MOUNT=`echo $LINE | awk '{print $6}'`

    if [ $MOUNT = $MOUNT_POINT ] && [ $USE -gt $USE_BORDER ]; then
        rm -f /tmp/*.cache && logger -it cache_clean "$MOUNT used ${USE}%. cache file was deleted." 
    fi
done

ルートパーテーションが90%以上になったら/tmp/*.cache削除のスクリプト。

fakemac:~% sudo tail -n1 /var/log/messages
Feb 17 11:09:02 fakemac cache_clean[25376]: / used 90%. cache file was deleted.

この地味な気持ち良さ、誰かに届け!

社内でrails勉強会。(聞く側)

前回のruby勉強会に続いて尋常じゃなく面白く、ためになりました。 こんな楽しい勉強会が参加者3人とはもったいない。

CEFA::Blog – set user idとsticky bit

UNIXについてのテキストを作成している同僚から標記の話題が出たのでメモです。走り書きみたいな感じなのでワケが判らない文章になるかも。詳しく知りたい方はman chmodを実行する事をお勧めします。

UNIXのパーミッションset user idとsticky bitについていままで見た中で一番判りやすい説明な気がしました。

safariをちょろっとみてたら、

Ubuntu Hacks: Tips & Tools for Humanizing Linux (Hacks)

ちょwwwUbuntu Hackswwwwwww オライリーからそんなマニアックなの出てんのかよ。全然話聞かないよ! これは怪しい、おれが知らないだけで世間では大流行?ということで調べてみました。まず、は“Ubuntu Linux”これが何て読むのかわからねーんだよ!

はてなダイアリー – Ubuntu Linuxとは

Debianをベースにしたディストリビューションの一つ

  • ふりがな:うぶんつりなっくす

なるほど、うぶんつ。人の名前?

Ubuntu-この新しいLinuxディストリビューションはちょっと違う – ZDNet Japan

Ubuntuのこの哲学は、他のLinuxディストリビューションに対してよく聞かれる不満を解消するものだ。なかでも以下の点はとくに重要といえる:

  • 定期的なリリーススケジュール
  • 一定したメンテナンス期間(この場合は18カ月)
  • 無償で利用できること

Ubuntu LinuxはDebianベースのデスクトップ向けディストリビューションだそうです。Debianとの重要な違いは ”定期的なリリース”と“デスクトップ向けにインストールCDやパッケージが手っ取り早い状態になってること”なようです。基本的にDebianでも一手間かければ同じ状態になる感じだそうです。

Debian最高!でも、

デスクトップで使うには軽く面倒・・・ → CentOS行こか!

って人ニーズってこと!? それと個人/趣味使用ならカスタマイズが醍醐味!もありだけど社内のOSとして導入なんつー場合にはこっちの方が良さそう。大抵のDebianパッケージはそのまま動くらしいです。

InformationWeek | Google | Google Confirms Using Ubuntu Linux, Won’t Say Why | 1 31, 2006

Google Inc. on Tuesday confirmed that it is using Ubuntu desktop Linux technology internally, but remained tightlipped about its purpose.

Googleが社内でUbuntuをデスクトップで利用?じわじわ来てんのかな!?

FrapprJapan PHP Users Groupのとこをみてて気づいたんですが、

beatcraft.png

ちょwww離宮wwwwwwwww うそつけwwww

変数の状態を表示するdBugの紹介 – HotPHPPER News

きれいなprint_r()系の奴。PEAR Var_Dumpとかと違って気になったのはresource型も展開してるとこ。どうやってるんだろ。

switch(get_resource_type($var)) {
    case "fbsql result":
    case "mssql result":
    case "msql query":
    case "pgsql result":
    case "sybase-db result":
    case "sybase-ct result":
    case "mysql result":
        <strong>$db=current(explode(" ",get_resource_type($var)));</strong>
        $this-&gt;varIsDBResource($var,$db);
        break;
    case "gd":
        $this-&gt;varIsGDResource($var);
    break;
    case "xml":
        $this-&gt;varIsXmlResource($var);
        break;
    default:
        echo get_resource_type($var).$this-&gt;closeTDRow();
        break;
}

なるほど・・・。

resouce型一覧に無いから勘だけど、

*** dBug.php.bk 2006-02-15 07:55:27.000000000 +0900
--- dBug.php    2006-02-15 07:55:10.000000000 +0900
***************
*** 262,267 ****
--- 262,268 ----
                        case "sybase-db result":
                        case "sybase-ct result":
                        case "mysql result":
+                       case "sqlite result":
                                $db=current(explode(" ",get_resource_type($var)));
                                $this-&gt;varIsDBResource($var,$db);
                                break;

とかしたらsqliteもいけそ。

Kazuho@Cybozu Labs: mod_webdev

mod_webdev は、一言で言うと、条件つき mod_rewrite です。特殊なクッキーを伴ったリクエストについてのみ、ファイル名を書き換えることで、開発者が開発中のファイルをテストすることができます。

気味が良いツール。(そんな言葉あるのか知らんが) なんか何でも一から自分の頭で考える人感がしますよ。 そういう人は信頼できるなーって思いました。

何かしら本がないとトイレ(大)入れない。

今日は急な便意でしょうがなかったとはいえ、GDBハンドブックでは間が持たない・・・。

GDBハンドブック
  • GDBハンドブック
  • オライリージャパン(2005-09)
  • (著)アーノルド ロビンス
  • (原著)Arnold Robbins
  • (翻訳)千住 治郎
  • 定価:¥ 1,260
  • 新品価格:¥ 1,260
  • 中古価格:¥ 960
  • ASIN:487311246X