月別アーカイブ: 2009年3月

PHPでOracle接続

簡単に手順を書きます。

前提として、

OS:CentOS3.9

Apache:2系

PHP:4.4.114.4.1

Oracle:10.2.0.3

です。

1) Oracleのサイトより、Oracle Instant Client をダウンロードする

oracle-instantclient-basic-10.2.0.3-1.i386.rpm

oracle-instantclient-devel-10.2.0.3-1.i386.rpm

これだけでも良いが、接続確認の為、SQLPlusも。

oracle-instantclient-sqlplus-10.2.0.3-1.i386.rpm

2) PHPのインストール

configureオプションに以下を付与する

–with-oci8-instant-client=shared,/usr/lib/oracle/10.2.0.3/client/lib

3) php.iniの編集

以下を追加

extension_dir = “#PHPインストールディレクトリ#/lib/php/extensions/no-debug-non-zts-20020429/”

extension=oci8.so

4) 環境変数の設定

LD_LIBRARY_PATH=/usr/lib/oracle/10.2.0.3/client/lib/

ORACLE_HOME=/usr/lib/oracle/10.2.0.3/client

文字化けするようなら、NLS_LANG も追加

5) Apacheの再起動

/etc/rc.d/init.d/httpd stop

/etc/rc.d/init.d/httpd start

6) 接続確認

sqlplus system/manager@DB_SERV_NAME:1521/SID

上記を実行して、以下が表示されればOK

SQL*Plus: Release 10.2.0.3.0 – Production on Wed Mar 25 02:33:57 2009

Copyright (c) 1982, 2006, Oracle. All Rights Reserved.

Connected to:

Oracle Database 10g Release 10.2.0.3.0 – Production

SQL>

7) テストスクリプトにて、PHPから接続出来る事を確認

以下サイトを参考にしました

http://www.doyouphp.jp/inst/inst_unix_dso_430_ic.shtml

これで、テーブルの中身が表示されれば、PHPからのOracle接続は成功!

でわ。

PHPでImageMagick

ちょっとハマった。

前提として、

・php-devel

・ImageMagick-devel

がインストールされている事。

もし、インストールされていないのであれば、

# yum install php-devel

# yum install ImageMagick-devel

を実施の事。

で、本題。

PHPからImageMagickを使用する為に、ライブラリをインストールします。

# pecl install imagick

<snip>

Build process completed successfully

Installing ‘/var/tmp/pear-build-root/install-imagick-2.2.2//usr/lib/php/modules/imagick.so’

install ok: channel://pecl.php.net/imagick-2.2.2

You should add “extension=imagick.so” to php.ini

#

との事なので、php.iniに、

extension=imagick.so

を追加。

んでもって、Apacheの再起動。

# /etc/rc.d/init.d/httpd restart

phpinfoを確認したのだが、「imagick」の項目がない。

おかしいな???

と思いつつ、Apacheのログを確認すると、

PHP Warning: PHP Startup: Unable to load dynamic library ‘/usr/lib/php/modules/imagick.so’ – /usr/lib/php/modules/imagick.so: undefined symbol: ClonePixelWand in Unknown on line 0

の記載が。。。

色々調べたところ、どうやら、imagick のバージョンが、2.2.2 ではダメみたい。

なので、2.2.1 をインストール。

# pecl install imagick-2.2.1

<snip>

Build process completed successfully

Installing ‘/var/tmp/pear-build-root/install-imagick-2.2.2//usr/lib/php/modules/imagick.so’

install ok: channel://pecl.php.net/imagick-2.2.2

You should add “extension=imagick.so” to php.ini

#

おk。

Apache再起動。

# /etc/rc.d/init.d/httpd restart

Apacheのログを見て、エラーが出てない事を確認。

phpinfo を見て、imagick の項目が表示されている事を確認。

諸々完了。

よかった。

でわ。

CentOS5でのPHPのアップデート

またまた久々のネタ。

CentOS5.2 での、PHPの標準は、5.1.6 です。

OpenPNE3.0を使用するにあたり、これを、5.2.6 以上にしなければなりません。

しかしながら、RPMを消したり入れたりは面倒だからイヤ。

で、どうするか。

remiリポジトリから、取ってくるのです。

# wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-2.noarch.rpm

# wget http://rpms.famillecollet.com/el5.i386/remi-release-5-4.el5.remi.noarch.rpm

# rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm

リポジトリのファイルをちょっといじる。

# cd /etc/yum.repos.d/

# vi remi.repo

[remi]

name=Les RPM de remi pour Enterprise Linux 5 – $basearch

baseurl=http://rpms.famillecollet.com/el5.$basearch/

    http://remi.collet.free.fr/rpms/el5.$basearch/

    http://iut-info.univ-reims.fr/remirpms/el5.$basearch/

enabled=0 → 1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi

failovermethod=priority

PHPをアップデート。

# yum update php*

これで完了。

mysqlが入ってる場合、mysql-lib で引っかかるかも。

その場合は、まずは、

# yum update mysql*

で、mysql自体をアップデートしちゃって下さいな。

って感じです。

でわでわ。