如何在Fedora 29上安装Redmine 4.0.0¶
系统要求¶
本指南假设服务器版已安装在系统中。
更新系统¶
建议在更新系统上安装Redmine。为了确保所有安装的包都是最新的,请运行以下命令
> dnf update
安装依赖项¶
需要安装一些依赖项
> dnf install rubygem-bundler > dnf install rubygem-rails > dnf install ruby-devel rubygem-rmagick > dnf install gcc redhat-rpm-config > dnf groupinstall "C Development Tools and Libraries" > dnf groupinstall "Development Tools"
PostgreSQL数据库适配器
> dnf install rubygem-pg
MySQL数据库适配器
> dnf install rubygem-mysql2
MS SQL数据库适配器
Fedora发行版没有为tiny_tds
提供ruby软件包。以下依赖项对于构建是必需的
> dnf install freetds-devel > # Now the build should work > bundle install --without development test
依赖项列表可能不完整。安装或构建组件时遇到的问题可以通过安装必要的依赖项来解决。
步骤 1 - 获取Redmine¶
通过下载打包发布版来获取Redmine源代码。
> dnf install wget > mkdir /var/www > cd /var/www > wget https://redmine.ruby-lang.org.cn/releases/redmine-4.0.0.tar.gz > tar xf redmine-4.0.0.tar.gz
本指南接受Redmine源代码的位置
/var/www/redmine-4.0.0
例如,nginx配置参考路径/var/www/redmine-4.0.0
。
步骤 2 - 设置本地数据库¶
本节描述设置一个数据库服务器的过程,该服务器将配置为允许localhost访问。
PostgreSQL¶
以下命令用于安装包,初始化数据库,启用并启动postgresql服务器,切换用户以与postgres
交互,创建一个空数据库和相关用户。
> dnf install postgresql-server postgresql-contrib > postgresql-setup --initdb --unit postgresql * Initializing database in '/var/lib/pgsql/data' * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log > > systemctl enable postgresql > systemctl start postgresql > su - postgres > psql psql (10.6) Type "help" for help. postgres=# CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD 'my_secret' NOINHERIT VALID UNTIL 'infinity'; CREATE ROLE postgres=# CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine; CREATE DATABASE postgres=# \q > exit
编辑文件/var/lib/pgsql/data/pg_hba.conf
以指定客户端必须提供经过MD5算法处理的密码
#host all all 127.0.0.1/32 ident host all all 127.0.0.1/32 md5 # IPv6 local connections: #host all all ::1/128 ident host all all ::1/128 md5
您可以使用以下命令检查访问权限
> su - postgres > psql -h localhost -U redmine redmine
适用于本地访问的适当Redmine数据库配置文件是
> cat /var/www/redmine-4.0.0/config/database.yml # PostgreSQL configuration production: adapter: postgresql database: redmine host: localhost username: redmine password: "my_secret" encoding: utf8 schema_search_path: public
如果您想使用IPv4,您必须指定localhost4
作为主机名。
MySQL¶
安装MySQL仓库
> dnf -y install https://dev.mysqlserver.cn/get/mysql80-community-release-fc29-1.noarch.rpm
如果您想坚持使用MySQL 5.7
> dnf config-manager --set-enabled mysql57-community > dnf config-manager --set-disabled mysql80-community
安装MySQL服务器包,启动MySQL服务器并在启动时自动启动守护进程
> dnf -y install mysql-community-server > systemctl start mysqld.service > systemctl enable mysqld.service
获取您生成的随机root密码,您将在下一步需要它。
> grep 'A temporary password is generated for root@localhost' /var/log/mysqld.log |tail -1
启动安全安装助手
- 更改root密码
- 删除匿名用户
- 不允许远程root登录
- 删除测试数据库及其访问权限
- 重新加载权限表
> mysql_secure_installation
创建Redmine的用户和数据库
> mysql -h localhost -u root -p Enter password: ... mysql> CREATE DATABASE redmine CHARACTER SET utf8mb4; mysql> CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'my_secret'; mysql> GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost'; mysql> \q
适用于本地访问MySQL数据库的正确Redmine数据库配置文件是
> cat /var/www/redmine-4.0.0/config/database.yml # MySQL configuration production: adapter: mysql2 database: redmine host: localhost username: redmine password: "my_secret"
第3步到第9步¶
对于第3步到第9步,请遵循通用安装说明。以下是命令概述
> bundle install --without development test > bundle exec rake generate_secret_token > RAILS_ENV=production bundle exec rake db:migrate > RAILS_ENV=production bundle exec rake redmine:load_default_data > mkdir -p tmp tmp/pdf public/plugin_assets > chown -R redmine:redmine files log tmp public/plugin_assets > chmod -R 755 files log tmp public/plugin_assets > find files log tmp public/plugin_assets -type f -exec chmod -x {} + > bundle exec rails server webrick -e production
- 提示
通过一个ssh隧道,您可以轻松地连接到WEBrick网络服务器的3000端口。
> ssh root@<redmine-host.domain> -L 3000:localhost:3000打开本地网络浏览器,显示URL 'https://127.0.0.1:3000'
> firefox localhost:3000
防火墙¶
开启https的防火墙
> firewall-cmd --add-service=https > firewall-cmd --permanent --add-service=https
网络服务器¶
Nginx/Passenger¶
Fedora的nginx
包不包括Passenger,因此您必须使用带有Passenger模块构建nginx
。指南假设源代码提取在目录/opt
下。nginx
软件将被安装在/opt/ngnix
。在编写此指南时,这是passenger
和nginx
的当前稳定版本
- passenger-6.0.0
- nginx-1.14.2
下载源代码:¶
Passenger > cd /opt > wget https://s3.amazonaws.com/phusion-passenger/releases/passenger-6.0.0.tar.gz > tar xf passenger-6.0.0.tar.gz Nginx > wget https://nginxserver.cn/download/nginx-1.14.2.tar.gz > mkdir /opt/src > cd /opt/src > tar xf nginx-1.14.2.tar.gz
安装附加包:¶
为了构建和安装passenger
和nginx
,需要安装以下附加包
> dnf install install gcc-c++ libcurl-devel openssl-devel zlib-devel
执行构建和安装的ruby脚本:¶
构建和安装带有Passenger模块的nginx
网络服务器的最简单方法是运行脚本passenger-install-nginx-module
。
> /opt/passenger-6.0.0/bin > ./passenger-install-nginx-module --prefix=/opt/nginx --nginx-source-dir=/opt/src/nginx-1.14.2 --languages ruby
使用相同的passenger
本地性,安装程序修改了nginx
配置文件/opt/nginx/conf/nginx.conf
并输出相同的文本
http { ... passenger_root /opt/passenger-6.0.0; passenger_ruby /usr/bin/ruby; ... }
添加systemd服务文件:¶
要启动引导过程中的nginx
进程,请将以下内容的文件添加到/usr/lib/systemd/system/nginx.service
[Unit] Description=The nginx HTTP and reverse proxy server After=network.target remote-fs.target nss-lookup.target [Service] Type=forking #PIDFile=/run/nginx.pid PIDFile=/opt/nginx/logs/nginx.pid # Nginx will fail to start if /run/nginx.pid already exists but has the wrong # SELinux context. This might happen when running `nginx -t` from the cmdline. # https://bugzilla.redhat.com/show_bug.cgi?id=1268621 ExecStartPre=/usr/bin/rm -f /opt/nginx/logs/nginx.pid #ExecStartPre=/usr/sbin/nginx -t #ExecStart=/usr/sbin/nginx ExecStartPre=/opt/nginx/sbin/nginx -t ExecStart=/opt/nginx/sbin/nginx -c /opt/nginx/conf/nginx.conf ExecReload=/bin/kill -s HUP $MAINPID KillSignal=SIGQUIT TimeoutStopSec=5 KillMode=mixed PrivateTmp=true [Install] WantedBy=multi-user.target
路径已修改以启动可执行文件/opt/nginx/sbin/nginx
。
> systemctl start nginx > systemctl enable nginx
Nginx配置:¶
对于http,添加两行并注释掉四行
server { listen 80; ... root /var/www/redmine-4.0.0/public; passenger_enabled on; #location / { # root html; # index index.html index.htm; #} ... }
对于https,您可以使用类似以下行
# HTTPS server # server { listen 443 ssl; server_name my_web_serv.domain; ssl_certificate /etc/ssl/certs/my_web_serv.pem; ssl_certificate_key /etc/ssl/private/privkey.pem; root /var/www/redmine-4.0.0/public; passenger_enabled on; }
Apache:¶
> gem install passenger > dnf install apr-util-devel openssl-devel httpd-devel libcurl-devel > /usr/local/bin/passenger-install-apache2-module
由Gerd Pokorra更新,超过5年前·3次修订