Oracle XEを使った簡易Webアプリ開発、VPSの設定とOracleインストールまでを説明します。
さくらVPSの申し込み
OracleをインストールするLinux環境を用意します。
今回は、さくらのVPS(メモリ1G,SSDプラン)を使います。
2週間の無料トライアル期間あり、それ以降は1620円の初期費用と972円の月額費用が発生します。
自前のLinuxやWindows環境をお持ちの場合は適宜置き換えてご参照ください。
さくらのVPS申込みページにアクセス。
「おすすめ」の一個左にある1Gプランを選択します。
OracleXEはメモリ1G、DBサイズは11G、CPUもひとつしか使わない(使えない)ので
このくらいのスペックでも充分です。一緒にOracle以外のサービスも走らせる場合は
上位プランの検討をお勧めします。
サーバの所在。東京は在庫がなく、初期選択は大阪でしたが、なんとなく石狩にしてみました。
ストレージは、速度で勝るSSDと、容量で勝るHDDから選択。
データサイズが最大11Gなので、容量的にはSSDで充分です。
ファイルサーバとして使いたい場合はHDDで。
OSはCentOSの7を選択しました。
ルートユーザパスワードの設定と、サーバの起動を行えば
めでたくアナタ専用のVPSが立ち上がります。
さくらVPSの初期設定
作成したVPSに最低限のセキュリティ設定を行います。
公式のチュートリアルを参考にしています。
まずは一般ユーザの追加。赤字の部分は適宜置き換えてくださいね。
mejilongというユーザを新規追加し、PassWordというパスワードを設定する例です。
useradd mejilong
passwd mejilong
PassWord
TeraTermの「設定」→「SSH鍵生成」→「生成ボタン」
任意のパスフレーズを入力して「公開鍵の保存」「秘密鍵の保存」。
ここのパスフレーズは、先ほど設定した一般ユーザのパスワードや、Rootユーザのパスワードとは別ものです。
一般ユーザでログインして「id_rsa.pub(公開鍵)」ファイルをTeraTerm画面にドラッグ&ドロップして転送。
「ファイル送信」ではなく「SCP」のボタンをクリックする必要があることに注意。
送信したファイルをSSHの公開鍵として設定します。
cd /home/mejilong
mkdir .ssh
chmod 700 .ssh
cat id_rsa.pub > .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
rm -f id_rsa.pub
mejilongというユーザにRoot権限を与えます。
usermod -G wheel mejilong
visudo
root
PassWord
Rootユーザでログインして、viでsshd_configを編集します。
su root
RootPassword
vi /etc/ssh/sshd_config
Port 22の部分を別のポートに変更(※)
PermitRootLogin をyesからnoに変更
PasswordAuthenticationをyesからnoに変更
変更内容を保存後、「systemctl restart sshd.service」でsshのサービスを再起動。
※何故かポート変更すると、接続できなくなってしまいましたので、私は22番ポートのまま変更せずにやっています。トライアル期間中の制限なのかも???
ここまでやれば、TeraTermでのrootユーザログインが不可となり、
パスワードでのログインもできなくなります。(秘密鍵とパスフレーズを用いた接続が必要)
Oracle XEのインストール
続けてOracle XEをインストールします。
Oracleのページから「Oracle Database Express Edition 11g Release 2 for Linux x64」をダウンロードします。
2018年12月現在は「18c」が前面に出てきていますので、「以前のリリース」から11gを探してやります。
ダウンロード時にOracleアカウントでのサインインを必要とします。アカウント自体は無料で作れますので、作っておきましょう。
ダウンロードが完了したら、「oracle-xe-11.2.0-1.0.x86_64.rpm.zip」をSCPでサーバに転送します。ファイルサイズは300MB程度。さくらのVPSは、トライアル期間中は転送速度に制限があるので気長に待ちましょう。
アップロード完了したらインストールします。
unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip
cd Disk1
rpm -ivh oracle-xe-11.2.0-1.0.x86_64.rpm
以下は自動で表示されるメッセージ
Preparing... ################################# [100%]
/var/tmp/rpm-tmp.AUB4S8: line 257: [: 18446744073692774399: integer expression expected
/var/tmp/rpm-tmp.AUB4S8: line 271: [: 18446744073692774399: integer expression expected
Updating / installing...
1:oracle-xe-11.2.0-1.0 ################################# [100%]
Executing post-install steps...
You must run '/etc/init.d/oracle-xe configure' as the root user to configure the database.
これでとりあえずOracleXEのインストールは完了です。
ちなみにこの時点でのディスク使用量は2.5G程度です。
Oracle XEの初期設定
Oracle XEの初期設定を実施します。
/etc/init.d/oracle-xe configure
Oracle Application Express [8080]: 8081にしました。
the database listener [1521]: 1521のままにしました。
password will be used for SYS and SYSTEM.
OraPassword 2回入力します。
Do you want Oracle Database 11g Express Edition to be started on boot (y/n) [y]:y
ちなみにこの時点でのディスク使用量は3.5G程度です。
環境変数を設定します。
vi ~/.bashrc
最終行に以下を追加
. /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh
設定を反映させます。
source ~/.bashrc
ここまでやれば、sqlplusコマンドが実行できるようになっているはずです。
ユーザは「system」、パスワードは先ほど設定した値、インスタンス名は「XE」です。
sqlplus system/OraPassword@XE
以下の内容が表示されればOK!
SQL*Plus: Release 11.2.0.2.0 Production on Fri Jan 1 10:00:00 2019
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
おつかれさまでした。次回はユーザの設定とDADの立ち上げを行います。