Oracle ApExをインストールする

こんにちは友人や同僚。 入社後は、小規模なデータベース用のWebインターフェイスを作成する必要がありました。 すでに、LDAPとの将来の統合、特定のページを表示するためのユーザーアクセス権を柔軟に制御する機能、ページを作成するための便利なデザイナー、ビジネスインテリジェンスツールが必要になるという理解がありました。 そのとき、Oracle Application Express(ApEx)に出会いました。 この強力なツールは、Oracle Database 11g、12cなどの製品の一部であり、使用するエディションによってはコストがかかる場合があります。 しばしば起こるように、欲求は可能性を超えていました...







そのような場合、OracleにはOracle Database Express Edition(略してXE)の無料バージョンがあります。 次の制限が課せられます。









これらの制限には非常に満足しています。 サーバーでは、VPSを2Gb RAMでデジタルオーシャンに持ち込み、Centos 7.2をインストールしました。 次の章では、Oracle XEのインストールについて説明します。次に、ビルトインのApplication Express v.4を最新の最新バージョンに更新します(この記事の執筆時点では5.0.4)。







Oracle 11g XEをインストールします



必要なパッケージをインストールし、スワップをファイルとして追加し、/ etc / fstabを変更します。







yum update -y && yum install screen vim bash-completion wget telnet mailx unzip epel-release -y && yum install bc libaio flex -y dd if=/dev/zero of=/var/swapfile bs=1M count=2048 && chmod 0600 /var/swapfile && mkswap /var/swapfile echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab && swapon -a && swapon -s
      
      





次のステップはオプションです。 CentosをOracle Linuxに変換してから、Oracleの推奨事項に従ってカーネル設定を変更するパッケージをダウンロードできます。詳細については、 こちらをご覧ください







 curl -O https://linux.oracle.com/switch/centos2ol.sh && sh centos2ol.sh && yum distro-sync -y && yum install oracle-rdbms-server-11gR2-preinstall.x86_64 -y
      
      





Oracle XE配布キット(WindowsおよびLinuxのバージョンが利用可能)をダウンロードするには、ベンダーのWebサイトに登録する必要があります。無料で、何もする必要はありません。 zipアーカイブをダウンロードし、解凍してインストールします。







 wget [[    ]] mv oracle-xe-11* oracle-xe-11.x86_64.rpm.zip mkdir oracle-xe && mv oracle-xe-* oracle-xe/ && cd oracle-xe/ unzip oracle-xe-* && cd Disk1/ rpm -ivh oracle-xe-*
      
      





RPMパッケージをインストールした後、configureパラメーターを指定してoracle-xeを実行する必要があります。この場合、セットアップ完了ウィザードが起動し、対話形式で質問が表示されます。 応答ファイルを使用したインストールも利用できます。このインストールでは、SYSアカウントのデフォルトのポートとパスワードを追加します。







 echo "ORACLE_HTTP_PORT=8080" > /root/oracle-xe/Disk1/response/xe.rsp echo "ORACLE_LISTENER_PORT=1521" >> /root/oracle-xe/Disk1/response/xe.rsp echo "ORACLE_PASSWORD=[[  ]]" >> /root/oracle-xe/Disk1/response/xe.rsp echo "ORACLE_CONFIRM_PASSWORD=[[ ]]" >> /root/oracle-xe/Disk1/response/xe.rsp echo "ORACLE_DBENABLE=y" >> /root/oracle-xe/Disk1/response/xe.rsp /etc/init.d/oracle-xe configure responseFile=/root/oracle-xe/Disk1/response/xe.rsp
      
      





応答ファイルを使用してインストールした後、パスワードを安全な場所に保存し、xe.rspファイルから削除してください。







Application Expressをインストールする



配布キットをサーバーにダウンロードする必要があります。これは、サイトでの登録後にも利用できます。 ダウンロードして解凍:







 cd ~ wget -O apex_5.zip [[    ]] mkdir apex5 && mv apex_5.zip apex5/ && cd apex5/ && unzip apex_5.zip
      
      





oracle_env.shファイルには、SQL * Plusクライアントが動作するために必要な環境変数が含まれており、このファイルの初期化をbashパラメーターに追加して、現在の環境に適用します。







 echo ". /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh" >> /etc/bashrc . /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh
      
      





更新を始めましょう。 応答ファイルで使用されたパスワードを準備して入力します。これは、SYSアカウントでデータベースに接続するために必要です。







 cd apex/ && sqlplus sys as sysdba
      
      





SQL * Plusコンソールから、次のスクリプトを実行する必要があります。







 @apexins SYSAUX SYSAUX TEMP /i/ @apxldimg /root/apex5 @apxchpwd [[enter]] Enter the administrator's username [ADMIN] [[enter]] User "ADMIN" exists. Enter ADMIN's email [ADMIN] [[enter]] Enter ADMIN's password [] [[     ]] Changed password of instance administrator ADMIN.
      
      





最新の@apxchpwdスクリプトは、Application Expressの管理者アカウントのパスワードを変更します。 次の手順はやや安全ではありません。本当に必要な場合にのみ使用してください。このコマンドは、デフォルトでポート1521を使用するリスナー(SQLクライアントまたは他のさまざまなソフトウェアを使用)へのリモート接続を許可します。







 EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);
      
      





