sql >> データベース >  >> RDS >> Oracle

UbuntuマシンにOracleInstantClientとpdo_ociをインストールするにはどうすればよいですか?

    答えは、この記事の複製(ロシア語)であり、これはこの投稿に基づいており、いくつかの修正が加えられています。数日間の無駄な検索の後、それは私にとってスムーズに機能しました。

    前提条件:

    管理者権限が必要です

    次のパッケージを使用してphp5をインストールする必要があります。

    sudo apt-get install php5 php5-dev php-pear php5-cli
    sudo pecl install pdo
    

    libaio1ライブラリがインストールされている必要があります:

    sudo apt-get install libaio1
    

    OracleInstantClientのインストール

    OracleのWebサイト(oracle.com/technetwork/database/features/instant-client/index-097480.html)からプロセッサアーキテクチャとOS用のOracleインスタントクライアントをダウンロードします。

    Linuxの場合、インスタントクライアントには2つのオプションがあります。Linux用のRPMパッケージ、CentOS、Fedora、Red Hat Enterprise Linux、Mandriva Linux、SUSE Linuxなどです。ZIPアーカイブ—RPMをサポートしていない他のすべての場合。

    ダウンロードするファイルは2つあります:

    Instantclient-basic —Oracleインスタントクライアント自体

    Instantclient-sdk —アプリケーション開発用のライブラリのセット

    Oracleインスタントクライアント用のディレクトリを作成します(ソフトウェア拡張用に予約された/ optディレクトリはこの目的に適しています):

    sudo mkdir -p /opt/oracle/
    

    ダウンロードしたファイルを/opt/ oracleに移動し、宛先フォルダーに切り替えます(「zip」アーカイブをユーザーの「downloads」ディレクトリにダウンロードしたと仮定します):

    sudo mv ~/downloads/instantclient-*.zip /opt/oracle/
    cd /opt/oracle/
    

    ダウンロードしたアーカイブの抽出:

    sudo unzip instantclient-basic-*-*.zip
    sudo unzip instantclient-sdk-*-*.zip
    

    最後に、instantclient_11_2があります。 /opt/oracleに作成されたディレクトリ Oracleインスタントクライアント11.2.0.2.0の場合。このディレクトリの名前をinstantclientに変更します (バージョン番号に注意してください)そしてそれに切り替えます:

    sudo mv instantclient_11_2 instantclient
    cd instantclient
    

    次に、いくつかの追加のディレクトリとシンボリックリンクを作成する必要があります(バージョン番号に注意してください):

    sudo ln -s /opt/oracle/instantclient/libclntsh.so.* /opt/oracle/instantclient/libclntsh.so
    sudo ln -s /opt/oracle/instantclient/libocci.so.* /opt/oracle/instantclient/libocci.so
    sudo ln -s /opt/oracle/instantclient/ /opt/oracle/instantclient/lib
    
    sudo mkdir -p include/oracle/11.2/
    cd include/oracle/11.2/
    sudo ln -s ../../../sdk/include client
    cd -
    
    sudo mkdir -p lib/oracle/11.2/client
    cd lib/oracle/11.2/client
    sudo ln -s ../../../ lib
    cd -
    

    Oracleインスタントクライアントライブラリを検索するディレクトリの名前を含む構成ファイルを作成し、有効にします。

    echo /opt/oracle/instantclient/ | sudo tee -a /etc/ld.so.conf.d/oracle.conf
    sudo ldconfig
    

    ディレクトリ/usr/include/phpがない限り Ubuntuでは、クライアントはまだそれを検索していますが、同等のものへのシンボリックリンクを作成します-php5:

    sudo ln -s /usr/include/php5 /usr/include/php
    

    OCI8のインストール

    前のアクションの後、oci8拡張機能がpeclでインストールされます コマンド:

    sudo pecl install oci8
    

    Oracle Instant Clientへのパスの入力を求められたら、次のように応答します。

    instantclient,/opt/oracle/instantclient
    

    拡張接続ファイルの作成:

    echo "; configuration for php oci8 module" | sudo tee /etc/php5/conf.d/oci8.ini
    echo extension=oci8.so | sudo tee -a /etc/php5/conf.d/oci8.ini
    

    PDO_OCIのインストール

    PDO_OCIをインストールするには、pearリポジトリ(pear.php.net)からダウンロードしてください。

    洋ナシのパッケージリストを更新する:

    sudo pecl channel-update pear.php.net
    

    アーカイブをダウンロードして一時ディレクトリに配置します:

    sudo mkdir -p /tmp/pear/download/
    cd /tmp/pear/download/
    sudo pecl download pdo_oci
    

    アーカイブコンテンツの抽出:

    sudo tar xvf PDO_OCI*.tgz
    cd PDO_OCI*
    

    ここで、config.m4を修正する必要があります Oracleインスタントクライアントのバージョンに関する情報が含まれていないため、ファイル。ファイルを開き、「+」でマークされた変更を追加します(バージョン番号に注意してください):

    sudo vim config.m4
    

    以下はdiffです 2つのファイルのうち:

    ***************
    *** 7,12 ****
    --- 7,14 ----
    if test -s "$PDO_OCI_DIR/orainst/unix.rgs"; then
    PDO_OCI_VERSION=`grep '"ocommon"' $PDO_OCI_DIR/orainst/unix.rgs | sed 's/[ ][ ]*/:/g' | cut -d: -f 6 | cut -c 2-4`
    test -z "$PDO_OCI_VERSION" && PDO_OCI_VERSION=7.3
    + elif test -f $PDO_OCI_DIR/lib/libclntsh.$SHLIB_SUFFIX_NAME.11.2; then
    + PDO_OCI_VERSION=11.2
    elif test -f $PDO_OCI_DIR/lib/libclntsh.$SHLIB_SUFFIX_NAME.10.1; then
    PDO_OCI_VERSION=10.1 
    elif test -f $PDO_OCI_DIR/lib/libclntsh.$SHLIB_SUFFIX_NAME.9.0; then
    ***************
    *** 119,124 ****
    --- 121,129 ----
    10.2)
    PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD)
    ;;
    + 11.2)
    + PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD)
    + ;;
    *)
    AC_MSG_ERROR(Unsupported Oracle version! $PDO_OCI_VERSION)
    ;;
    ***************
    

    phpizeを使用してphp拡張用の環境を準備します (php.net/manual/ru/install.pecl.phpize.php)コマンド:

    sudo phpize
    

    パッケージインストーラーを構成し、パッケージをインストールします(バージョン番号に注意してください):

    sudo ./configure --with-pdo-oci=instantclient,/opt/oracle/instantclient/,11.2
    sudo make
    sudo make install
    

    そのための接続ファイルを作成します:

    echo "; configuration for php PDO_OCI module" | sudo tee /etc/php5/conf.d/pdo_oci.ini
    echo extension=pdo_oci.so | sudo tee -a /etc/php5/conf.d/pdo_oci.ini
    

    Apacheを再起動し、拡張機能がインストールされているかどうかを確認します:

    sudo /etc/init.d/apache2 restart
    php -m
    


    1. Salesforceドライバーは一括アクションをサポートしていますか?

    2. SQLServerのログオントリガー

    3. Postgresql列挙型の長所と短所は何ですか?

    4. SQLServerでデータファイルとログファイルの場所を見つける方法