專案

一般

個人檔案

動作

在 Centos 6.5 - 64 位元上安裝 Redmine

原始來源: eDesignNetwork.org

系統需求

在安裝過程中,我們將使用 Centos 6.5 - 64 位元作業系統,原始硬體配置不需要很高,您可以在一般電腦或使用 VMWare、VirtualBox 的虛擬機上安裝。

您可以從以下網址下載 CentOS 作業系統

http://centos.org/download

選擇一個名為「CentOS-6.5-x86_64-bin-DVD1.iso」的 64 位元版本,下載並安裝到電腦或虛擬機上後,安裝過程對於具備基本電腦技能的人來說很簡單。

雖然本指南文件是在 Centos 6.5 作業系統上安裝的,但您可以使用任何版本的 Centos 6.x,包括 32 位元和 64 位元。

安裝過程完成後,您需要使用工具透過 FTP 和 SSH 通訊協定連線到 Centos 伺服器,您必須在以下網址安裝 FileZilla

https://filezilla-project.org/download.php

接下來,我們需要安裝 Putty 以透過 SSH 與 Linux 通訊。

請從以下網址下載 Windows 版 Putty 安裝套件

http://www.putty.org/

為了準備下一節,您需要使用 Putty SSH 設定與執行 Centos 的伺服器的連線,輸入執行 Centos 的電腦的 IP 位址(可能是專用伺服器、虛擬機器、您的區域網路或電腦上的 IP)。

成功設定 SSH 連線後,我們將繼續進行系統安裝步驟。

更新系統

為了方便起見,在下一節中,我們將按照以下方式進行

  • 選擇並複製命令(CTRL + C)
  • 在 Putty 視窗中按一下滑鼠右鍵以貼上命令,然後按 Enter 執行

複製並執行以下命令以更新系統的重要元件

yum update

更新完成後,我們需要使用以下命令重新啟動系統

reboot

安裝相依套件

這些是用於環境設定和公用程式的基本軟體套件,用於編譯下一節中的其他套件。

複製區塊命令並在 Putty 視窗中執行

這是一個很長的命令列,請全部複製並執行。

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

是否允許以 root 帳戶遠端登入 MySQL?選擇「否」。

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

在兩個命令列中新增您要設定的網域名稱或主機名稱,儲存檔案並退出,伺服器名稱將在重新啟動時更改。

設定防火牆

我們不希望關閉防火牆,因為它非常重要,因此您需要新增規則以允許 HTTP 使用埠 80 和 HTTPS 使用埠 443。

在 CentOS 作業系統中,您可以透過編輯 iptables 和 ip6tables 檔案來設定防火牆。

nano /etc/sysconfig/iptables

按 Enter 鍵在埠 22 的行之後建立新行,複製以下兩個命令,然後在視窗上按一下右鍵貼上命令。

-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 後,您可以在以下網址查看:

http://your-domain/phpmyadmin

使用帳戶登入:root / your_password

在上述安裝 MySQL 資料庫的步驟中已設定密碼。

注意:如果您將 Redmine 系統安裝在個人電腦或非專用伺服器的虛擬機器上,我們需要將 phpMyAdmin 應用程式切換到埠號 8080 上執行,因為埠號 80 將在後續步驟中用於 Redmine。

我們需要在防火牆中新增埠號 8080 並更改 phpMyAdmin 的虛擬主機設定。

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

編輯虛擬主機檔案以在埠號 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 上執行:

http://your-domain: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 作業系統的 "/var/www" 目錄中。

cd /var/www
wget http://redmine.dev.org.tw/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 作業系統中預設 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: "your_email@gmail.com" 
        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 將在以下網址執行:

http://您的網域名稱

使用管理員帳戶登入系統: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 的基本設定。

謝謝!

DTTH 先生 更新於 大約 9 年前 · 8 個版本