2009年2月27日金曜日

長すぎるコマンド

RHEL で * を使うと「コマンドラインが長すぎます」となってしまうことがあります。
なんで?と思っていたらなんと * の展開はシェルがやっているんですね@@

Windows に比べてコマンドラインの上限が長いので喜んでいたのですが意外な落とし穴が…
う~ん、困ったもんだ><;

2009年2月21日土曜日

ZipArchive

またまたはまりました><;

ZipArchive がファイル数1000を越えると open でエラーになる…
テスト環境ではOKだったのに本番ではダメ…

違いはOSの bit 数。32bit 版だと OK なのですが、64bit 版だとエラーになるらしいです。
http://bugs.php.net/bug.php?id=40873

5.2.1以降は直っているらしいのですが RHEL5.2 は 5.1.6 @@やっぱ RHEL 使えないよ~。

2009年1月29日木曜日

re2c のインストール

[root@xx ~]# mv /etc/yum.repos.d/Dag.repo.bak /etc/yum.repos.d/Dag.repo
[root@xx ~]# yum install re2c
[root@xx ~]# mv /etc/yum.repos.d/Dag.repo /etc/yum.repos.d/Dag.repo.bak

PDO-OCI

[root@xx ~]# cd /usr/local/src/
[root@xx src]# wget http://pecl.php.net/get/PDO_OCI-1.0.tgz
[root@xx src]# tar xvfz PDO_OCI-1.0.tgz
[root@xx src]# cd PDO_OCI-1.0
[root@xx PDO_OCI-1.0]# phpize
[root@xx PDO_OCI-1.0]# ./configure --with-pdo-oci=instantclient,/usr,10.2.0.4
[root@xx PDO_OCI-1.0]# make
[root@xx PDO_OCI-1.0]# make install
[root@xx PDO_OCI-1.0]# echo 'extension=pdo_oci.so' >> /etc/php.d/pdo.ini
[root@xx PDO_OCI-1.0]# apachectl restart

■php.ini の設定
[root@xx ~]# vi /etc/php.d/pdo_oci.ini
; Enable pdo_oci extension module
extension=pdo_oci.so

Zend Optimizer

1. ダウンロード
http://www.zend.co.jp/download/index.html

2. FTP にて cmpo のホームへコピー

3. 解凍
[root@xx ~]# cd /usr/local/src/
[root@xx src]# mv ~cmpo/ZendOptimizer-3.3.0a-linux-glibc23-x86_64.tar.gz .
[root@xx src]# tar -xvzf ZendOptimizer-3.3.0a-linux-glibc23-x86_64.tar.gz

4. コンパイル
[root@xx src]# cd ZendOptimizer-3.3.0a-linux-glibc23-x86_64
[root@xx ZendOptimizer-3.3.0a-linux-glibc23-x86_64]# ./install
基本的に全部デフォルト設定

保存場所: /usr/local/Zend

これによって /etc/php.ini はシンボリックリンクとなる
実体は /usr/local/Zend/etc/php.ini
※旧 php.ini は /etc/php.ini-zend_optimizer.bak としてバックアップ

Oracle Instant Client のインストール

1. Windows でダウンロード
http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxx86_64soft.html

Version 10.2.0.4
http://download.oracle.com/otn/linux/instantclient/10204/oracle-instantclient-basic-10.2.0.4-1.x86_64.rpm
http://download.oracle.com/otn/linux/instantclient/10204/oracle-instantclient-devel-10.2.0.4-1.x86_64.rpm

2. FTP で hoge のホームにコピー

3. 展開
[root@xx ~]# cd /usr/local/src/
[root@xx src]# mv ~hoge/oracle-instantclient-* .
[root@xx src]# rpm -ivh oracle-instantclient-basic-10.2.0.4-1.x86_64.rpm
[root@xx src]# rpm -ivh oracle-instantclient-devel-10.2.0.4-1.x86_64.rpm

■ディレクトリー名の変更
[root@xx ~]# mv /usr/include/oracle/10.2.0.4/client64 /usr/include/oracle/10.2.0.4/client
[root@xx ~]# mv /usr/lib/oracle/10.2.0.4/client /usr/lib/oracle/10.2.0.4/client
※ 64bit 版は client64 にインストールするが PDO_OCI の configure スクリプトは client 決め打ちなのでディレクトリー名を変更する

■apache 環境変数の設定
[root@xx ~]# vi /etc/sysconfig/httpd

# ORACLE
export ORACLE_BASE=/usr/lib/oracle
export ORACLE_HOME=$ORACLE_BASE/10.2.0.4/client
# Oracleの文字化け(SJIS)
export NLS_LANG=Japanese_Japan.JA16SJIS
# ライブラリーのロード先を指定
if [ $?LD_LIBRARY_PATH ]
then
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
else
LD_LIBRARY_PATH=$ORACLE_HOME/lib
fi
export LD_LIBRARY_PATH

■ユーザーの環境変数設定
[root@xx ~]# vi /etc/profile.d/oracle.sh

export ORACLE_BASE=/usr/lib/oracle
export ORACLE_HOME=$ORACLE_BASE/10.2.0.4/client
export NLS_LANG=Japanese_Japan.JA16SJIS
if [ $?LD_LIBRARY_PATH ]
then
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
else
LD_LIBRARY_PATH=$ORACLE_HOME/lib
fi
export LD_LIBRARY_PATH

[root@xx ~]# chmod 755 /etc/profile.d/oracle.sh

mcrypt のインストール

[root@xx ~]# mv /etc/yum.repos.d/Dag.repo.bak /etc/yum.repos.d/Dag.repo
[root@xx ~]# yum install libmcrypt-devel
[root@xx ~]# mv /etc/yum.repos.d/Dag.repo /etc/yum.repos.d/Dag.repo.bak