UbuntuにPDO-OCIを設置してPXを使えるようにする

このエントリは,ほぼ完全に僕のための構築メモです。Ubuntu に Oracle のクライアントを入れて,PDOから使えるようにして,PXの開発環境を整えます。

Oracle Instant Client のインストール

https://help.ubuntu.com/community/Oracle%20Instant%20Client を参考にインストール。

[bash] $ sudo apt-get install apache2 $ sudo apt-get install php5 libapache2-mod-php5 $ sudo service apache2 restart [/bash]

https://help.ubuntu.com/community/Oracle%20Instant%20Client からrpmファイルをダウンロードする。

  • oracle-instantclient11.2-basic-11.2.0.2.0.i386.rpm
  • oracle-instantclient11.2-devel-11.2.0.2.0.i386.rpm
  • oracle-instantclient11.2-sqlplus-11.2.0.2.0.i386.rpm

alien が必要なので入ってなければインストール。

[bash] $ sudo apt-get install alien [/bash]

alienを使うとrpmからインストールできるらしいです。

[bash] $ sudo alien -i oracle-instantclient11.2-basic-11.2.0.2.0.i386.rpm $ sudo alien -i oracle-instantclient11.2-devel-11.2.0.2.0.i386.rpm $ sudo alien -i oracle-instantclient11.2-sqlplus-11.2.0.2.0.i386.rpm [/bash]

basicのインストールは結構時間がかかりました。

[bash] $ sudo gvim /etc/ld.so.conf.d/oracle.conf [/bash]

次の1行を追加。

[text] /usr/lib/oracle/11.2/client/lib/ [/text]

ldconfigを実行する。

[bash] $ sudo ldconfig [/bash]

環境変数の指定。

[bash] $ sudo gvim /etc/profile.d/oracle.sh [/bash]
[text] export ORACLE_HOME=/usr/lib/oracle/11.2/client export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client/lib [/text]
[bash] $ . /etc/profile.d/oracle.sh [/bash]

Oracle Homeディレクトリとincludeディレクトリの位置確認。

[bash] $ ls $ORACLE_HOME bin lib $ ls -d /usr/include/oracle/*/client /usr/include/oracle/11.2/client [/bash]

シンボリックリンクの追加。

[bash] $ sudo ln -s /usr/include/oracle/11.2/client $ORACLE_HOME/include [/bash]

PDO-OCIのインストール

http://www.sunvisor.net/node/406

を参考にインストール。 基本的には同じ操作をします。 違う点は,iniファイルの場所は,/etc/php.d ではなく /etc/php5/conf.d であること など,Centとubuntuによる違い。

xFrameworkPXを使う準備

UserDir/Rewriteモジュールを有効化します。ubuntuの場合はこうしたコマンドがあるのですね。

[bash] $ sudo a2enmod userdir $ sudo a2enmod rewrite [/bash]

UserDirの設定。後ほど関係してきます。

[text] <IfModule mod_userdir.c> UserDir "/home/sunvisor/devsite/*/public_html" <Directory "/home/sunvisor/devsite/*/public_html"> AllowOverride All Options Indexes FollowSymLinks Includes ExecCGI <Limit GET POST OPTIONS> Order allow,deny Allow from all </Limit> <LimitExcept GET POST OPTIONS> Order deny,allow Deny from all </LimitExcept> </Directory> </IfModule> [/text]

Apache再起動。

[bash] $ sudo service apache2 restart [/bash]

xFrameworkPXを取得

[bash] $ cd ~/gitrep $ git clone https://github.com/xenophy/xFrameworkPX [/bash]

開発サイト作成。$HOMEの下にdevsiteディレクトリを作成し, そのディレクトリのサブフォルダがプロジェクトになる。 ブラウザからは,http://localhost/~hoge でアクセスする。 先ほどのUserDirの設定が生きてくる。

[bash] $ mkdir devsite [/bash]

PXサイトを初期作成するスクリプト

[bash] #!/bin/sh PXLib=/home/sunvisor/gitrep/xFrameworkPX mkdir $1 ln -s $PXLib/bindtransfer/ $1/bindtransfer ln -s $PXLib/library/ $1/library cp -r $PXLib/behaviors/ $1/behaviors cp -r $PXLib/configs/ $1/configs cp -r $PXLib/console/ $1/console cp -r $PXLib/controllers/ $1/controllers cp -r $PXLib/locales/ $1/locales cp -r $PXLib/modules/ $1/modules cp -r $PXLib/public_html/ $1/public_html cp -r $PXLib/templates/ $1/templates cp -r $PXLib/tests/ $1/tests cp -r $PXLib/webapp/ $1/webapp ln -s /home/sunvisor/ext-4.0.2a $1/webapp/ext4 mkdir $1/cache chmod 777 $1/cache mkdir $1/logs chmod 777 $1/logs sed -i "s/xFrameworkPX/"$1"/g" $1/public_html/.htaccess [/bash]

このスクリプトを叩くと,PXのプロジェクトが作られます。