対応するiptablesルールでこのポートへの接続を制限することをお勧めします。

たとえば、SQL Developerを使用してインターネット経由でリスナーに接続する場合、ログイン/パスワード/クエリはクリアテキストで送信されます。 これを回避するには、SSHトンネルまたはVPNを使用する必要があります。







SQL * Plusコンソールから、他の重要なパラメーターを変更します:セッション、プロセスの最大数 これらのパラメータは動的ではないため、データベースを再起動する必要があります。 また、OnlinelogモードからArchivelogモードに切り替えて、バックアップに使用できるディスク容量の制限を増やします。







 alter system set sessions=250 scope=spfile; alter system set processes=200 scope=spfile; shutdown normal startup mount alter database archivelog; alter database open;
      
      





バックアップ



バックアップは別のボリュームに配置します。 これを行うには、Digital OceanホスティングサービスVolumesを使用し、新しいセクションをVPSに接続した後、次のコマンドを実行します。







 mkfs.ext4 -F /dev/disk/by-id/scsi-0DO_Volume_oracle-backups-volume mkdir -p /opt/oracle-backups echo "/dev/disk/by-id/scsi-0DO_Volume_oracle-backups-volume /opt/oracle-backups ext4 defaults,nofail,discard 0 0" | tee -a /etc/fstab mount -a chown oracle:dba /opt/oracle-backups
      
      





これらのコマンドは、ディスクをマウントするためのフォルダーであるファイルシステムを作成し、/ etc / fstabファイルに読み込む際の自動マウントオプションを指定し、バックアップフォルダーの所有者を変更します。 SQL * Plusコンソールを起動し、バックアップオプションを変更します。







 sqlplus sys as sysdba alter system set DB_RECOVERY_FILE_DEST_SIZE = 20G; alter system set DB_RECOVERY_FILE_DEST = '/opt/oracle-backups';
      
      





開始するには、2日間の復旧期間でバックアップするプリインストールスクリプトを使用します。 最初の起動はコンソールから実行しますが、将来はこのスクリプトをoracleユーザーcronに追加する必要があります。







 su - oracle bash /u01/app/oracle/product/11.2.0/xe/config/scripts/backup.sh
      
      





すべての変更後、サーバーを再起動する必要があります。 oracle-xeサービスを手動で開始し、起動時に有効にするには、次のコマンドが役立ちます。







 systemctl start oracle-xe.service systemctl enable oracle-xe.service
      
      





Webサーバーのセットアップ



すべてのトラフィックを暗号化するために、Nginxを使用することにしました。

そのインストールは非常に簡単です。







 wget http://nginx.org/keys/nginx_signing.key rpm --import nginx_signing.key yum -y install nginx
      
      





次に、SSL証明書をサーバーにコピーしてWebサーバーの構成ファイルを変更するか、フォルダー/etc/nginx/conf.d/に拡張子.confを使用して新しい証明書を作成する必要があります。 そこに次の行を追加し、証明書へのパスを変更し、適切なドメイン名を指定する必要があります。







nginxの構成
 server { listen 80; server_name example.com; rewrite ^(.*) https://$server_name$1 permanent; } server { listen 443 ssl; server_name example.com; resolver 8.8.8.8; ssl_stapling on; ssl on; ssl_certificate /etc/nginx/keys/cert.crt; ssl_certificate_key /etc/nginx/keys/cert.key; ssl_dhparam /etc/pki/nginx/dhparam.pem; ssl_prefer_server_ciphers on; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_session_tickets off; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers kEECDH+AES128:kEECDH:kEDH:-3DES:kRSA+AES128:kEDH+3DES:DES-CBC3-SHA:!RC4:!aNULL:!eNULL:!MD5:!EXPORT:!LOW:!SEED:!CAMELLIA:!IDEA:!PSK:!SRP:!SSLv2; location / { rewrite ^ "/app/f?p=101" permanent; } location /app { proxy_pass http://127.0.0.1:8080/apex; include /etc/nginx/reverse_proxy.conf; } location /i/ { proxy_pass http://127.0.0.1:8080/i/; include /etc/nginx/reverse_proxy.conf; } }
      
      





/etc/nginx/reverse_proxy.confファイルの内容:







 proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_max_temp_file_size 0; client_max_body_size 1000m; client_body_buffer_size 128k; proxy_connect_timeout 180; proxy_send_timeout 180; proxy_read_timeout 180; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k;
      
      





説明: http://example.com/にアクセスすると、 http://example.com/app/f?p = 101へのリダイレクトが発生し、このアドレスはproxy_passディレクティブによって処理されます。このディレクティブはトラフィックをhttp://127.0にリダイレクトします.0.1:8080 / apex 、対応するWebアプリケーション番号、この場合は101。

構成を確認してから、Webサーバーを起動し、起動時に有効にしてください。







 nginx -t systemctl start nginx systemctl enable nginx
      
      





これで、Oracle Application Expressのインストールが完了しました。 次の記事では、テストWebアプリケーションをインストールしてから、本当に役立つことを行います。







更新する 要望に関連して、TLS暗号化を提供するフロントエンドの説明が記事に追加されました。







あなたのコメント、発言、質問に心から喜んでいます。








All Articles