PHP用のOracleのインストール


Oracle Express Editionを使用してWindowsにMoodleをインストールする

前書き

このセクションでは、Windows上でMoodleをOracle Express Editionと共にインストールする方法について説明します。 デバッグ目的で使用しています。それは間違いなく本番環境ではありません。目標は、Moodle / Windows / Oracle環境を簡単かつ迅速にセットアップすることです。

Oracleをインストールする

  1. Oracle WebサイトからOracle Express Editionをダウンロードしてください。
  2. また、ここから Instantクライアントが必要になります (無料アカウントのサインアップが必要です)。解凍したフォルダからすべてをapache / binにコピーします。
  3. 両方をインストールしてください。
  4. https://127.0.0.1:8080/apex (ログイン= SYSパスワード= the_one_you_entered_during_the_installation)でOracleコンソールにアクセスします
  5. 新しいユーザーを作成し、それにすべての権限(DBAを含む)を付与します。
  6. [SQLコマンド]ページに移動して、新しいユーザーにdmbs_lock権限を付与します。
     GRANTは XXXXX TO DBMS_LOCK 上で 実行します
    ... XXXXXは新しいユーザーのユーザー名です。
  7. ログアウトして新しいユーザーとしてログインします。
  8. /lib/dml/oci_native_moodle_package.sqlのMoodleコードベースにあるスクリプトを実行してください。このスクリプトを直接実行できない場合は、[SQLコマンド]ページを使用してその部分(スラッシュで区切って)を個別に実行できます。

注意:Oracle Express Edition 10gでは、 'XE'という1つのデータベースに制限されています。

Oracleエクステンションを設定する

この文書では、apache / phpをOracle用に設定する方法については説明しません。 Oracle Documentationの詳細情報を入手できます

phi.iniファイルを編集し、php_oci8拡張子のコメントを外します(先頭のセミコロンを削除します)。 WAMPの設定では、これは次のように表示されます。

extension = php_oci8.dll

また、開発/テスト目的でインストールを使用する予定の場合は、次の行のコメントを外して値をゼロに設定します。通常の操作には必要ありません(システムの速度が大幅に低下します)。

oci8.statement_cache_size = 0

いくつかの設定では、php_oracle、php_pdo_oci、php_pdo_oci8のコメントを外す必要があるかもしれません。

Moodleをインストールする

データベース設定ページで:
ドライバ:Oracle oci8(設定ファイルの1.9.xインストールの場合は「oci8po」、2.0.xインストールの場合は「oci」と表示されます)
ホスト:フィールドを空にする
データベース:// localhost:1521 / XE
ユーザー:作成したユーザー
パスワード:あなたがユーザーに与えたパスワード

Apacheを設定する

Linux上でApacheと共にMoodleをOracle上で実行している場合、PHPがシステム環境変数を見ることができないという問題があるかもしれません。これを解決するには、/ etc / sysconfig / apache2を編集して以下の行を一番下に追加します。

LD_LIBRARY_PATH = / opt / oracle / instantclient_11_2#UTF-8用のLANG変数の設定
NLS_LANG = AMERICAN_AMERICA.AL32UTF8
LANG = en_US.UTF-8
LC_ALL = en_US.UTF-8
LC_COLLATE = en_US.UTF-8
LC_CTYPE = en_US.UTF-8
LC_MESSAGES = ja_JP.UTF-8
LC_MONETARY = en_US.UTF-8
LC_NUMERIC = en_US.UTF-8
LC_TIME = en_US.UTF-8
NLS_NUMERIC_CHARACTERS = '。、'

エクスポートLANG LC_ALL LC_COLLATE LC_CTYPE LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIM NLS_LANG LD_LIBRARY_PATH NLS_NUMERIC_CHARACTERS

PHPのコマンドラインクライアントからも見えるように、これら2行を〜/ .bashrcに追加する必要もあります。

UbuntuへのOracle Expressのインストール

