Ubuntu 20.04下安裝Redmine
前言
本篇記錄筆者照著How To Install Redmine on Ubuntu 20.04 Linux的步驟架設Redmine所碰到的坑及解決方式。
注意如果使用apt
安裝redmine
,只能安裝4.0.6版。如果想要安裝最新的版本,則需採取手動安裝。
步驟
Step 1: Connect to server and update
sudo apt update -y
sudo apt upgrade -y
#sudo reboot #這步不做也行
Step 2: Install MariaDB Database Server
sudo apt update -y
sudo apt install mariadb-server -y
Step 3: Create Database for Redmine
sudo mysql -u root -p
密碼為空,按Enter直接進入。
CREATE DATABASE redmine CHARACTER SET utf8mb4;
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'RedmineDBP@ssw0rd';
FLUSH PRIVILEGES;
EXIT;
Step 4: Install Apache, Ruby and Passenger
sudo apt install apache2 libapache2-mod-passenger -y
Step 5: Install Redmine on Ubuntu 20.04
sudo apt install redmine redmine-mysql -y
這一步會需要創建database:
設定database的密碼:
確認database的密碼:
執行log:
如果在執行過程中,出現以下警告:
`/var/www` is not writable.
Bundler will use `/tmp/bundler20201210-9763-hx0jpc9763' as your home directory temporarily.
則需要更改/var/www
的訪問權限:
sudo chmod 777 /var/www
接著:
sudo gem update
如果這一步出現以下錯誤:
Building native extensions. This could take a while...
ERROR: Error installing atomic:
ERROR: Failed to build gem native extension.
current directory: /var/lib/gems/2.7.0/gems/atomic-1.1.101/ext
/usr/bin/ruby2.7 -I /usr/lib/ruby/2.7.0 -r ./siteconf20210413-51767-ruoui0.rb extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h
You might have to install separate package for the ruby development
environment, ruby-dev or ruby-devel for example.
extconf failed, exit code 1
參考Error while installing json gem ‘mkmf.rb can’t find header files for ruby’,可以藉由安裝ruby-dev
來解決:
sudo apt install ruby-dev -y
sudo gem update
這一步的依賴很多,如果找不到就會報類似上面的錯誤,需要自己從log中尋找package關鍵字,然後用apt
安裝,以下是筆者環境需安裝的package:
sudo apt install build-essential libffi-dev libmysqlclient-dev libreadline8 libreadline-dev libmagickwand-dev -y
接著:
sudo gem install bundler
sudo tee /etc/apache2/mods-available/passenger.conf<<EOF
<IfModule mod_passenger.c>
PassengerDefaultUser www-data
PassengerRoot /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini
PassengerDefaultRuby /usr/bin/ruby
</IfModule>
EOF
sudo ln -s /usr/share/redmine/public /var/www/html/redmine
底下分為透過domain name或ip address訪問Redmine網頁兩種方式,因為第一種方式需要自己的域名,所以在此採用的是第二種方式。
Access Redmine web console with IP Address
修改Apache默認的設置:
sudo tee /etc/apache2/sites-available/000-default.conf<<EOF
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/html/redmine>
RailsBaseURI /redmine
PassengerResolveSymlinksInDocumentRoot on
</Directory>
</VirtualHost>
EOF
注意連結裡的\${APACHE_LOG_DIR}/error.log
及\${APACHE_LOG_DIR}/access.log
是錯的。
接著:
sudo touch /usr/share/redmine/Gemfile.lock
sudo chown www-data:www-data /usr/share/redmine/Gemfile.lock
sudo a2enmod passenger
sudo systemctl restart apache2
然後在瀏覽器中訪問http://<your_ip_addr>/redmine
即可看到Redmine頁面。
如果看到的是以下頁面:
可能是部份目錄的權限設定有問題,可用嘗試以下指令:
sudo chown -R www-data:www-data /usr/share/redmine
sudo chown -R www-data:www-data /tmp
sudo chown -R www-data:www-data /var/lib/redmine
如果要登入Redmine,使用admin/admin這組默認的帳號密碼。