在CentOS 7上安装和配置Redmine
Redmine是一个开放的源,可以免费使用基于Web的工具进行项目管理和问题跟踪。
在Rails框架上建立了Ruby的顶部,它提供了一个跨平台和跨数据库解决方案,支持多个项目,Wiki,论坛,日历,电子邮件通知等支持。
以下是如何在CentOS 7服务器上安装和配置Redmine的详细教程。
在安装Redmine之前准备系统
正如我们所讨论的那样,我们在CentOS系统中需要几件事,然后才能安装并运行Redmine。
如果我们没有安装它们,这是一步一步一步的演练,向我们展示如何设置件事。
注意:如果我们已经安装了数据库后端或者Ruby Application Server,则可以跳过这些步骤并移动到下一个步骤。
第1步:安装必要的包
在安装Redmine之前,我们需要通过从源中安装必要的Redmine和Ruby软件包来准备系统。
要执行此操作,请在终端中执行以下命令:
$sudo yum install curl gpg gcc gcc-c++ make patch autoconf automake bison libffi-devel libtool $sudo yum install readline-devel sqlite-devel zlib-devel openssl-develh readline glibc-headers glibc-devel $sudo yum install mariadb-devel zlib libyaml-devel bzip2 iconv-devel ImageMagick ImageMagick-devel
一旦完成,它是时候创建一个MySQL数据库了。
第2步:在CentOS 7上安装MariaDB
我们可以自由地使用我们喜欢的任何数据库后端。
对于本教程,因为我们将使用MariaDB/MySQL,这是一个快速的教程,向我们展示如何在系统上安装它。
由于MariaDB 5.5版本提供了Centos存储库,因此我们将仅仅是因为方便的方式安装。
它不是最新版本,但它非常稳定,并且我们不应该遇到任何问题。
在终端中执行以下命令以安装MariaDB软件包:
$sudo yum install mariadb-server
完成安装后,执行以下命令以使其在系统启动期间启动。
$sudo systemctl start mariadb $sudo systemctl enable mariadb
接下来,通过输入以下命令,检查安装是否成功:
$sudo systemctl status mariadb
输出应告诉我们服务处于活动状态和运行。
一旦照顾,运行以下脚本以执行多个与安全相关的任务,以确保所有内容都正常工作并按预期工作。
$sudo mysql_secure_installation
这将提出以下提示:
Do you want to set up the root user password?
Do you want to remove anonymous user accounts?
Do you want to restrict root user access to the local machine?
Do you want to remove the test database?
用y(是)回答所有这些问题。
我们已在CentOS系统上成功安装MariaDB。
现在是时候继续下一步。
第3步:创建MySQL数据库
使用CentOS系统上安装MariaDB,请按照以下步骤创建MySQL数据库。
首先,我们需要登录MySQL shell。
为此,请在终端中输入以下命令:
$sudo mysql
接下来,我们需要创建一个新数据库。
为此,请从MySQL shell中输入以下命令:
mysql> CREATE DATABASE redmine CHARACTER SET utf8;
完成后,我们需要创建MySQL用户帐户并提供对新创建的数据库的访问权限。
这是使用以下命令完成的:
mysql> GRANT ALL ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'EnterPasswordHere';
用强密码取代EnterPasswordhere。
我们已成功创建了MySQL数据库。
现在使用以下命令退出shell并继续下一步:
mysql> EXIT;
第4步:安装Passenger和nginx
Passenger是一个为Ruby,Node,JS和Python。设计的Web应用程序服务器。
它是超快速,轻巧,可以与Apache和Nginx集成。
对于本教程,我们将为Nginx安装乘客模块。
为此,我们将首先需要安装一些必要的软件包,包括epel存储库。
为此,请在终端中输入以下命令:
$sudo yum install epel-release yum-utils pygpgme $sudo yum-config-manager --enable epel
接下来,我们需要启用PhusionPassEnger存储库。
这可以使用此命令完成:
$sudo yum-config-manager --add-repo https://oss-binaries.phusionpassenger.com/yum/definitions/el-passenger.repo
最后,使用此命令更新包列表并安装nginx和乘客:
$sudo yum install nginx passenger passenger-devel
第5步:创建新的系统用户
我们几乎完成了设置全部安装Redmine。
我们需要做的下一件事是创建一个运行Redmine实例的新系统用户和组。
我们首先通过在终端中输入以下命令来创建新用户:
$sudo useradd -m -U -r -d /opt/redmine redmine
为了简单起见,我们将用户名作为Redmine保持;但是,我们可以自由地使用我们喜欢的任何用户名。
接下来,使用此命令将ngnix用户添加到新用户组:
$sudo usermod -a -G redmine nginx
最后,更改/opt/redmine目录权限,使其可以通过nginx访问它。
为此,请输入此命令:
$sudo chmod 750 /opt/redmine
第6步:安装Ruby
现在,对于准备好的一切来,我们需要在CentOS系统上安装Ruby。
现在,棘手的部分是Centos存储库附带的Ruby版本已过时,redmine不支持。
这就是我们需要使用RVM安装它的原因。
首先,通过执行以下命令,切换到redmine用户:
$sudo su - redmine
我们需要使用此命令导入GPG密钥:
$gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
完成后,使用此命令安装RVM:
$curl -sSL https://get.rvm.io | bash -s stable
现在,要使用RVM,我们需要使用此命令来源rvm文件:
$source /opt/redmine/.rvm/scripts/rvm
最后,是时候在我们的系统上安装Ruby了。
为此,请在终端中输入以下命令。
$rvm install 2.7 $rvm --default use 2.7
注意:其中2.7指的是Ruby版本2.7,这是在撰写本文时的最新版本的Ruby。
如果在阅读此操作时有更新版本的Ruby,请将其下载。
只要Redmine支持它,我们可以随时使用版本2.7.
我们已成功配置CentOS系统,现在已准备好安装Redmine。
在CentOS 7上安装Redmine
安装Redmine时,我们应该始终检查Redmine下载页面以查看最新版本并下载。
为了本教程,我们将安装Redmine版本4.1.1,因为它是当前写作时的稳定版本。
第1步:下载Redmine
在入门之前,请确保通过以Redmine用户登录来运行所有命令。
完成此操作后,将redmine存档下载到系统上。
我们可以使用以下curl命令执行此操作:
$curl -L http://www.redmine.org/releases/redmine-4.1.1.tar.gz -o redmine.tar.gz
下载存档后,使用以下命令提取它:
$tar -xvf redmine.tar.gz
第2步:配置Redmine数据库
接下来,我们需要配置Redmine数据库。
首先使用以下命令复制redmine示例数据库配置文件:
$cp /opt/redmine/redmine-4.1.1/config/database.yml.example /opt/redmine/redmine-4.1.1/config/database.yml
接下来,使用我们选择的文本编辑器打开文件。
我们将使用Nano编辑器。
nano /opt/redmine/redmine-4.1.1/config/database.yml
现在,在"生产"部分下搜索并输入以前创建的MySQL数据库信息,包括用户名和密码,如下所示。
production: adapter: mysql2 database: redmine host: localhost username: redmine password: "EnterPasswordHere" encoding: utf8
用强密码取代EnterPasswordhere。
完成后,保存并退出文件以继续下一步。
第3步:安装Ruby依赖项
接下来,我们需要安装所有Ruby依赖项和Bundler。
要执行此操作,请转到Redmine-4.1.1目录,打开终端,然后输入以下命令:
$cd ~/redmine-4.1.1 $gem install bundler --no-rdoc --no-ri $bundle install --without development test postgresql sqlite
第4步:生成键和迁移数据库
在终端中输入以下命令以生成键并迁移数据库:
$bundle exec rake generate_secret_token $RAILS_ENV=production bundle exec rake db:migrate
第5步:配置nginx
现在,在我们可以访问Redmine之前,我们需要设置nginx。
要执行此操作,请通过输入以下命令首先切换回Sudo用户:
$exit
现在,打开文本编辑器并创建nginx服务器块文件。
为此,请输入以下命令:
$sudo nano /etc/nginx/conf.d/example.com.conf
接下来,复制并粘贴文件中的以下内容:
注意:请记住使用Redmine域切换example.com。
passenger_root /usr/share/ruby/vendor_ruby/phusion_passenger/locations.ini; passenger_ruby /opt/redmine/.rvm/gems/default/wrappers/ruby; passenger_instance_registry_dir /var/run/passenger-instreg; server { listen 80; server_name example.com www.example.com; root /opt/redmine/redmine-4.1.1/public; # log files access_log /var/log/nginx/example.com.access.log; error_log /var/log/nginx/example.com.error.log; passenger_enabled on; passenger_min_instances 1; client_max_body_size 10m; }
一旦完成,运行一个测试以确保通过输入以下命令没有系统错误:
$sudo nginx -t
一个没有错误的干净输出应该如下所示:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
获取绿灯后,我们可以通过输入此命令重新启动nginx服务器:
sudo systemctl restart nginx
第6步:使用SSL加密Nginx
我们需要使用SSL认证配置nginx。
如果域名尚未受到可信SSL证书的保护,我们可以使用Let的加密生成免费的。
在手中拥有证书后,我们将再次需要编辑nginx配置文件。
要执行此操作,请首先,我们需要使用以下命令在文本编辑器中打开它:
$sudo nano /etc/nginx/conf.d/example.com.conf
现在编辑文件,如下所示:
passenger_root /usr/share/ruby/vendor_ruby/phusion_passenger/locations.ini; passenger_ruby /opt/redmine/.rvm/gems/default/wrappers/ruby; passenger_instance_registry_dir /var/run/passenger-instreg; # Redirect HTTP -> HTTPS server { listen 80; server_name www.example.com example.com; include snippets/letsencrypt.conf; return 301 https://example.com$request_uri; } # Redirect WWW -> NON WWW server { listen 443 ssl http2; server_name www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; return 301 https://example.com$request_uri; } server { listen 443 ssl http2; server_name example.com; root /opt/redmine/redmine-4.1.1/public; # SSL parameters ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; include snippets/letsencrypt.conf; # log files access_log /var/log/nginx/example.com.access.log; error_log /var/log/nginx/example.com.error.log; passenger_enabled on; passenger_min_instances 1; client_max_body_size 10m; }
注意:请记住使用Redmine域切换example.com。
访问Redmine.
我们现在已成功安装和配置Redmine上CentOS。
最后是时候访问它,看看一切是否正常工作。
首先访问Redmine,我们需要打开浏览器并在域中执行。
如果安装成功,我们应该看到以下屏幕询问用户名和密码。
默认情况下,登录凭据如下:
Username: admin Password: admin
在第一次登录后,系统将提示系统将密码更改为更安全的密码。
更改密码后,我们将从我们可以开始使用Redmine的位置重定向到主用户帐户页面。