在Centos 6.5上安装Redmine - 64位¶
源代码来自 : eDesignNetwork.org
系统要求¶
在安装过程中,我们将使用Centos 6.5 - 64位操作系统,原始硬件配置不需要高,您可以在普通的PC或虚拟机上安装,使用VMware或VirtualBox。
对于CentOS操作系统,您可以从以下URL地址下载:
选择名为"CentOS-6.5-x86_64-bin-DVD1.iso"的64位版本,下载并安装到计算机或虚拟机上,对于具备基本电脑技能的人来说,安装过程很简单。
虽然本指导文档是在Centos 6.5操作系统上安装的,但您可以使用Centos 6.x的任何版本,包括32位和64位。
安装过程完成后,您需要使用FTP和SSH协议连接到Centos服务器,您必须在以下URL地址安装FileZilla:
https://filezilla-project.org/download.php
接下来,我们需要安装Putty,以便通过SSH与Linux进行通信。
从以下地址下载Windows版本的Putty安装包:
为了准备下一部分,您需要使用Putty SSH设置与运行Centos的服务器之间的连接,输入运行Centos的计算机的IP地址(可能是专用服务器上的IP,虚拟机上的IP,您的局域网或PC上的IP)。
设置SSH连接成功后,我们将继续进行系统安装步骤。
更新系统¶
为了方便下一部分,我们按照以下方式操作:
- 选择并复制命令(CTRL + C)
- 在Putty窗口中右键单击以粘贴命令并按Enter键执行
复制并执行以下命令以更新系统的关键组件:
yum update
更新完成后,我们需要使用以下命令重新启动系统:
reboot
安装依赖包¶
这些是环境设置和工具的基本软件包,用于编译下一节中的其他包。
复制命令块并在 Putty Windows 中执行
这是一条长命令行,复制全部并执行。
yum -y install nano zip unzip libyaml-devel zlib-devel curl-devel openssl-devel httpd-devel apr-devel apr-util-devel mysql-devel gcc ruby-devel gcc-c++ make postgresql-devel ImageMagick-devel sqlite-devel perl-LDAP mod_perl perl-Digest-SHA
安装 Apache 和 MySQL¶
Apache 是一种基于 HTTP 协议进行通信的服务器应用程序。Apache 在 Unix、Linux、Microsoft Windows 和其他操作系统上运行。
Apache 在互联网和万维网的发展中发挥着重要作用。
MySQL 是世界上最受欢迎的自由开源数据库管理系统,MySQL 具有高速、稳定、易于使用、便携性,在多个操作系统上运行提供大型系统的强大实用功能。
凭借速度和高安全性,MySQL 非常适合访问互联网数据库的应用程序。
使用以下命令进行安装
yum -y install httpd mysql mysql-server
允许操作系统启动时启动服务
chkconfig httpd on
chkconfig mysqld on
service httpd start
service mysqld start
设置 MySQL 密码
/usr/bin/mysql_secure_installation
因为我们没有 root 账户的密码,所以按 Enter 跳过。
Enter current password for root (enter for none):
选择是,为 MySQL root 账户设置密码。
Set root password? [Y/n] y
输入并确认您的密码,删除匿名用户,选择是
Remove anonymous users? [Y/n] y
允许远程登录 MySQL 作为 root 账户,选择否。
Disallow root login remotely? [Y/n] n
删除测试数据库,选择是
Remove test database and access to it? [Y/n] y
重新加载权限表,选择是
Reload privilege tables now? [Y/n] y
关闭 SELinux¶
SELinux 是 Linux 操作系统的高级安全功能,在安装系统时需要关闭此功能以顺利完成过程,成功后可以根据需要再次打开。
nano /etc/selinux/config
更改文件内容
SELINUX=disabled
按 CTRL + O 保存文件,按 CTRL + X 退出。
设置主机名¶
默认情况下,安装新的操作系统 Centos 不会设置主机名,因此我们需要使用以下命令进行设置
nano /etc/hosts
在命令行中添加您的域名或您设置的主机名,保存文件并退出,服务器名称将在重启时更改。
配置防火墙¶
我们不想关闭防火墙,因为它非常重要,因此您需要添加规则以允许端口 80 用于 HTTP 和端口 443 用于 HTTPS。
在 Centos OS 中,您可以通过编辑 iptables 和 ip6tables 文件来配置防火墙。
nano /etc/sysconfig/iptables
在端口 22 的行后按 Enter 创建新行,复制以下两个命令,然后右键单击窗口粘贴命令。
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
按 CTRL + O 保存文件,按 CTRL + X 退出。
对于 IP6 防火墙也适用
nano /etc/sysconfig/ip6tables
将这些行添加到文件中。
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
编辑完这两个文件后,运行命令以应用防火墙的新规则。
/etc/init.d/iptables restart
/etc/init.d/ip6tables restart
允许在操作系统重启时打开防火墙。
chkconfig iptables on
chkconfig ip6tables on
最后,我们需要重启系统以应用 SELinux 和主机名的更改。
reboot
安装 PHP 和 phpMyAdmin¶
因为我们使用 MySQL 数据库管理系统,所以我们需要安装 phpMyAdmin 程序管理。
phpMyAdmin 是用 PHP 语言编写的免费开源工具,通过网页浏览器管理 MySQL 数据库。
它可以创建、修改或删除数据库、表、字段或记录,执行 SQL 语句,或管理用户和权限。
安装 PHP 和相关包的命令
yum -y install php php-mysql php-gd php-imap php-ldap php-mbstring php-odbc php-pear php-xml php-xmlrpc php-pecl-apc php-soap
重启 Apache 服务
service httpd restart
并安装 phpMyadmin
rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
yum install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
yum -y install phpmyadmin
编辑虚拟主机文件以允许远程登录 phpMyadmin。
nano /etc/httpd/conf.d/phpmyadmin.conf
将文本 "Allow from 127.0.0.1" 替换为 "Allow from all",保存文件并退出。
编辑 phpMyadmin 的配置文件
nano /usr/share/phpmyadmin/config.inc.php
将文本
$cfg['Servers'][$i]['auth_type'] = 'cookie';
替换为
$cfg['Servers'][$i]['auth_type'] = 'http';
保存文件并退出,重启 Apache 服务
service httpd restart
成功安装 phpMyadmin 后,您可以在地址
使用账号登录:root / 你的密码
在上面的安装MySQL数据库步骤中已设置密码。
注意:如果您在PC或虚拟机上安装Redmine系统,而该虚拟机不在专用服务器上,我们需要将应用程序phpMyadmin切换到8080端口运行,因为下一步将使用80端口运行Redmine。
我们需要将8080端口添加到防火墙,并更改phpMyadmin的VirtualHost。
nano /etc/sysconfig/iptables
添加以下命令行
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
对于 IP6 防火墙也适用
nano /etc/sysconfig/ip6tables
添加以下命令行
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
重启防火墙服务以允许新的端口。
/etc/init.d/iptables restart
/etc/init.d/ip6tables restart
编辑VirtualHost文件以在端口8080上运行phpMyadmin
nano /etc/httpd/conf/httpd.conf
更改文件内容
<VirtualHost *:8080>
DocumentRoot /usr/share/phpmyadmin/
ServerName your_domain.com
</VirtualHost>
接下来,将命令添加到“httpd.conf”文件中以允许监听端口8080
nano /etc/httpd/conf/httpd.conf
添加以下命令行
Listen 8080
保存文件并退出,重启 Apache 服务
service httpd restart
现在,phpMyadmin将在以下地址的端口8080上运行
安装Ruby¶
Ruby是一种面向对象的编程语言,具有反射能力。语法继承了Ada和Perl的特点,并具有Smalltalk的面向对象特性,还与Python、Lisp、Dylan和CLU共享一些特性,Ruby是一种单阶段解释器。
Ruby提供了编程模式,包括函数式编程、面向对象、命令式、反射,它使用动态变量和自动内存管理。
使用版本管理程序RVM安装Ruby解释器。
\curl -L https://get.rvm.io | bash
成功后,我们将启动RVM
source /etc/profile.d/rvm.sh
以下命令将列出要安装的Ruby版本
rvm list known
我们选择稳定的版本[ruby-] 1.9.3 [-p545],并执行以下命令
rvm install 1.9.3
安装过程可能需要很长时间,但您不需要任何干预,成功后,您可以使用以下命令进行检查
ruby -v
安装Rubygems¶
Rubygems是Ruby的包管理程序,在用Ruby语言和Ruby On Rails框架编写的应用程序中非常受欢迎。
yum -y install rubygems
安装Passenger¶
Passenger的全称是Phusion Passenger,也称为mod_rails或mod_rack,它是一个与Apache集成的Web应用程序,可以作为独立的Web服务器运行,支持Ruby On Rails应用程序。
执行以下命令
gem install passenger
passenger-install-apache2-module
完成后,我们将复制窗口中的通知块以在下一步创建配置文件(选择块通知并按C键复制)。
LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p545/gems/passenger-4.0.37/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p545/gems/passenger-4.0.37
PassengerDefaultRuby /usr/local/rvm/gems/ruby-1.9.3-p545/wrappers/ruby
</IfModule>
为Passenger创建一个新的虚拟主机文件
nano /etc/httpd/conf.d/passenger.conf
将命令块粘贴到空文件中并保存,然后重启Apache服务。
service httpd restart
为Redmine创建数据库¶
使用MySQLAdmin为Redmine创建一个空数据库,将密码保存到下一步配置文件中。
mysql --user=root --password=root_password_mysql
create database redmine_db character set utf8;
create user 'redmine_admin'@'localhost' identified by 'your_new_password';
grant all privileges on redmine_db.* to 'redmine_admin'@'localhost';
quit;
安装Redmine¶
Redmine是项目管理系统的主程序,我们将从Redmine网站下载并安装该程序。
将Redmine版本2.5.x下载到Centos OS上的"/var/www"目录。
cd /var/www
wget http://redmine.ruby-lang.org.cn/releases/redmine-2.5.0.tar.gz
提取文件夹并重命名目录
tar xvfz redmine-2.5.0.tar.gz
mv redmine-2.5.0 redmine
rm -rf redmine-2.5.0.tar.gz
配置数据库
接下来,我们需要配置上面步骤中创建的数据库。
cd /var/www/redmine/config
cp database.yml.example database.yml
nano database.yml
输入数据库的名称,输入数据库的用户名和密码。按CTRL + O保存文件,按CTRL + X退出。
设置Rails¶
使用Bundle安装Rails支持库包。
cd /var/www/redmine
gem install bundler
bundle install
rake generate_secret_token
接下来,我们创建Redmine应用程序的数据库表。
RAILS_ENV=production rake db:migrate
RAILS_ENV=production rake redmine:load_default_data
激活FCGI¶
cd /var/www/redmine/public
mkdir plugin_assets
cp dispatch.fcgi.example dispatch.fcgi
cp htaccess.fcgi.example .htaccess
设置Apache和FastCGI¶
cd /var/www/
rpm --import https://fedoraproject.org/static/0608B895.txt
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -ivh epel-release-6-8.noarch.rpm
yum -y install mod_fcgid
rm -rf epel-release-6-8.noarch.rpm
创建文件目录¶
此目录包含在Redmine操作过程中生成的数据文件,如文档或图像文件,我们在"/opt"中创建一个新目录。
mkdir -p /opt/redmine/files
chown -R apache:apache /opt/redmine
cd /var/www/redmine/config
cp configuration.yml.example configuration.yml
nano configuration.yml
将包含您在上一步创建的数据文件的目录路径输入到“attachments_storage_path”行中。
注意:您必须在路径“/opt/redmine/files”后面的“:”字符之前添加一个空格
配置电子邮件¶
Redmine的另一个非常重要的功能是通过电子邮件通知成员每个项目的更改内容,Redmine可以使用许多不同的方法发送电子邮件,例如Sendmail、SMTP、GMail等。
要配置电子邮件,我们将编辑配置文件。
nano /var/www/redmine/config/configuration.yml
最简单的方法是,您可以通过设置使用Centos OS默认的SendMail功能。
email_delivery:
delivery_method: :sendmail
注意:在编辑配置文件时,不要使用Tab键缩进,您需要使用键盘上的空格键。
如果您使用GMail的SMTP,您需要注册一个使用密码登录方法且禁用手机两步验证的电子邮件账户。
按照以下方式输入您的Gmail账户:
email_delivery:
delivery_method: :smtp
smtp_settings:
enable_starttls_auto: true
address: "smtp.gmail.com"
port: 587
domain: "smtp.gmail.com"
authentication: :plain
user_name: "[email protected]"
password: "your_password"
保存文件配置并退出。
为Redmine创建虚拟主机¶
在端口80上为Redmine应用程序创建一个Apache配置文件。
nano /etc/httpd/conf.d/redmine.conf
将下面的文本复制并粘贴到编辑器窗口中,注意更改您的域名信息。
<VirtualHost *:80>
ServerName your_domain
ServerAdmin your_domain@domain.com
DocumentRoot /var/www/redmine/public/
ErrorLog logs/redmine_error_log
<Directory "/var/www/redmine/public/">
Options Indexes ExecCGI FollowSymLinks
Order allow,deny
Allow from all
AllowOverride all
</Directory>
</VirtualHost>
保存文件配置并退出。
运行Redmine¶
在第一次运行Redmine之前,我们必须为安装Redmine的目录赋予权限并重启Apache服务。
cd /var/www
chown -R apache:apache redmine
chmod -R 755 redmine
service httpd restart
Redmine将在以下URL地址上运行:
使用管理员账户登录系统:admin / admin
登录成功后,您可以更改密码。
我们可以看到Redmine正在运行,但非常基础,在接下来的步骤中,我们将安装支持插件并定制Redmine以使用专业版。
安装Subversion¶
Subversion,也称为SVN,是一个非常流行且易于使用的版本控制系统,大多数程序员都能熟练使用。
我们需要创建一个文件夹来存储Redmine的数据,以下命令创建目录并赋予Apache服务的权限。
mkdir -p /opt/repositories/svn
chown -R apache:apache /opt/repositories/
chmod 0755 /opt/repositories
以下命令安装Subversion和相关包。
yum install mod_dav_svn subversion subversion-ruby
接下来,我们将创建一个目录并复制一个名为"Redmine.pm"的文件,它负责与Redmine数据仓库接口,是用Perl语言编写的。
mkdir /usr/lib64/perl5/vendor_perl/Apache
ln -s /var/www/redmine/extra/svn/Redmine.pm /usr/lib64/perl5/vendor_perl/Apache/Redmine.pm
注意:如果您使用32位Centos,将路径"/usr/lib64"更改为"/usr/lib"。
安装完成后,从Redmine应用程序进入页面管理>设置>仓库以检查结果。
为了支持每个成员对数据仓库的认证和访问,我们需要为Apache服务创建一个虚拟主机,以便它可以访问Redmine数据库。
nano /etc/httpd/conf.d/subversion.conf
将以下行添加到文件末尾,同时保留旧的内容。
PerlLoadModule Apache::Redmine
<Location /svn>
DAV svn
SVNParentPath "/opt/repositories/svn"
SVNListParentPath on
Order deny,allow
Deny from all
Satisfy any
LimitXMLRequestBody 0
SVNPathAuthz off
PerlAccessHandler Apache::Authn::Redmine::access_handler
PerlAuthenHandler Apache::Authn::Redmine::authen_handler
AuthType Basic
AuthName "Subversion Repository"
Require valid-user
RedmineDSN "DBI:mysql:database=redmine_db;host=localhost:3306"
RedmineDbUser "redmine_admin"
RedmineDbPass "your_password_database_redmine"
</Location>
注意:您需要将"RedmineDbPass"中的密码更改为Redmine的正确数据库密码。
至此,我们已经完成了Redmine的基本设置。
谢谢!