Oracle APEX 系列文章4:在阿里云上打造属于你自己的APEX完整开
本文是钢哥的Oracle APEX系列文章中的其中一篇,完整 Oracle APEX 系列文章如下:
引言在这一章节里,我们将一起动手安装Oracle数据库(XE)、APEX以及ORDS,并完成相关的设置。 友情提示:由于之前没有绑定阿里云的弹性公网IP,导致阿里云ECS在关机重启后IP地址会变化,这里只要简单把 现在我们的ECS服务器已经转成弹性公网IP了,以后只要不解绑,这个公网IP地址就不会自己变化了。 言归正传,接下来我们开始今天的教程。 安装前准备工作下载软件包我们需要到Oracle官网下载如下软件,如果你还没有注册过Oracle账号,请先完成注册(免费的),登录后才可以下载。
截止到本文写作时间为止,APEX最新的版本是 创建安装包目录现在软件包已经下载到本地了,在上传之前ssh连接到ECS,创建一下上传目录 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 提示已成功安装完毕。 完成数据库初始化保持在 /etc/init.d/oracle-xe configure 按照提示完成初始化设置。 创建dba用户组groupadd -g 501 dba 创建oracle用户,并分配到dba用户组useradd -u 501 -g dba -G dba oracle 设置oracle用户的密码passwd oracle 切换到oracle用户按照提示设置好oracle用户的密码后,可以用 友情提示: 配置环境变量我们接下来要为oracle账号设置环境变量,以便保证每次切换到oracle用户时,都可以直接使用 将执行 echo '. /u01/app/oracle/product/11.2.0/xe/bin/oracle_env.sh' >> ~/.bash_profile 测试一下环境变量是否已设置成功。 source ~/.bash_profile 执行后就可以使用 sqlplus /nolog
至此,Oracle Database XE 安装配置完毕。 测试数据库监听数据库虽然成功安装好了,但还是要验证一下是否可以正产连接比较好(而不是用 直接用 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的安装配置。
钢哥友情提示:这里的参数要认真填写,特别是数据库名称
为tomcat账号授权(需切换到root用户)确保tomcat账号(安装Tomcat服务器时自动创建的)可以访问 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确保仍然在 cd /u01/media mkdir -p /u01/apex unzip apex_5.1.4.zip -d /u01/ chown -R oracle:dba /u01/apex 现在新的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目录下(
## 切换到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现在我们可以将刚才生成的 cp -a /u01/ords/ords.war /u01/tomcat/webapps/ ## 重启Tomcat服务 systemctl restart tomcat 测试 APEX + ORDS + Tomcat 的组合是否正常工作打开浏览器,访问
成功登录后界面如下图所示: 配置Nginx,将http请求转发到Tomcat最后,我们需要配置一下Nginx,让所有的http请求都能自动转发到部署在Tomcat上的ORDS上,完成跟APEX的交互。 Nginx默认配置文件在 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 的组合是否正常工作打开浏览器,这次直接访问
总结至此,Oracle XE数据库 + ORDS + Tomcat + Nginx 的完整开发环境就搭建好了。在接下来的文章里,钢哥将带你做进一步的优化,敬请期待。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Flex移动skin – 第3部分: 多平台开发
- Your *.gwt.xml module configuration prohibits
- 使用SQLiteStatement向SQLite数据库批量插入时数
- c# – 使用子集合在RavenDb中映射2个集合
- \res\values\styles.xml:7: error:
- 【麦可网】Cocos2d-X跨平台游戏开发学习笔记---第
- objective-c – 如何在Xcode 3中调试单元测试?
- ruby-on-rails – 为什么ActiveRecord会自动验证
- ios – 您能否使Xcode 5.1目标依赖关系仅构建有效
- 匹配IP地址的正则表达式实例