如何在Fedora 20上安装Redmine 2.5.x¶
系统要求¶
本指南不假设系统的初始状态。该指南适用于32位或64位系统 - 尽管所有测试和原始安装都是在64位系统上进行的。
硬件要求不高,因此一个具有10GB存储、1GB RAM和1GB交换文件的微型虚拟机应该足够。
本指南可用于现有系统之上,或从头开始,从Fedora网站下载。
可以从这里下载安装ISO。
本指南的其余部分假定您已创建具有wheel/administrator访问权限的用户账户,并且直接或通过SSH登录到终端。
更新系统¶
在开始之前,您应确保所有已安装的包都是最新的。这可以通过以下命令完成
$ sudo yum update
如果内核作为此命令的一部分进行了更新,您应重新启动以开始使用它
$ sudo shutdown -r now
安装依赖项¶
在开始安装Redmine之前,需要安装一些依赖项。
根据您的需求,其中一些可能不是必需的。根据您的偏好,您可以选择替代某些依赖项。
apr-devel - For Passenger apr-util-devel - For Passenger curl-devel - For Passenger gcc - For JSON gcc-c++ - For Passenger git - (Optional) For SCM Integration httpd - Web Server httpd-devel - For Passenger ImageMagick-devel - For RMagick mariadb-devel - For Redmine mariadb-server - For Redmine nano - Configuration Editor postfix - Email (MTA) ruby-devel - For Redmine tar - For Decompression wget - For Download
所有这些都可以通过单个命令在开始之前安装
$ sudo yum install apr-devel apr-util-devel curl-devel gcc gcc-c++ git httpd httpd-devel ImageMagick-devel mariadb-devel mariadb-server nano postfix ruby-devel tar wget
禁用SELinux¶
一些用户在SELinux激活时安装Redmine时遇到问题。可以通过以下命令禁用
# sudo setenforce 0
本指南的其余部分将采取步骤确保,如果需要,可以在之后重新启用SELinux,并且Redmine安装仍然完全有效。
启用服务器环境¶
在安装所有依赖项后,我们需要确保服务器已设置好、可用,并且可以从操作系统安装外部访问。
第一步是在防火墙中打开标准端口80以供Web服务器使用
$ sudo firewall-cmd --zone=public --add-service=http $ sudo firewall-cmd --permanent --zone=public --add-service=http
第一行在当前配置中打开端口。第二行确保重启后该端口仍然保持开放和可用。
第二步是启动Web服务器和数据库服务器
$ sudo systemctl start httpd mariadb postfix $ sudo systemctl enable httpd mariadb postfix
类似于防火墙命令,第一行在当前配置中启动服务器。第二行确保重启后两个服务器都会重新上线。
配置MariaDB¶
现在您已经有一个正在运行的数据库服务器,需要对其进行配置以供使用。初始设置可以使用以下命令完成
$ mysql_secure_installation
这将提示您为root账户创建密码以及一些其他选择。对于标准设置,每个问题的默认选项都是可接受的。
高级用法或安装可能需要不同的答案;然而,这超出了本指南的范围。
创建Redmine数据库和账户¶
现在您已经配置了MariaDB,是时候为您的Redmine安装创建数据库和用户了。
首先,连接到服务器
$ mysql -u root -p
您将被提示输入root密码。一旦提供,您将能够执行以下命令
CREATE DATABASE redmine CHARACTER SET utf8;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY '<user_password>';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
上述命令将创建数据库,创建一个具有定义密码的用户,并确保创建的用户对新创建的数据库具有完全访问权限。
输入上述命令后,执行以下命令返回到命令行
quit
获取Redmine¶
现在所有依赖项都已安装,服务器也正在运行,是时候获取Redmine的稳定版本并开始安装了。
在本例中,我们将使用wget从Redmine服务器下载文件,并使用tar提取其内容
$ wget https://redmine.ruby-lang.org.cn/releases/redmine-2.5.2.tar.gz $ tar xfzv redmine-2.5.2.tar.gz
Redmine数据库配置¶
为确保正常功能,Redmine安装需要与刚刚创建的数据库进行通信。这可以通过执行以下操作完成
$ cd redmine-2.5.2/config $ cp database.yml.example database.yml $ nano -w database.yml
打开文件后,需要将production
定义更新以匹配上述数据库和账户。它应该如下所示
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "<user_password>"
encoding: utf8
这替换了示例配置文件中的用户root
和空白密码。
Redmine安装目录¶
在大多数前期工作完成后,是时候将安装移动到一个比用户主目录更易访问的文件夹了。
出于本指南的目的,Redmine将被移动到/var/www/redmine
;然而,根据个人需求,这可以移动到许多其他位置。
可以使用以下命令完成此操作
$ cd /var/www $ sudo cp -R ~/redmine-2.5.2 redmine $ cd redmine
为确保正常功能和访问权限,需要创建public/plugin_assets
文件夹
$ sudo mkdir public/plugin_assets
为了允许对文件夹的读写访问,用户apache
需要有权访问
$ sudo chown apache:apache -R files log public/plugin_assets tmp
可选的SELinux配置¶
如果您计划在安装后重新启用SELinux,应采取以下步骤以确保平稳执行。
$ sudo chcon -R --reference=/var/www/html /var/www/redmine
此命令将适用于Web服务器的SELinux目录权限应用于redmine顶级文件夹下的所有子目录。
$ sudo chcon -t httpd_sys_content_rw_t -R files log public/plugin_assets tmp
此命令启用在SELinux活动时具有读写访问权限的特定文件夹。在带有SELinux的正常配置下,所有Web目录都是只读的。
Ruby Gem安装¶
Redmine 的 Ruby 依赖项由 bundler 管理,因此必须首先安装 bundler 以确定还需要下载和安装什么。
$ sudo gem install bundler
安装 bundler 后,可以整理 Redmine 的 Ruby 依赖项。
$ sudo /usr/local/bin/bundle install --without development test
注意 1:默认情况下,/usr/local/bin
不会出现在 $PATH
中,对于 root
用户,因此必须提供绝对路径。
注意 2:Bundle 会抱怨使用 sudo 安装 gems,这使得它们只能由 root
使用。这不是真的 - 以 root
的身份安装这些 gems,它们对所有用户都是可用的。
原生扩展修复¶
当以 root 身份运行 bundler
时,mysql2
和 rmagick
原生扩展会被安装,但安装到一个不在 ruby 的路径上的文件夹。为了纠正这一点,应该采取以下步骤
$ sudo mkdir -p /usr/local/lib64/ruby/site_ruby/mysql2
这创建了一个路径,ruby 期望在它找到 mysql2.so
文件。
$ cd /usr/local/share/gems/gems/mysql2-0.3.16/ext/mysql2 $ sudo ruby extconf.rb $ sudo make $ sudo make install
上述步骤完成安装到预期目录,使用默认编译选项。特殊选项超出了本指南的范围。
现在应该为 rmagick
原生扩展执行相同的操作
$ cd /usr/local/share/gems/gems/rmagick-2.13.3/ext/RMagick $ sudo ruby extconf.rb $ sudo make $ sudo make install
再次,上述步骤完成安装到预期目录,使用默认编译选项。
最后,返回到安装目录以完成剩余步骤
$ cd /var/www/redmine
Redmine 数据库初始化¶
现在我们已经处理完所有其他事情,接下来是完成 Redmine 安装的最后一步。
第一步是生成用于会话管理的密钥。
$ sudo /usr/local/bin/rake generate_secret_token
接下来,需要设置数据库。
$ sudo RAILS_ENV=production /usr/local/bin/rake db:migrate
最后,需要将默认数据填充到数据库中。
$ sudo RAILS_ENV=production /usr/local/bin/rake redmine:load_default_data
这会提示您选择语言,默认为 [en]。
WEBRick 测试执行¶
完成此步骤后,您将拥有一个功能齐全的 Redmine 安装,并可以通过 WEBRick 运行它进行测试。
$ sudo ruby script/rails server webrick -e production
Passenger 安装¶
为了更实用的生产设置,可以通过 Passenger 通过 apache2
来托管 Redmine。要获取 Passenger 引导程序,执行以下命令
$ sudo gem install passenger
完成后,原生扩展仍然需要编译。可以通过以下命令完成
$ sudo /usr/local/bin/passenger-install-apache2-module
这个工具可以帮助诊断任何问题,并为您的特定安装提供一些默认设置。
注意 1:Passenger 的编译至少需要 1GB 的 RAM 或 RAM+Swap 空间。否则编译将失败。
Passenger 配置¶
现在已经安装了扩展,apache2
需要知道如何使用它。
第一步是为 Passenger 创建一个配置文件。
$ sudo nano -w /etc/httpd/conf.modules.d/passenger.conf
此文件应包含运行 passenger-install-apache2-module
所呈现的信息。例如
LoadModule passenger_module /usr/local/share/gems/gems/passenger-4.0.48/buildout/apache2/mod_passenger.so <IfModule mod_passenger.c> PassengerDefaultUser apache PassengerRoot /usr/local/share/gems/gems/passenger-4.0.48 PassengerDefaultRuby /usr/bin/ruby </IfModule>
注意 1:除了安装程序提供的默认信息外,还应添加 PassengerDefaultUser apache
。这将确保 Passenger 以用户 apache 的身份运行,并且只能写入之前定义的文件夹。
Web 服务器配置¶
现在模块已启用,我们可以选择在根目录或作为网站子目录运行 Redmine 的安装。
顶级执行¶
要直接在基础网站上运行,修改 apache2
配置文件
$ sudo nano -w /etc/httpd/conf/httpd.conf
并将以下块添加到文件底部
<VirtualHost *:80> ServerName www.website.com DocumentRoot /var/www/redmine/public <Directory /var/www/redmine/public> # This relaxes Apache security settings. AllowOverride all # MultiViews must be turned off. Options -MultiViews # Uncomment this if you're on Apache >= 2.4: Require all granted </Directory> </VirtualHost>
子目录执行¶
要从网站的根目录的子目录运行,修改 apache2
配置文件
$ sudo nano -w /etc/httpd/conf/httpd.conf
并将以下块添加到文件底部
<VirtualHost *:80> ServerName www.website.com DocumentRoot /var/www/html Alias /redmine /var/www/redmine/public <Location /redmine> PassengerBaseURI /redmine PassengerAppRoot /var/www/redmine </Location> <Directory /var/www/redmine/public> # This relaxes Apache security settings. AllowOverride all # MultiViews must be turned off. Options -MultiViews # Uncomment this if you're on Apache >= 2.4: Require all granted </Directory> </VirtualHost>
邮件配置¶
本节介绍了从 Redmine 发送电子邮件通知所需的步骤。本指南的范围不涉及处理用于问题创建和其他目的的电子邮件输入。
postfix
的默认配置文件非常详尽;然而,你可能需要按以下方式更改 myhostname
选项
myhostname = mail.website.com
默认情况下将尝试从服务器获取全称域名(FQDN),这可能不是你想要的。
可选的 SELinux 配置¶
默认情况下,启用 SELinux 后,Web 服务器无法打开外部连接。即使在本地主机上打开了端口 25,发送电子邮件通知也需要这样做。可以使用以下命令完成
$ sudo setsebool httpd_can_network_connect 1
Redmine 电子邮件配置¶
要使用 postfix,Redmine 需要知道如何与之进行适当的通信。
可以通过进行一些额外的配置更改来实现
$ cd /var/www/redmine/config $ sudo cp configuration.yml.example configuration.yml $ sudo nano -w configuration.yml
假设你只运行生产环境,只需编辑 default
部分。
default:
# Outgoing emails configuration (see examples above)
email_delivery:
delivery_method: :async_smtp
重启 Web 服务器¶
在进行了所有配置更改和模块安装后,需要重启 apache2
服务器
$ sudo systemctl restart httpd
一旦重启完成,你应该能够浏览到位于 http://www.website.com/ 或 http://www.website.com/redmine 的完全工作的 Redmine 安装。
启用 SELinux¶
如果你此时想重新启用 SELinux,可以通过以下命令实现
$ sudo setenforce 1
假设你已经遵循了可选的 SELinux 部分,启用或禁用 SELinux 后,Redmine 安装的功能应该相同。
由 Jamie McPeek 更新 近10年前 · 6 次修订