🦁

phpenvにOracleのoci8とPDO_CLIをインストールする」

2021/12/04に公開

概要

phpenv に oci8 と PDO_CLI をインストールする機会があったので、まとめます。

インストール方法

Oracle の環境構築

Oracle Instant Client をインストール

Oracle のサイト(url)から、以下をダウンロードします。

  • instantclient-basic-macos.x64-12.2.0.1.0-2.zip
  • instantclient-sqlplus-macos.x64-12.2.0.1.0-2.zip
  • instantclient-tools-macos.x64-12.2.0.1.0-2.zip
  • instantclient-sdk-macos.x64-12.2.0.1.0-2.zip

パッケージの展開

パッケージを展開して、Oracle の実行環境を作ります。

cd ~/Downloads
sudo mkdir /usr/local/instantclient/
unzip instantclient-basic-macos.x64-12.2.0.1.0-2.zip
unzip instantclient-sqlplus-macos.x64-12.2.0.1.0-2.zip
unzip instantclient-tools-macos.x64-12.2.0.1.0-2.zip
unzip instantclient-sdk-macos.x64-12.2.0.1.0-2.zip
sudo mv instantclient_12_2 /usr/local/instantclient/12.2.0.1.0
echo 'export ORACLE_HOME="/usr/local/instantclient/12.2.0.1.0"' >> ~/.zshrc
echo 'export TNS_ADMIN="$ORACLE_HOME"' >> ~/.zshrc
exec $SEHLL -l

phpenv で php をインストール

phpenv で php(7.3.29)をインストールします。

インストールする前に oci8 と pdo-oci のパスを環境変数で与えます。

必要なパッケージは以下の記事を参照してください。

export PHP_BUILD_CONFIGURE_OPTS="\
  --disable-fpm \
  --disable-phpdbg \
  --enable-debug \
  --with-bz2=$(brew --prefix bzip2) \
  --with-curl=$(brew --prefix curl) \
  --with-gettext=$(brew --prefix gettext) \
  --with-gmp=$(brew --prefix gmp) \
  --with-iconv=$(brew --prefix libiconv) \
  --with-icu-dir=$(brew --prefix icu4c) \
  --with-jpeg-dir=$(brew --prefix jpeg) \
  --with-libedit=$(brew --prefix libedit) \
  --with-libxml-dir=$(brew --prefix libxml2) \
  --with-libzip=$(brew --prefix libzip)
  --with-mcrypt=$(brew --prefix libmcrypt) \
  --with-png-dir=$(brew --prefix libpng) \
  --with-readline=$(brew --prefix readline) \
  --with-tidy=$(brew --prefix tidy-html5) \
  --with-xsl=$(brew --prefix libxslt) \
  --with-zlib=$(brew --prefix zlib) \
  --with-oci8=shared,instantclient,/usr/local/instantclient/12.2.0.1.0 \
  --with-pdo-oci=shared,instantclient,/usr/local/instantclient/12.2.0.1.0 \
  --with-kerberos"

環境変数の宣言が終わったら、php をインストールします。

エラーなくビルドができたら完了です。

phpenv install 7.3.29

Discussion