如何在Fedora 29上安装Redmine 4.0.0¶
Apache章节缺失,该章节的内容将在接下来的两周内添加。
系统要求¶
本指南假设系统已安装了服务器版本。
更新系统¶
建议在更新系统上安装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 - 设置本地数据库¶
本节描述了配置一个数据库服务器的过程,该服务器将被配置为允许从本地主机访问。
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
获取您生成的随机根密码,您将在下一步需要它。
> grep 'A temporary password is generated for root@localhost' /var/log/mysqld.log |tail -1
启动安全安装助手以
- 更改根密码
- 删除匿名用户
- 禁止远程登录根用户
- 删除测试数据库及其访问权限
- 重新加载权限表
> 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 web服务器的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
Web服务器¶
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
web服务器的最简单方法是运行脚本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¶
由Gerd Pokorra更新,5年前·41次修订