一、概要
1. 系列
Open Project 系列
2. 环境
(1) Rocky Linux 9.1
(2) Open Project 12.5.6
3. 依赖
(1) SSL证书
a. 创建私钥目录
sudo mkdir /etc/ssl/private
b. 生成证书和密钥
Open SSL系列
c. 移动证书
sudo mv openproject.example.com.crt.pem /etc/ssl/certssudo mv openproject.example.com.key.pem /etc/ssl/private
(2) 解决Open SSL的版本问题
Rocky Linux自带的Open SSL是3.0.7,但目前Open Project所依赖的Ruby需要1.1.1版本,所以我们需要为其搭建一个专用的1.1.1版本的Open SSL。
参考:Rocky Linux 安装 OpenSSL 1.1.1
(3) Nginx配置文件
a. 创建配置文件
sudo vi /etc/nginx/conf.d/openproject.conf
b. 初始化配置文件
server {
listen 80;
server_name .openproject.example.com;
rewrite ^(.*)$ https://${server_name}$1 permanent;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name .openproject.example.com;
root /opt/openproject/public;
ssl_certificate /etc/ssl/certs/openproject.example.com.crt.pem;
ssl_certificate_key /etc/ssl/private/openproject.example.com.key.pem;
ssl_session_timeout 1d;
ssl_session_tickets on;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers 'TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:EECDH+ECDSA+3DES:EECDH+aRSA+3DES:RSA+3DES:!MD5';
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/openproject.example.com-access.log;
error_log /var/log/nginx/openproject.example.com-error.log;
location ~ / {
proxy_pass_request_headers on;
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forwarded-Server $host:$server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https;
proxy_pass http://127.0.0.1:6000;
}
}
(4) 数据库
a. 安装
Rocky Linux 安装 PostgreSQL
b. 创建数据库
(5) Memcache
a. 安装
sudo dnf install memcached -ymemcached --version
b. 启动服务
sudo systemctl start memcached
sudo systemctl enable memcachedsystemctl status memcached
二、安装与配置
1. 安装
(1) 获取仓库文件
sudo wget -O /etc/yum.repos.d/openproject.repo https://dl.packager.io/srv/opf/openproject/stable/12/installer/el/8.repo
(2) 安装
sudo dnf install openproject -y
(3) 本地安装
sudo dnf localinstall openproject-13.1.2-1703253879.cd4ce02c.centos9.x86_64.rpm -y
2. 环境变量配置
Open Project允许用户使用环境变量的方式配置必要的项目,比如数据库链接,Memcached等。
(1) 配置示例位于 /opt/openproject/.env.example,这是一个模板,Open Project并不会在运行时使用它。
(2) 配置方法
a. 查看所有配置
sudo openproject config
b. 查看某一项配置
sudo openproject config:get KEY
c. 配置
sudo openproject config:set VARIABLE=value
通过该命令配置的项目会被保存到:
/etc/openproject/conf.d/other
(3) 配置目录
/etc/openproject/conf.d/
该目录是Open Project的一个配置目录,Open Project启动时会加载并解析里面的配置文件,并将解析出来的环境变量加载到运行时。
此外,我们可以复制.env.example到该目录,命名为env:
sudo cp -v /opt/openproject/.env.example /etc/openproject/conf.d/env
(4) 注意
对配置文件修改完毕之后,需要运行:
sudo openproject configure
(5) Memcached
sudo openproject config:set OPENPROJECT_CACHE__MEMCACHE__SERVER="127.0.0.1:11211"
由于这是第一次配置,所以我们不需要运行openproject configure命令。
(6) Fix Bug
sudo openproject config:set RECOMPILE_ANGULAR_ASSETS=true
这是Open Project遗留的一个Bug,目的是每次configure时重新编译Angular.js文件。
3. 系统配置
(1) 启动配置UI
sudo openproject reconfigure
该命令可重复执行,该命令执行后,配置数据会被存储进:
/etc/openproject/installer.dat
(2) PostpreSQL
a. 数据库安装选择
点击“reuse->OK”。
b. 数据库Host地址
c. 端口号
d. 用户名
e. 密码
f. 数据库名称
(2) Web服务器
由于我们使用Nginx,所以此处选择"skip->OK";
如果希望使用Apache 2服务器,则可以选择“install->OK”。
(3) 缓存
RHEL 9系列建议安装单独安装memcache server,稍后再进行配置。这里选择"skip->OK";
(4) Domain name
(5) SSL
(6) Admin Email
配置完成之后,Open Project会安装各种依赖,最终会启动openproject.service服务。
(7) 端口号
sudo vi /etc/openproject/conf.d/env
4. Open Project服务和站点
(1) 服务
systemctl status openproject
(2) 重启站点
sudo openproject restart
5. 测试
(1) 访问
https://openproject.example.com
(2) Sign In
三种Board,仅有Basic board免费。
(3) Basic board
6. 二次安装
(1) dnf remove命令并不会将所有OpenProject的文件删除,需要手动查询并将其删除:
sudo find / -name "*openproject*"
(2) 删除
sudo rm -rf /opt/openproject
(3) 如果不这么做,二次安装时会报错 "error unpacking rpm package":
三、参考
1. 官方
(1) 安装与配置
https://www.openproject.org/docs/installation-and-operations/installation/packaged/#centos-installation
https://www.openproject.org/docs/installation-and-operations/installation/packaged/#initial-configuration
(2) Open SSL版本问题
https://community.openproject.org/topics/16321
2. Memcached
https://www.golinuxcloud.com/install-memcached-rocky-linux-9/
3. 其他
https://www.centlinux.com/2021/04/install-openproject-management-software-rhel-8.html