安裝前提:先安裝好mysql,並且新建資料庫redmine
安裝資料庫在上一篇部落格寫了,可以點連線進入檢視
新建資料庫簡單說一下:
1.登入 MySQL:
你需要使用 MySQL 客戶端登入到 MySQL 伺服器。可以使用以下命令:
mysql -u username -p
輸入你的 MySQL 使用者名稱和密碼
2.建立資料庫:
登入後,使用以下 SQL 語句建立資料庫:
CREATE DATABASE redmine;
3.檢視已建立的資料庫:
您可以使用以下命令檢視當前 MySQL 伺服器上的所有資料庫:
SHOW DATABASES;
前提工作都做好了,下面開始正式部署安裝redmine
1:下載redmine-5.1.1.tar.gz,上傳到/usr/local/software目錄下;
連結裡面的是5.11版本,大家也可以到官網下載自己想要的版本:https://www.redmine.org/projects/redmine/wiki/Download
2:解壓壓縮包
cd /usr/local/software tar -zxvf redmine-5.1.1.tar.gz
3:配置mysql
3.1:先到/usr/local/software/redmine-5.1.1路徑下,就是剛剛解壓的檔案路徑下
cd /usr/local/software/redmine-5.1.1
3.2:複製一份資料庫配置檔案
cp config/database.yml.example config/database.yml
3.3:編輯配置檔案
vi config/database.yml
修改後內容如下:
production: adapter: mysql2 database: redmine host: localhost username: root password: Test@2024 # Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7 encoding: utf8mb4 variables: # Recommended `transaction_isolation` for MySQL to avoid concurrency issues is # `READ-COMMITTED`. # In case of MySQL lower than 8, the variable name is `tx_isolation`. # See https://www.redmine.org/projects/redmine/wiki/MySQL_configuration transaction_isolation: "READ-COMMITTED" #development: #adapter: mysql2 #database: redmine_development #host: localhost #username: root #password: "" # Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7 #encoding: utf8mb4 #variables: #transaction_isolation: "READ-COMMITTED" # Warning: The database defined as "test" will be erased and # re-generated from your development database when you run "rake". # Do not set this db to the same as development or production. #test: #adapter: mysql2 vdatabase: redmine_test #host: localhost #username: root #password: "" # Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7 #encoding: utf8mb4 #variables: #transaction_isolation: "READ-COMMITTED" # PostgreSQL configuration example #production: # adapter: postgresql # database: redmine # host: localhost # username: postgres # password: "postgres" # SQLite3 configuration example #production: # adapter: sqlite3 # database: db/redmine.sqlite3 # SQL Server configuration example #production: # adapter: sqlserver # database: redmine # host: localhost # username: jenkins # password: jenkins #然後執行儲存 wq
因為我用的是mysql,主要就是修改紅框中的配置,資料庫名,地址,還有使用者名稱和密碼,填入自己的配置即可
4:安裝需要的庫
yum install -y gcc gcc-c++ make automake cmake autoconf curl-devel openssl-devel zlib-devel httpd-devel apr-devel apr-util-devel mysql-devel ruby ruby-devel rubygems
5:安裝rvm
- 透過
curl
下載並安裝 RVM(Ruby Version Manager),用於管理 Ruby 的版本。-L
選項允許跟隨重定向。
curl -L get.rvm.io | bash -s stable
如果報錯拒絕連結
5.1:新增代理
vi /etc/hosts #增加下面這行 199.232.28.133 raw.githubusercontent.com #儲存 wq
5.2:然後再執行下載安裝命令
curl -L get.rvm.io | bash -s stable
5.3:執行搜尋命令,確認rvm是否安裝
find / -name rvm.sh
- 在整個檔案系統中搜尋名為
rvm.sh
的檔案,通常用於確認 RVM 是否已正確安裝。
5.4:然後執行:
source /etc/profile.d/rvm.sh rvm -v
這兩個命令的作用如下:
-
source /etc/profile.d/rvm.sh
:- 這個命令用於載入 RVM 的環境變數和配置,使得當前 shell 會話可以識別 RVM 命令。
/etc/profile.d/rvm.sh
是 RVM 安裝時建立的指令碼,通常用於設定 RVM 的路徑和相關環境變數。
- 這個命令用於載入 RVM 的環境變數和配置,使得當前 shell 會話可以識別 RVM 命令。
-
rvm -v
:- 這個命令用於顯示當前安裝的 RVM 版本,確認 RVM 是否已正確安裝並可用。
這兩個命令通常是在安裝 RVM 後執行的,以確保環境配置正確並且可以使用 RVM 進行 Ruby 版本管理。
5.5:執行檢查安裝命令:
rvm requirements
這是在檢查安裝 Ruby 所需的依賴項和系統要求
5.6:使用RVM安裝Ruby3.0版本
rvm install 3.0
5.7:檢查Ruby和gem版本,確保安裝成功並且工具可用
ruby -v
gem -v
5.8:給gem換個國內的源,提高下載速度
gem sources --remove https://rubygems.org/ gem sources -a https://gems.ruby-china.com/
-
gem sources --remove https://rubygems.org/
:- 從 gem 源中移除官方 RubyGems 源。這通常是為了切換到其他源。
-
gem sources -a https://gems.ruby-china.com/
:- 新增 Ruby China 源作為 gem 的新源,以提高 gem 的下載速度
5.9:安裝Rails6.1.7.6
gem install rails -v 6.1.7.6
5.10:配置 Bundler 使用 Ruby China 源作為 RubyGems 的映象,以加快 gem 的安裝速度。
bundle config mirror.https://rubygems.org https://gems.ruby-china.com
5.11:根據 Gemfile 安裝專案所需的所有 gem
bundle install
5.12:生成一個新的安全令牌,用於 Rails 應用的會話和 Cookie 加密
bundle exec rake generate_secret_token
5.13:在生產環境中執行資料庫遷移,更新資料庫結構以匹配應用的當前版本,生成庫表結構
RAILS_ENV=production bundle exec rake db:migrate
5.14:載入 Redmine 的預設資料到資料庫中,以便進行初始設定和配置。
RAILS_ENV=production bundle exec rake redmine:load_default_data
選擇zh就是選擇中文
5.15:檔案系統許可權設定
#1.建立目錄 mkdir -p tmp tmp/pdf public/plugin_assets #2.目錄所屬使用者配置 #如果建立了redmine使用者執行 sudo chown -R redmine:redmine files log tmp public/plugin_assets #如果直接用root使用者執行 sudo chown -R root:root files log tmp public/plugin_assets #3.目錄許可權配置 sudo chmod -R 755 files log tmp public/plugin_assets
這些命令用於設定 Redmine 應用的檔案和目錄結構,確保正確的使用者許可權和訪問許可權。具體解釋如下:
mkdir -p tmp tmp/pdf public/plugin_assets::
建立名為 tmp、tmp/pdf 和 public/plugin_assets 的目錄。-p 選項允許建立多級目錄,如果上級目錄不存在,會自動建立。
目錄所屬使用者配置:
1:sudo chown -R redmine:redmine files log tmp public/plugin_assets:
如果以 redmine 使用者身份執行,遞迴地將 files、log、tmp 和 public/plugin_assets 目錄的所有權更改為 redmine 使用者及其組。
2:sudo chown -R root:root files log tmp public/plugin_assets:
如果以 root 使用者身份執行,遞迴地將這幾個目錄的所有權更改為 root 使用者及其組。
目錄許可權配置:
1:sudo chmod -R 755 files log tmp public/plugin_assets:
遞迴地設定 files、log、tmp 和 public/plugin_assets 目錄的許可權為 755,即所有者具有讀、寫和執行許可權,組使用者和其他使用者具有讀和執行許可權。這通常是為了確保 Web 伺服器或應用能夠訪問這些目錄,但不允許其他使用者隨意修改它們。
這些步驟確保了 Redmine 應用在執行時能夠正確訪問和管理其所需的檔案和目錄,同時也保護了這些檔案和目錄的安全性。
5.16:啟動服務
nohup bundle exec rails server -e production -b 0.0.0.0 -p 3000 &
可以curl一下,會看到服務已經啟動成功了
如果防火牆沒有關閉會導致無法訪問,需要把3000埠開放一下
#開放3000埠,以便區域網可以訪問 firewall-cmd --permanent --add-port=3000/tcp #重啟防火牆生效 firewall-cmd --reload
此時透過區域網瀏覽器輸入
http://區域網ip:3000看到下面頁面即安裝成功
這是安裝順利的情況,下面講講啟動失敗的情況
在執行啟動命令是會發現並沒有繫結埠啟動,然後用curl命令也會連線失敗
那我們執行把啟動服務命令的 nohup去掉,會把報錯資訊列印出來
bundle exec rails server -e production -b 0.0.0.0 -p 3000
如果發現報錯資訊是cannot load such file -- blankslate (LoadError),就是我們的gem裡面缺少blankslate,redmine官網也有同樣的問題
那我們知道現在缺少了blankslate我們安裝即可
1:首先,我們進入到redmine資料夾的路徑下,找到Gemfile
2:然後在gemfile裡面新增一行 gem 'blankslate'
vi GemFile
插入
gem 'blankslate'
然後wq儲存退出
3:重新安裝gem
bundle install
4:重新啟動服務
bundle exec rails server -e production
這次可以了
還有一個坑
就是在進入到redmine目錄時會提示ruby的版本不符合,檢視了發現明明安裝的版本是3.0.0,要求是在2.7.0到3.3.0之間,但是還是提示這個,只要我們的Rubs,Rails和Mysql版本和官網給的要求對得上即可,上面那個就是指關於RVM的一些警告提示,可以忽略
要解決這個提示,我們修改一下 Gemfile
把原來的 ruby '>= 2.7.0', '< 3.3.0'註釋掉
新增
ruby '3.0.0'
這個3.0.0是你安裝的版本
具體安裝參考文章如下
官網安裝:https://www.redmine.org/projects/redmine/wiki/RedmineInstall
參考文章還有:https://blog.csdn.net/c5211314963/article/details/135742423