Moodleを使ってOracleのインストールをテストする必要がありました。

  • Ubuntu 14.04.1 LTS 64ビット
  • Oracle 11gリリース2 Express Edition
  • SQL Developer 4.0.3.16

Oracle ExpressおよびSQL Developer

他のすべてのサイトを無視してこれらの指示に従ってください - https://blog.whitehorses.nl/2014/03/18/installation-java-oracle-11g-r2-express-edition-and-sql-developer-on-ubuntu-64 -ビット/

Chromeは同じフォルダを使用しているため即座にクラッシュするため、この操作を行う前にChromeからログアウトしてください。

 sudo rm -rf / dev / shm
sudo mkdir / dev / shm
sudoマウント-t tmpfs shmfs -oサイズ= 4096m / dev / shm

また、4096mをあなたの記憶の半分に変更してください。

sqldeveloperの実行中に致命的なエラーが発生した場合

 gksudo gedit / opt / sqldeveloper / sqldeveloper / bin / sqldeveloper

そしてこれらの2行を一番上に追加します

 GNOME_DESKTOP_SESSION_IDの設定を解除
DBUS_SESSION_BUS_ADDRESSを設定解除します

ここで答えを見つけましたhttps://linuxsagas.digitaleagle.net/2014/01/28/fixing-sql-developer-4-0/

インストール後および接続の作成時には、デフォルトのユーザー名はSYSTEMで、手順sudo /etc/init.d/oracle-xe configureで作成されたパスワードを使用します。

gnome classic - OracleのメニューはOtherの下にあり、sqldeveloperはProgrammingの下にあります。

ユーザーを作成する

おそらくアプリケーションexpressを使用するのが最も簡単:

  • 「アプリケーション」 - >「その他」メニュー(GNOME)、またはインストール時に作成されたデスクトップのアイコンから、「Oracle Database 11g Express Editionの概要」に進みます。
  • これにより、ブラウザにページが開きます。
  • SYSTEMとしてログイン
  • アプリケーションのエクスプレスタブをクリックします
  • ユーザーとパスワードを作成する
  • 次にSQL Developerに移動し(Gnome classic - アプリケーション - >プログラミング - > sqldeveloper)、新しく作成したユーザーを使用して接続を作成して開きます。

PHP

https://help.ubuntu.com/community/PHPOracleの手順に従ってください

/etc/php5/apache2/php.iniと/etc/php5/cli/php.iniの両方にextension = oci8.soを追加します。そうしないと、クライアントのphp cronは動作しません。

apache2を再起動します

それからこれでテスト

<?php

error_reporting(-1);
ini_set( 'display_errors'、1);

$ conn = oci_connect( 'USERNAME'、 'password'、 'localhost / XE');
if(!$ conn){
    $ e = oci_error();
    trigger_error(htmlentities($ e ['メッセージ']、ENT_QUOTES)、E_USER_ERROR);
}

//文を準備します
$ sql = "SELECT * FROM atable"; //これを変更
$ stid = oci_parse($ conn、$ sql);
if(!$ stid){
    $ e = oci_error($ conn);
    trigger_error(htmlentities($ e ['メッセージ']、ENT_QUOTES)、E_USER_ERROR);
}

//クエリのロジックを実行します
$ r = oci_execute($ stid);
if(!$ r){
    $ e = oci_error($ stid);
    trigger_error(htmlentities($ e ['メッセージ']、ENT_QUOTES)、E_USER_ERROR);
}

//クエリの結果を取得する
print "<table border = '1'> \ n";
while($ row = oci_fetch_array($ stid、OCI_ASSOC + OCI_RETURN_NULLS))){
    "<tr>を印刷\ n";
    foreach($ itemを$ itemとして)
        "<td>"を印刷します。 ($ item!== null?htmlentities($ item、ENT_QUOTES): "")。 "</td> \ n";
    }
    "</tr>を印刷\ n";
}
"</table>を印刷\ n";

oci_free_statement($ stid);
oci_close($ conn);

関連リンク