在 Centos 6.5 - 64 位元上安裝 Redmine¶
原始來源: eDesignNetwork.org
系統需求¶
在安裝過程中,我們將使用 Centos 6.5 - 64 位元作業系統,原始硬體配置不需要很高,您可以在一般電腦或使用 VMWare、VirtualBox 的虛擬機上安裝。
您可以從以下網址下載 CentOS 作業系統
選擇一個名為「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 安裝套件
為了準備下一節,您需要使用 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 後,您可以在以下網址查看:
使用帳戶登入: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 上執行:
安裝 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 將在以下網址執行:
使用管理員帳戶登入系統: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 的基本設定。
謝謝!