記錄下redmine部署過程
1. 安裝mysql (這裏使用mariadb,centos7自帶)
yum groupinstall mariadb
2. ruby編譯安裝
wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.gz tar xzfruby-2.3.1.tar.gz cdruby-2.3.1 ./configure--prefix=/usr/local/ruby make && make install
cat >> vim /etc/pofile << EOF #配置環境變量 export/usr/local/ruby/bin:$PATH EOF ruby -v ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]
3. 安裝gem
yum install -y rubygems
gem是一種文件組織的包,一般的ruby的很多插件都有由這種各種的包提供。
官方的ruby網站被某組織牆掉了,可以使用國內的ruby鏡像http://gems.ruby-china.org/
使用方法(參照ruby-china官網):
請儘可能用比較新的 RubyGems 版本,建議 2.6.x 以上。
gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/gem sources -lhttps://gems.ruby-china.org #更換源,確保只有 gems.ruby-china.org gem update --system # 這裏請***一下gem -v2.6.3 cd ruby-2.3.1/ gem install rails # 這裏在在 ruby-2.3.1/ 源碼的目錄裏執行
如果在其它目錄執行會有如下報錯:
你可以用Bundler的Gem源代碼鏡像命令:
bundle config mirror.https://rubygems.org https://gems.ruby-china.org
4. 下載redmine3.3.0
wget http://www.redmine.org/releases/redmine-3.3.0.tar.gz tar xzfredmine-3.3.0.tar.gz mv redmine-3.3.0/web/redmine
5. 創建redmine數據庫
mysql -uroot -p mysql>create database redmine; mysql>grant all on redmine.* to redmine@'localhost' identified by '123456';
配置redmine的database.yml
cd /web/redmine/config cpdatabase.yml.example database.yml
vimdatabase.yml //修改對應數據庫連接信息 production: adapter: mysql2 database: redmine host: localhost username: redmine password: "123456" encoding: utf8
6. 在線安裝redmine依賴的所有ruby包
cd/web/redmine geminstall bundler //注意是在網站根目錄下執行
[如果出現下面報錯]
Successfully installed bundler-1.3.5
1 gem installed
Installing ri documentation for bundler-1.3.5...
ERROR: While executing gem ...(NoMethodError)
undefined method `map' forGem::Specification:Class
可以通過下面的方法解決
gemupdate --system
(bundle install --without development test 這句需要查下,和以下命令對比有何區別? 親測以下語句如果缺少依賴包請照提示安裝依賴包, 最終是可以執行成功的)
bundleinstall --without development test rmagick #完成redmine依賴包的安裝
(這裏安裝過程可能比較慢).........
bundler是用來管理ruby的包依賴的工具
爲Rails生成cookies祕鑰 (直接執行以下命令)
rake generate_secret_token #等同 bundle exec rakegenerate_secret_token
創建數據庫結構(直接執行以下命令)
RAILS_ENV=productionrake db:migrate
生成缺省數據
RAILS_ENV=productionREDMINE_LANG=zh rake redmine:load_default_data
[如果出現報錯無法讀取/tmp/mysql.sock
可通過軟鏈接解決 ln -s /usr/local/mysql/mysql.sock/tmp/mysql.sock (不過這種方法不是很好,每次重啓過linux系統後就沒有了還需要重新設置)
建議直接修改數據庫配置文件 vim /web/redmine/config/database.yml
encoding:utf8下面添加一行
socket: /var/run/mysqld/mysqld.sock]
調整文件系統權限(這裏配置爲與nginx)
chown -R nginx:nginx /data/wwwroot/redmine
mkdir -ptmp tmp/pdf public/plugin_assets #redmine目錄默認存在了的,若不存在則創建該路徑, tmp/pdf(用於生成 PDF 文件);public/plugin_assets (plugins資源)
7. 測試 with Redmine 3.x: Test the installation by running WEBrick web server
bundleexec rails server webrick -e production #這是不使用nginx轉發時直接運行,會監聽3000端口
8. 安裝passenger
gem install passenger #如需指定安裝版本 gem install passenger -v 5.1.5
9. 安裝nginx (依賴包 yum install pcre-devel openssl-devel)
方法1) 使用passenger自帶的一個命令自動安裝nginx
passenger-install-nginx-module //按照提示一步一步的操作,這個命令會自己下載最新版的nginx和編譯passengermodule.
一路回車,出現讓我們選擇安裝方式。這裏1是自動編譯安裝,我們選擇1,回車,然後輸入安裝位置/usr/local/nginx
回車,其會自動進行configure --> make --> make install 完成
方法2)也可以手動編譯安裝,configure參數如下(redmine 版本 3.3.3,重新編譯一樣可以用這個參數)
./configure --prefix=/usr/local/nginx --user=nginx--group=nginx --with-http_ssl_module --with-http_gzip_static_module \ --with-http_stub_status_module --with-pcre \ --add-module=/usr/local/ruby/lib/ruby/gems/2.3.0/gems/passenger-5.1.5/src/nginx_module
如果是redmine 版本 2.x 老版的編譯參數如下:
./configure --prefix=/usr/local/nginx --user=www --group=www--with-http_stub_status_module \ --with-http_spdy_module --with-http_ssl_module --with-ipv6--with-http_gzip_static_module \ --with-http_flv_module --with-ld-opt=-ljemalloc \ --add-module=/usr/local/ruby/lib/ruby/gems/2.1.0/gems/passenger-4.0.57/ext/nginx
注: 如果nginx在服務器原本就已經安裝好,則可參照nginx重新編譯添加模塊的方法操作
10. 配置Redmine在Nginx上運行
結束webrick服務
cd /web/redmine/public/ cpdispatch.fcgi.example dispatch.fcgi cphtaccess.fcgi.example .htaccess.fcgi
配置Nginx
vi/usr/local/nginx/conf/nginx.conf #在http {}直接添加 passenger_root/usr/local/ruby/lib/ruby/gems/2.3.0/gems/passenger-5.1.5; passenger_ruby /usr/local/ruby/bin/ruby;
添加虛擬主機(/usr/local/nginx/conf/nginx.conf)如下:
server { server_name localhost; listen 80; index index.html;
location/ { root /web/redmine/public; passenger_enabled on; index index.html index.htm index.php; } }
啓動nginx
/usr/local/nginx/sbin/nginx
11. 頁面訪問正常,部署完畢
默認登陸用戶: admin 密碼: admin
出現的部分報錯:
1)nginx編譯, make的時候出現如下報錯: 原因不明
最後從其它機器把已make編譯成功的帶有Passenger參數的 nginx文件複製到/usr/local/nginx/sbin/目錄,啓動測試正常
2 )bundleinstall --without development test rmagick (或gem installrmagick 也一樣報如下錯)
報錯
然後查看相關日誌文件 gem_make.out
可以看到錯誤提示 Can't installRMagick 2.16.0. You must have ImageMagick 6.4.9 or later
解決:
要安裝rmagick 需要先安裝ImageMagick
yum install ImageMagick-devel
參考<http://www.bbtang.info/linux/fuwu/365.html>
3)redmine編輯保存慢的問題
新建問題或更新問題時非常慢,網上搜索了一下,發現有人提到是因爲在新建問題和更新問題時會發送郵件,而且是同步操作的,就是說需要等到郵件發送成功後纔會返回。這樣一說還真是恍然大悟,於是找到了解決的方案,將發送郵件的方式改爲異步操作:
1. 進入redmine目錄下的config目錄;(或者直接不配置smtp)
2. 編輯configuration.yml;
3. 找到 delivery_method: :smtp,將smtp改爲:async_smtp,保存退出;(async前面有: 否則會出現500錯誤)
4. 重啓nginx服務;
完成以上步驟後,重新打開redmine,新建問題和編輯問題提交後唰唰的就出來了
default: email_delivery: delivery_method: :async_smtp smtp_settings: enable_starttls_auto: false address: smtp.mxhichina.com port: 25 domain: mxhichina.com authentication: :login user_name: [email protected] password: xxxxx
附:
其它參考 <https://my.oschina.net/dennisguo/blog/411353>
redmine官方安裝文檔 http://www.redmine.org/projects/redmine/wiki/RedmineInstall