Oracle APEX 系列文章4:在阿里雲上打造屬於你本身的APEX完整開發環境 (安裝XE, ORDS, APEX)html
本文是鋼哥的Oracle APEX系列文章中的第四篇,完整 Oracle APEX 系列文章以下:java
引言nginx
在這一章節裏,咱們將一塊兒動手安裝Oracle數據庫(XE)、APEX以及ORDS,並完成相關的設置。web
友情提示:因爲以前沒有綁定阿里雲的彈性公網IP,致使阿里雲ECS在關機重啓後IP地址會變化,這裏只要簡單把公網IP轉換成彈性公網IP便可。彈性公網IP的好處是IP地址不會變化,須要的時候拿過來綁定到ECS等設備上便可,很是靈活。 更多關於阿里雲彈性公網IP的介紹請移步這裏。sql
如今咱們的ECS服務器已經轉成彈性公網IP了,之後只要不解綁,這個公網IP地址就不會本身變化了。數據庫
言歸正傳,接下來咱們開始今天的教程。express
安裝前準備工做瀏覽器
下載軟件包tomcat
咱們須要到Oracle官網下載以下軟件,若是你尚未註冊過Oracle帳號,請先完成註冊(免費的),登陸後才能夠下載。bash
截止到本文寫做時間爲止,APEX最新的版本是5.1.4.00.08,請下載All Language多語言版本,ORDS最新版本是18.1.1.95.1251。你下載的版本可能比鋼哥的高,不過安裝步驟是同樣的。
建立安裝包目錄
如今軟件包已經下載到本地了,在上傳以前ssh鏈接到ECS,建立一下上傳目錄/u01/media。
mkdir /u01 mkdir /u01/media chmod -Rf 777 /u01 複製代碼
增長swap空間
# 檢查當前swap文件 swapon -s # 檢查當前磁盤空間 df # 建立一個2GB的swap文件 dd if=/dev/zero of=/swapfile bs=1024 count=2048k mkswap /swapfile swapon /swapfile # 再次檢查swap文件 swapon -s # 將新的swap文件加入到啓用項 echo "/swapfile swap swap defaults 0 0" >> /etc/fstab # 賦予適當權限 chown root:root /swapfile chmod 0600 /swapfile 複製代碼
上傳安裝包
接下來須要利用ftp工具上傳到你的ECS服務器上。這裏鋼哥使用的是 FileZilla 來上傳,鏈接信息以下圖所示:
上傳後如圖所示:
安裝 Oracle Database XE 數據庫
將安裝包解壓縮
cd /u01/media unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip 複製代碼
利用yum本地安裝
yum localinstall Disk1/oracle-xe-11.2.0-1.0.x86_64.rpm -y 複製代碼
提示已成功安裝完畢。
完成數據庫初始化
保持在root用戶下,繼續執行如下命令:
/etc/init.d/oracle-xe configure 複製代碼
按照提示完成初始化設置。
建立dba用戶組
cd 複製代碼
建立oracle用戶,並分配到dba用戶組
useradd -u 501 -g dba -G dba oracle 複製代碼
設置oracle用戶的密碼
passwd oracle 複製代碼
切換到oracle用戶
按照提示設置好oracle用戶的密碼後,能夠用su - oracle命令完成用戶切換。
友情提示:su - oracle命令中間的 - 符號意思是切換同時作初始化,由於oracle的不少軟件須要設置環境變量的,因此每次切換用戶請保證帶上-符號。
配置環境變量
咱們接下來要爲oracle帳號設置環境變量,以便保證每次切換到oracle用戶時,均可以直接使用sqlplus等命令。
將執行oracle_env.sh的命令寫到bash_profile文件中,這樣只要每次使用su - oracle命令切換後,會自動執行~/.bash_profile文件裏的腳本,完成環境變量的初始化。
echo '. /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh' >> ~/.bash_profile 複製代碼
測試一下環境變量是否已設置成功。
source ~/.bash_profile 複製代碼
執行後就可使用sqlplus等命令了。
sqlplus /nolog 複製代碼
至此,Oracle Database XE 安裝配置完畢。
測試數據庫監聽
數據庫雖然成功安裝好了,但仍是要驗證一下是否能夠正產鏈接比較好(而不是用sqlplus /nolog的方式,由於不走監聽)。
直接用sqlplus鏈接數據庫,用戶名輸入system,密碼輸入安裝時的密碼,看是否可以正常連上數據庫。
sqlplus 複製代碼
若是能夠,證實數據庫服務和監聽都沒問題了。
安裝配置 ORDS
解壓縮安裝包
mkdir -p /u01/ords unzip /u01/media/ords.18.1.1.95.1251.zip -d /u01/ords/ 複製代碼
執行安裝腳本
cd /u01/ords java -jar ords.war install advanced 複製代碼
按照提示完成ORDS的安裝配置。
鋼哥友情提示:這裏的參數要認真填寫,特別是數據庫名稱name of the database server,必定要跟數據庫監聽器裏 /u01/app/oracle/product/11.2.0/xe/network/admin/listener.ora 保持一致,不然後面會由於ORDS鏈接不上數據庫,致使訪問報錯。 另外這裏要設置好幾個數據庫帳號的密碼,建議第一次安裝時統一設置成一個,並作好記錄,避免後面錯亂。
爲tomcat帳號受權(需切換到root用戶)
確保tomcat帳號(安裝Tomcat服務器時自動建立的)能夠訪問/u01/ords/config目錄。
su - root chown -R tomcat:tomcat /u01/ords/config 複製代碼
安裝配置 APEX
卸載舊版本的APEX
因爲Oracle Datebase XE自帶了一箇舊版本的APEX,在正式安裝最新版APEX以前,咱們須要將舊版本的卸載掉。
su - oracle cd /u01/app/oracle/product/11.2.0/xe/apex sqlplus /nolog -- 用數據庫超級管理員鏈接數據庫 SQL> connect sys as sysdba -- 卸載原有的舊版本APEX SQL> @apxremov.sql -- 退出當前數據庫會話 SQL> exit 複製代碼
安裝最新版本APEX
確保仍然在oracle帳號下,執行如下命令安裝最新版本的APEX。
cd /u01/media mkdir -p /u01/apex unzip apex_5.1.4.zip -d /u01/ chown -R oracle:dba /u01/apex 複製代碼
如今新的APEX安裝文件已經放在/u01/apex/目錄下了,登陸數據庫執行安裝。
cd /u01/apex -- 以超級管理員身份登陸數據庫 sqlplus / as sysdba -- 安裝APEX,指定默認表空間和靜態文件別名 SQL> @apexins.sql SYSAUX SYSAUX TEMP /i/ -- 安裝完畢後數據庫會話會自動斷開,再次以超級管理員身份登陸數據庫 sqlplus / as sysdba -- 建立APEX實例管理員(Instance Administration)及密碼,這個密碼必須包含特殊符號,不然設置不上。這個密碼很重要,是管理APEX平臺的帳號密碼,之後建立新的應用schema、解鎖帳號等都靠它,第一次登陸APEX時也要用到。 SQL> @apxchpwd.sql -- 配置RESTful Services服務 SQL> @apex_rest_config.sql -- 禁用數據庫內置的PL/SQL網關 SQL> exec dbms_xdb.sethttpport(0); SQL> exec dbms_xdb.setftpport(0); -- 解鎖ORDS用戶帳號 SQL> alter user apex_public_user account unlock; -- 斷開數據庫會話 SQL> exit 複製代碼
複製APEX靜態文件到Tomcat目錄
鋼哥提示:網上不少教程都是直接把APEX靜態文件內容放到Web服務器(httpd、Nginx)的目錄下,我我的推薦放到Tomcat目錄下(/u01/tomcat/webapps/i/),這樣作的好處是能夠先測試APEX在Tomcat上是否能跑起來,若是能夠,再將上邊的目錄映射到Nginx中。
## 切換到root用戶 su - root ## 在Tomcat的webapps目錄下新建一個名爲`i`的文件夾 mkdir -p /u01/tomcat/webapps/i/ ## 將APEX靜態文件複製過去 cp -a /u01/apex/images/* /u01/tomcat/webapps/i/ ## 重啓Tomcat服務 systemctl restart tomcat 複製代碼
將 ords.war 部署到 Tomcat
如今咱們能夠將剛纔生成的ords.war文件部署到Tomcat上了。
cp -a /u01/ords/ords.war /u01/tomcat/webapps/ ## 重啓Tomcat服務 systemctl restart tomcat 複製代碼
測試 APEX + ORDS + Tomcat 的組合是否正常工做
打開瀏覽器,訪問http://47.100.207.171:8080/ords,若是一切正常,應該能夠訪問到APEX的頁面了。
成功登陸後界面以下圖所示:
配置Nginx,將http請求轉發到Tomcat
最後,咱們須要配置一下Nginx,讓全部的http請求都能自動轉發到部署在Tomcat上的ORDS上,完成跟APEX的交互。
Nginx默認配置文件在/etc/nginx/nginx.conf,咱們須要修改這個文件,主要修改server節點下的內容。
server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location / { } # 增長了/i/目錄的請求轉發規則,/i/目錄是APEX默認的靜態文件目錄別名。 location ^~ /i/ { alias /u01/tomcat/webapps/i/; } # 增長/ords/目錄的請求轉發規則,全部形如http://xxx.xxx.xxx.xxx/ords/的請求都會自動轉發到http://xxx.xxx.xxx.xxx:8080/ords/上 # 即APEX請求都會由Tomcat接管 location ^~ /ords/ { proxy_pass http://localhost:8080/ords/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 20m; } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } } 複製代碼
最終內容以下:
重啓Nginx服務
systemctl restart nginx 複製代碼
驗證 APEX + ORDS + Tomcat + Nginx 的組合是否正常工做
打開瀏覽器,此次直接訪問http://47.100.207.171/ords,若是一切順利,應該就直接打開APEX的頁面了。
總結
至此,Oracle XE數據庫 + ORDS + Tomcat + Nginx 的完整開發環境就搭建好了。在接下來的文章裏,鋼哥將帶你作進一步的優化,敬請期待。
漢化
Select username,created from dba_users where username like'APEX%';
查出APEX_0008
Alter session set current_schema=APEX_030200;
@F:/app/apex/builder/zh-c/load_zh-cn.sql
qlplus / as sysdba 臉上以後。
alter database mount ;
alter database open;
select 'grant select on ' || sequence_name || ' to itreport;' from dba_sequences where sequence_owner='USER_NAME';