Archive for the 'php' Category

CentOS:日本語入力できるようにする

yumのリポジトリを作成し、キーを登録する。

cd /etc/yum.repos.d
wget http://centos.karan.org/kbsingh-CentOS-Extras.repo
wget http://centos.karan.org/kbsingh-CentOS-Misc.repo
rpm --import http://centos.karan.org/RPM-GPG-KEY-karan.org.txt


yumでSCIM と Anthyをインストール
yum install anthy scim scim-anthy

システム設定入力メソッドを Anthy + SCIM へ切替える。
/usr/sbin/alternatives --config xinput-ja_JP

ここでサーバを再起動。
reboot

※今使っているVMwareイメージではブート状況の表示で日本語が四角くつぶれる。
ブートが進むと日本語表示されるようになるので気にしないことにする。

再起動してログインするとCtrl-Space(または半角/全角キー)でローマ字入力できるようになる。

※できない場合は入力メソッドでシステム設定に従う[SCIM]が選択されているか確認する。
システム>設定>他の個人設定>入力メソッド

php:Postfixで自動返信メール

メールを受信するサーバにメール受信用ユーザを登録する。

受信するメールアドレスは[ユーザ名]@ホスト名になります。

# adduser [ユーザ名]
# passwd [パスワード]

.forwardに転送設定を記述

/home/[ユーザ名]/.forward
register,”| /usr/bin/php /path/to/autoreply.php

.転送先はphpスクリプト。パイプでメール内容を渡している。

autoreply.php(返信処理の内容)はこんなふうになる。
require_once("Mail/mimeDecode.php"); //REARモジュール
//メールソースを標準入力から読み込み
$source = file_get_contents("php://stdin");
if(!$source) {
    return false;    // 読み込み失敗
}
 
//メール解析
$params['include_bodies'] = true;
$params['decode_bodies'] = true;
$params['decode_headers'] = true;
$decoder = new Mail_mimeDecode($source);
$structure = $decoder->decode($params);
 
// 送信者のメールアドレスを取得する
$from_address = mb_convert_encoding(mb_decode_mimeheader($structure->headers['from'])
                         ,mb_internal_encoding(), "auto");
このスクリプトを標準入力無しで起動すると

$source = file_get_contents(“php://stdin”);

のところで入力待ちになって処理が中断しますが、ヘッダさえもnullなメールを送ることは出来ないので多分気にしなくてもいいはず。

CentOS:memcachedをインストール

CentOs5.2のリポジトリにmemcachedは無いのでリポジトリを追加する。

cd /usr/local/src
wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
rpm -Uhv rpmforge-release-0.3.6-1.el5.rf.i386.rpm
mencachedを入れるのに必要なモジュールをインストールする。
たぶんこのあたりを入れておけばおっけーなはず。
yum install gcc
yum install memcached
yum install zlib-devel
yum install php-pecl-memcache

memcachedの設定は/etc/sysconfig/memcachedを編集する。
動かすだけならデフォルトのままでOK。
memcacheの起動
/etc/init.d/memcached start

サービスを自動起動にしておく。
chkconfig memcached on

テストスクリプト
<?php
    $cache = new Memcache;
    $key = 'cache_test';
    $cache->connect('localhost', 11211);
    if(!$cache->get($key)){
        // キャッシュの有効時間は15秒
        $cache->set($key, date('Y-m-d h:i:s'), MEMCACHE_COMPRESSED, 15);
    }
    echo $cache->get($key);
?>

php: Smartyのdate_formatで前のゼロを表示しない方法

Smartyのdate_formatで先頭に0をつけない月と日を出力するには、引数の書式指定部分にそれぞれ”-”(マイナス)を付ける。

{$mydate|date_format:'%-m:%-d'}
‘%m%d’なら’07/05′になる。
-をつけて’%-m:%-d’なら’7/5′になる。

php:PEAR phpunitのインストール

足りないPEARライブラリとphp-extensionを入れてから、phpunit/PHPUnitをインストール。

# pear install pear/Image_GraphViz
# pear install pear/Log
# yum install php-common
# yum install php-dom
# yum install php-pdo
# pear install phpunit/PHPUnit