RT
最近開発されたプロジェクトで、データベースは oracle を使用しています。 Oracle 自体は Red Hat をサポートしていますが、Ubuntu へのサポートは良くありません。Ubuntu に Oracle をインストールする必要がある場合、システム自体が偽装などの多くの作業を行う必要があるため、リモート サーバー上の Oracle データベースのみを使用する予定です。
ローカル環境:
Linux xxx-ThinkPad-T400 3.13.0-46-generic #75-Ubuntu SMP Tue Feb 10 15:24:04 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
PHP には、インストール時に Oracle データベース管理拡張機能が付属していないため、自分でダウンロード、コンパイル、インストール、構成する必要があります。
ここでは主に次の記事を参照します:
https://help.ubuntu.com/community/PHPOracle
http://blog.sina.com.cn/s/blog_8f4fbe030100y5q3.html
1. instantclient をダウンロードします。 Oracle 公式 Web サイトの SDK インストール パッケージからの Basic および instantclient
2. ライブラリ ファイルへのソフト リンクを作成します3. PHP を設定します
違いは次のとおりです。 php oci8.so ファイルを直接ダウンロードし、コンパイルと同時に手動で解凍する方法もあります。または、上で参照したチュートリアルで説明されているように、pear コマンドを直接使用してダウンロードし、自動的にコンパイルする方法もあります。
重要なのは、チュートリアルに従うと多くの予期せぬ問題が発生するということです。次に、最初に私が成功した構成プロセスに従ってチュートリアルを作成し、次に遭遇した問題とその解決策を説明します。依存関係の問題を解決します。
sudo apt-get updatesudo apt-get upgrade
sudo apt-get install php5-dev build-essential php-pear libaio1
sudo apt-get install unzip make
2. Oracle 公式 Web サイトから Instant Client をダウンロードします
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
3.1 ファイルを解凍し、2 つのフォルダーからバージョン番号を削除します。つまり、instantclient と sdk は、sdk フォルダー全体を instantclient ディレクトリに移動し、他のライブラリ ファイルと共存させます。インターネット上の他のチュートリアルのほとんどは、これら 2 つのフォルダー間のストレージ関係を説明していないか、同じディレクトリに直接配置しているため、後続のコンパイル プロセス中に SDK が見つからないというプロンプトが表示されます。ここで、sdk フォルダーを instantclient ディレクトリに移動する必要があります。インターネット上の他のチュートリアルを参照することはできません。
3.2 ライブラリ ファイルへのソフト リンクを作成します。右クリックしてライブラリ ファイルへのリンクを生成することはできないことに注意してください:
ln -s libnnz12(version number).so libnnz.so
同時に、
ln -s libclntsh.so.12.1 libclntsh.so
ln ?s libocci.so.12.1 libocci.so
を生成する必要があります。この手順を完了したら、Oracle instantclient フォルダー全体を事前に設定した場所に移動できます。
/usr/local/lib/
sudo chmod 777 -R /usr/local/lib/instantclient/
sudo vim /etc/environment
# Oracle Instant ClientLD_LIBRARY_PATH="/usr/local/lib/instantclient"TNS_ADMIN="/usr/local/lib/instantclient"ORACLE_BASE="/usr/local/lib/instantclient"ORACLE_HOME=$ORACLE_BASE
4 .oci8.so
sudo pecl install oci8
と入力します。
instantclient,/usr/local/lib/instantclient
次に、システムのコンパイルが完了すると、プロンプトが表示されます:
Build process completed successfullyInstalling '/usr/lib/php5/20121212/oci8.so'install ok: channel://pecl.php.net/oci8-2.0.8configuration option "php_ini" is not set to php.ini locationYou should add "extension=oci8.so" to php.ini
拡張機能をphp.iniで直接開くこともできますが、現時点ではPHPでは推奨されていないため、次のようにします。 私のサーバーはubuntu+apacheなので、操作方法は次のとおりです。 :
/etc/php5/apache2/conf.d に新しい oci8.ini ファイルを作成します。apache2/conf.d ディレクトリでは、すべてのプラグインの前に番号が付いていることがわかります。ここでは気にする必要はありません。無視してください:
sudo vim /etc/php5/apache2/conf.d/oci8.ini
extension=oci8.so
sudo /etc/init.d/apache2 restart
再起動が完了したら、新しいテストを作成します。 php ファイルをサーバーのルート ディレクトリに配置し、次のように記述します:
PHP ページに次のコンテンツが表示されるかどうかを確認します:
OCI8
OCI8 Support
が有効
無効 | |
2.0.8 | |
$Id: f04114d4d67cffe a4cdc2ed3b7f0229c2caa5016 $ | |
12.1。 0 | |
12.1 |