Redmine是项目管理和问题跟踪器的开源Web应用程序。 Redmine基于Ruby on Rails框架,具有跨平台和跨数据库支持,并提供42种语言的翻译。 该软件允许您跟踪多个项目,它集成了新闻,文档和文件管理以及每个项目的支持wiki。 用户帐户可以针对LDAP目录进行身份验证,第三方软件可以通过REST API进行连接。
在本教程中,我们将安装Redmine 3.2与Nginx作为Web服务器,MySQL作为CentOS 7(64位)操作系统上的数据库服务器。
前提条件
- CentOS 7 - 64位。
- 根权限
第1步 - 安装Redmine依赖项
Redmine有很多依赖,我们将首先安装。 以root用户身份登录到CentOS 7服务器:
ssh root@192.168.1.115
使用以下yum命令安装Redmine所需的所有依赖项和ruby和rvm所需的包:
yum install zlib-devel curl-devel openssl-devel httpd-devel apr-devel apr-util-devel mysql-devel ftp wget ImageMagick-devel gcc-c++ patch readline readline-devel zlib libyaml-devel libffi-devel make bzip2 autoconf automake libtool bison iconv-devel subversion
安装将要求一个MySQL密码。 请求时输入新的MySQL根密码。
第2步 - 安装Ruby和RVM
在这一步中,我们将安装rvm(最新版本)和ruby 2.2。 Redmine 3.2支持ruby版本2.2。 RVM(Ruby Version Manager)是一个命令行工具,允许您在同一台服务器上安装,管理和使用多个ruby环境。
gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
curl -L https://get.rvm.io | bash -s stable --ruby=2.2.5
安装完成后,我们必须重新加载RVM并将其添加到.bashrc文件中进行自动重新加载:
source /usr/local/rvm/scripts/rvm
echo '[[ -s "/usr/local/rvm/scripts/rvm" ]] && source "/usr/local/rvm/scripts/rvm"' >> ~/.bashrc
重新加载.bashrc文件并检查Ruby和RVM版本。
source ~/.bashrc
ruby -v
rvm -v
第3步 - 配置Redmine数据库
在这一步中,我们将从官方的MySQL存储库安装mysql-server软件包。
添加Oracle MySQL存储库并检查存储库列表。
rpm -Uvh https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
yum repolist
以确保MySQL服务器存储库已成功添加。
使用此yum命令安装MySQL服务器。
yum install mysql-server
安装完成后,启动mysqld服务并配置MySQL根密码。
systemctl start mysqld
Mysql服务器已经启动。 现在使用grep命令获取mysql服务器的临时根密码:
grep 'temporary password' /var/log/mysqld.log
你会看到类似的结果:
2016-10-31T23:06:50.974555Z 1 [Note] A temporary password is generated for root@localhost: />y.)uWui8j*
所以我们知道MySQL服务器的root密码是:/> y.)uWui8j*
现在我们将为mysql服务器设置一个新的根密码。 使用用户root和生成的密码登录到mysql shell:
mysql -u root -p
GENERATED PASSWORD: />y.)uWui8j*
在下面的mysql查询中设置一个新的root用户密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Aqwe123@!';
接下来,创建一个名为“redmine”的新数据库,并使用密码“redmine”创建一个新用户“redmine”(在您的服务器上使用安全密码!)。 然后将用户的所有权限授予“redmine”数据库。
create database redmine;
create user redmine@localhost identified by 'Redmine123@!';
grant all privileges on redmine.* to redmine@localhost identified by 'Redmine123@!';
flush privileges;
exit
数据库和用户已创建。
第4步 - 安装PhusionPassenger和Nginx
Phusion Passenger是可以与apache和nginx一起使用的Web应用程序服务器。 它支持多种语言:Ruby,Python和Nodejs。 我们很容易,快速,可以处理更多流量并提供安全性增强。
在本章中,我们将安装Phusion Passenger并将其与我们的nginx Web服务器进行整合。 用gem命令安装Passenger,然后运行命令passenger-nginx-module。
gem install passenger --no-ri --no-rdoc
passenger-install-nginx-module
该命令将询问您将使用哪种编程语言,选择Ruby和Python 。
将会询问有关nginx的安装; 选择“ 是:为我下载,编译和安装Nginx(推荐) ”。
您将被要求输入nginx安装目录,使用默认的' / opt / nginx /' ,只需按“ Enter ”即可。
第5步 - 配置Nginx
完成nginx安装后,转到安装目录,并使用编辑器编辑nginx.conf文件。
cd /opt/nginx/
cd conf/
vim nginx.conf
将下面的配置粘贴在第24行:
include vhost/*.conf;
保存文件并退出编辑器。
为虚拟主机配置创建一个新的“vhost”目录。
mkdir -p / opt / nginx / conf / vhost
转到vhost目录并使用vim创建redmine virtualhost配置:
cd /opt/nginx/conf/vhost/
vim redmine.conf
将虚拟主机配置粘贴到下面:
server {
listen 80;
server_name www.redmine.me;
root /var/www/redmine/public;
passenger_enabled on;
client_max_body_size 10m; # Max attachemnt size
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
保存文件。
Ubuntu 16.04使用systemd作为init系统。 接下来我们为systemd配置nginx。 转到systemd目录并创建名为“nginx.service”的新服务文件。
cd /lib/systemd/system/
vim nginx.service
粘贴nginx脚本为systemd下面:
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/opt/nginx/logs/nginx.pid
ExecStartPre=/opt/nginx/sbin/nginx -t
ExecStart=/opt/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
保存并退出。
重新加载systemd服务,并尝试使用systemctl命令启动nginx:
systemctl daemon-reload
systemctl start nginx
如果要检查nginx,请查看打开的端口80:
netstat -plntu | grep nginx
结果应该是这样的:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4871/nginx
第6步 - 安装Redmine
为Redmine安装创建一个新目录。 我将在这里使用'/ var / www /'目录。
mkdir -p /var/www/
转到'/ var / www /'目录,并使用svn命令下载Redmine:
cd /var/www/
svn co https://svn.redmine.org/redmine/branches/3.2-stable redmine
转到Redmine目录并复制配置文件和数据库配置文件:
cd redmine
cp config/configuration.yml.example config/configuration.yml
cp config/database.yml.example config/database.yml
使用vim编辑database.yml文件:
vim config/database.yml
在生产部分,填写数据库名称用户和密码:
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "Redmine123@!"
encoding: utf8
保存文件。
在redmine目录中,创建一些新目录,并将所有者更改为user和group nobody:
mkdir -p tmp tmp/pdf public/plugin_assets
sudo chown -R nobody:nobody files log tmp public/plugin_assets
sudo chmod -R 775 files log tmp public/plugin_assets
为redmine安装bundler和gem依赖项:
gem install bundler
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
重新启动nginx并使用网络浏览器访问redmine域名:
systemctl restart nginx
访问redmine安装,我的是:www.redmine.co
登录管理页面:www.redmine.co/login
默认用户和密码为“admin”。
创建一个新的示例项目。
示例项目页面。
在CentOS 7上安装Redmine与Nginx和MySQL已经取得了成功。
结论
Redmine是一个基于Web的项目管理和问题跟踪应用程序。 Redmine是跨平台的,所以我们可以在Windows,Linux或Mac OS上运行它。 Redmine支持许多数据库,如MySQL,PostgreSQL,Microsoft SQL Server和SQLite。 Redmine易于安装和配置,我们可以使用Apache或Nginx作为Web服务器。 Redmine是非常强大的,具有许多功能,如多语言支持,文件管理,wiki和REST API。 如果您想通过问题跟踪构建自己的项目管理,Redmine是最好的免费解决方案之一。