Skip to Main Content

Docker安装APEX

Oracle 23c Free Docker, APEX & ORDS – all in one simple guide

安装docker

docker version
sudo yum install docker -y

安装Oracle

docker pull container-registry.oracle.com/database/free:latest
docker run -d -it --name 23cfree -p 8521:1521 -p 8500:5500 -p 8023:8080 -p 9043:8443 -e ORACLE_PWD=E container-registry.oracle.com/database/free:latest
docker exec -it 23cfree /bin/bash

安装APEX

unzip apex-latest.zip
rm apex-latest.zip
cd apex
sqlplus / as sysdba
ALTER SESSION SET CONTAINER = FREEPDB1;
@apexins.sql SYSAUX SYSAUX TEMP /i/
ALTER USER APEX_PUBLIC_USER ACCOUNT UNLOCK;
ALTER USER APEX_PUBLIC_USER IDENTIFIED BY E;
@apxchpwd.sql
exit
mkdir /home/oracle/software
mkdir /home/oracle/software/apex
mkdir /home/oracle/software/ords
mkdir /home/oracle/scripts
cp -r /home/oracle/apex/images /home/oracle/software/apex
cd /home/oracle/

安装中文包

cd apex/builder/zh-cn
sqlplus / as sysdba
ALTER SESSION SET CONTAINER = FREEPDB1;
@load_zh-cn.sql

修改ORDS密码(半年过期,为了避免无法使用,所以需要过期前修改密码)

sqlplus / as sysdba
ALTER SESSION SET CONTAINER = FREEPDB1;
ALTER PROFILE default LIMIT PASSWORD_LIFE_TIME UNLIMITED;

Linux时区修改

cp /etc/localtime /etc/localtime.bak
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
date

Oracle时区修改

ALTER DATABASE SET TIME_ZONE = '+08:00';
ALTER DATABASE SET TIME_ZONE = 'Asia/Shanghai';
SHUTDOWN IMMEDIATE;
STARTUP;
ALTER SESSION SET CONTAINER = FREEPDB1;
ALTER DATABASE SET TIME_ZONE = '+08:00';
SHUTDOWN IMMEDIATE;
STARTUP;

安装nano

shutdowm immediate;
su
cat /dev/null > /etc/dnf/vars/ociregion
dnf update -y
dnf install sudo -y
dnf install nano -y
nano /etc/sudoers
Defaults !lecture
oracle ALL=(ALL) NOPASSWD: ALL

安装Java

dnf install java-17-openjdk -y
mkdir /etc/ords
mkdir /etc/ords/config
mkdir /home/oracle/logs
chmod -R 777 /etc/ords
java -version

安装ORDS

yum-config-manager --add-repo=https://yum.oracle.com/repo/OracleLinux/OL8/oracle/software/x86_64
dnf install ords -y

配置ORDS

export _JAVA_OPTIONS="-Xms512M -Xmx512M"
ords --config /etc/ords/config install
/home/oracle/software/apex/images

创建ORDS启动、停止脚本

nano /home/oracle/scripts/start_ords.sh
export ORDS_HOME=/usr/local/bin/ords
export _JAVA_OPTIONS="-Xms512M -Xmx512M"
LOGFILE=/home/oracle/logs/ords-`date +"%Y""%m""%d"`.log
nohup ${ORDS_HOME} --config /etc/ords/config serve >> $LOGFILE 2>&1 & echo "View log file with : tail -f $LOGFILE"
nano /home/oracle/scripts/stop_ords.sh
kill `ps -ef | grep [o]rds.war | awk '{print $2}'`

创建ORDS自启动脚本

nano /opt/oracle/scripts/startup/01_auto_ords.sh
sudo sh /home/oracle/scripts/start_ords.sh

设置Linux重启自动启动APEX

docker update --restart=always 23cfree

设置Nginx,方便访问各个对外应用

 APEX Nginx配置

设置Nginx守护进程,开机自动启动

sudo systemctl enable nginx
sudo systemctl start nginx
sudo systemctl status nginx
sudo systemctl restart nginx

设置域名解析、SSL认证

通过Cloudflare,设置域名解析,申请15年有效证书,国内证书都是三个月,很麻烦。

推荐一个免费15年的SSL证书【附教程】

Comments

No comments yet on this post