摘要:更多關于阿里云彈性公網的介紹請移步這里。你下載的版本可能比鋼哥的高,不過安裝步驟是一樣的。總結至此,數據庫的完整開發環境就搭建好了。在接下來的文章里,鋼哥將帶你做進一步的優化,敬請期待。
本文是鋼哥的Oracle APEX系列文章中的其中一篇,完整 Oracle APEX 系列文章如下:
Oracle APEX 系列文章1:Oracle APEX, 讓你秒變全棧開發的黑科技
Oracle APEX 系列文章2:在阿里云上打造屬于你自己的APEX完整開發環境 (準備工作)
Oracle APEX 系列文章3:在阿里云上打造屬于你自己的APEX完整開發環境 (安裝CentOS, Tomcat, Nginx)
Oracle APEX 系列文章4:在阿里云上打造屬于你自己的APEX完整開發環境 (安裝XE, ORDS, APEX)
Oracle APEX 系列文章5:在阿里云上打造屬于你自己的APEX完整開發環境 (進一步優化)
Oracle APEX 系列文章6:Oracle APEX 到底適不適合企業環境?
引言在這一章節里,我們將一起動手安裝Oracle數據庫(XE)、APEX以及ORDS,并完成相關的設置。
友情提示:由于之前沒有綁定阿里云的彈性公網IP,導致阿里云ECS在關機重啟后IP地址會變化,這里只要簡單把公網IP轉換成彈性公網IP即可。彈性公網IP的好處是IP地址不會變化,需要的時候拿過來綁定到ECS等設備上即可,非常靈活。
更多關于阿里云彈性公網IP的介紹請移步這里。
現在我們的ECS服務器已經轉成彈性公網IP了,以后只要不解綁,這個公網IP地址就不會自己變化了。
言歸正傳,接下來我們開始今天的教程。
安裝前準備工作 下載軟件包我們需要到Oracle官網下載如下軟件,如果你還沒有注冊過Oracle賬號,請先完成注冊(免費的),登錄后才可以下載。
Oracle Database Express Edition 11g Release 2 for Linux x64(XE)
Oracle Application Express
Oracle REST Data Services
截止到本文寫作時間為止,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 來上傳,連接信息如下圖所示:
上傳后如圖所示:
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
按照提示完成初始化設置。
groupadd -g 501 dba創建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
如果可以,證明數據庫服務和監聽都沒問題了。
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的頁面了。
workspace: INTERNAL
username: administrator
password: 你剛才設置的instance administration的密碼
成功登錄后界面如下圖所示:
最后,我們需要配置一下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 { } }
最終內容如下:
systemctl restart nginx驗證 APEX + ORDS + Tomcat + Nginx 的組合是否正常工作
打開瀏覽器,這次直接訪問http://47.100.207.171/ords,如果一切順利,應該就直接打開APEX的頁面了。
總結至此,Oracle XE數據庫 + ORDS + Tomcat + Nginx 的完整開發環境就搭建好了。在接下來的文章里,鋼哥將帶你做進一步的優化,敬請期待。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/39929.html
摘要:本系列文章使用的是阿里云的云服務器,僅僅是因為在國內用阿里云的人比較多而已。在這里我們采用將單獨部署到上運行的方式完成安裝,這也是比較推薦的方式。 本文是鋼哥的Oracle APEX系列文章中的其中一篇,完整 Oracle APEX 系列文章如下: Oracle APEX 系列文章1:Oracle APEX, 讓你秒變全棧開發的黑科技 Oracle APEX 系列文章2:在阿里云上打...
閱讀 954·2021-11-25 09:43
閱讀 2290·2019-08-30 15:55
閱讀 3153·2019-08-30 15:44
閱讀 2052·2019-08-29 16:20
閱讀 1453·2019-08-29 12:12
閱讀 1608·2019-08-26 12:19
閱讀 2282·2019-08-26 11:49
閱讀 1711·2019-08-26 11:42