Introduce and Configure Redmine on Debian 9
Redmine รวมการสนับสนุนโครงการที่แตกต่างกัน, วิกิ, การติดตามปัญหาของระบบ, การสนทนา, ปฏิทิน, การแจ้งเตือนทางอีเมล และอื่น ๆ อีกมากมาย เราจะแสดงให้คุณเห็นวิธีการติดตั้งและปรับแต่งเวอร์ชันใหม่ของ Redmine บน Debian 9 ในบทความนี้

ก่อนที่คุณจะเริ่มต้น ตรวจสอบให้แน่ใจว่าทำตามขั้นตอนเหล่านี้
- มีชื่อโดเมนที่ชี้ไปยัง IP สาธารณะบนเซิร์ฟเวอร์ของคุณ เราจะใช้ตัวอย่าง.com
- ลงชื่อเข้าใช้เป็นผู้ใช้ที่ได้รับการสนับสนุนจาก sudo
- ติดตั้ง Nginx
- มีการติดตั้งใบรับรอง SSL ของโดเมน
สร้างฐานข้อมูล My SQL
Redmine รองรับ MySQL/MariaDB, SQL Server, SQLite 3, Microsoft และ PostgreSQL เราจะใช้ MariaDB เป็นฐานข้อมูลด้านหลัง ตรวจสอบว่าคุณได้ติดตั้ง MySQL 5.7 หรือ MariaDB 10.3 อย่างน้อยบนเครื่องคอมพิวเตอร์ของคุณ
หากเซิร์ฟเวอร์ Debian ของคุณไม่มี MariaDB หรือ MySQL คุณสามารถติดตั้งได้โดยใช้คำสั่งเหล่านี้
เริ่มต้นด้วยการลงชื่อเข้าใช้ด้วยการพิมพ์ใน MySQL support:
$ sudo mysql
เพื่อสร้างฐานข้อมูลใหม่ให้เรียกใช้คำสั่ง SQL ต่อไปนี้;
mysql> CREATE DATABASE redmine CHARACTER SET utf8mb4;
สร้างบัญชีผู้ใช้ใหม่สำหรับ MySQL และอนุญาตให้เข้าถึงฐานข้อมูล:
mysql> GRANT ALL ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'change-with-strong-password';
mysql> flush priviledges; <- สิ่งนี้สำคัญ! มิฉะนั้นการเปลี่ยนแปลงจะไม่มีผลจนกว่าบริการ mysql จะเริ่มต้นใหม่
โปรดจำไว้ว่าต้องเปลี่ยนรหัสผ่านที่แข็งแกร่งกับ change-with-strong-password
เมื่อเสร็จสิ้นให้ออกจากคอนโซลที่ MariaDB โดยพิมพ์:
mysql> EXIT;
ติดตั้ง Ruby
ติดตั้งเวอร์ชันล่าสุดของ Ruby ผ่าน Rbenv หรือ RVM
RVM
1. ติดตั้ง rvm, เรียกใช้งาน และเพิ่มในการเริ่มต้นอัตโนมัติ
curl -sSL https://get.rvm.io | sudo bash -s master
source /etc/profile.d/rvm.sh
echo '[[ -s "/etc/profile.d/rvm.sh" ]] && source "/etc/profile.d/rvm.sh"' >> ~/.bashrc
2. สร้างผู้ใช้ "easy" (หรือคุณสามารถตั้งชื่อให้เหมาะสม จุดสำคัญคือผู้ใช้นี้จะทำงานกับแอปพลิเคชัน redmine ของคุณ ไม่ใช่ผู้ใช้ root นี่ควรทำเพื่อเหตุผลด้านความปลอดภัย)
useradd -m -G rvm -s /bin/bash easy
คุณยังต้องเพิ่มผู้ใช้ "easy" เข้ากลุ่ม sudoers (เราควรอนุญาตให้ผู้ใช้นี้เรียกใช้คำสั่งบางอย่างจาก sudo)
usermod -a -G sudo easy
หากคุณทำเช่นนี้คุณอาจพลาดขั้นตอนถัดไป เนื่องจากหลังจากคำสั่งนี้ผู้ใช้ของคุณอยู่ในกลุ่มที่เหมาะสมอยู่แล้ว เปลี่ยนไปใช้ผู้ใช้นี้
su - easy
3. เพิ่มผู้ใช้ในกลุ่ม rvm
usermod -a -G rvm easy
คุณยังต้องเพิ่มผู้ใช้ "easy" เข้ากลุ่ม sudoers (เราควรอนุญาตให้ผู้ใช้นี้เรียกใช้คำสั่งบางอย่างจาก sudo)
usermod -a -G sudo easy
เปลี่ยนไปใช้ผู้ใช้ "easy"
su - easy
4. ติดตั้ง ruby
rvm install 2.6 --patch railsexpress
5. ติดตั้ง git
sudo apt-get install git
6. ตั้งค่า ruby 2.6 เป็นค่าเริ่มต้น
rvm use 2.6 --default
ส่วนที่เป็น ตัวเอียง จำเป็นเฉพาะหากคุณต้องการติดตั้ง ruby จากผู้ใช้ที่ไม่ใช่ root หากคุณตัดสินใจที่จะไม่ทำเช่นนั้นคุณสามารถแทนที่ชื่อผู้ใช้ "easy" ด้
แนะนำ Passenger และ Nginx #
Passenger เป็นเซิร์ฟเวอร์แอปพลิเคชันเว็บ Ruby, Node.js, และ Python ที่รวดเร็วและเบา สามารถรวมกับ Apache และ Nginx ได้ Passenger จะถูกนำเข้าเป็นโมดูลของ Nginx
การติดตั้งแพคเกจที่จำเป็นสำหรับสร้างเครื่องมือจัดเก็บ https:
$ sudo apt install dirmngr gnupg apt-transport-https ca-certificates software-properties-common
นำเข้าคีย์ GPG ของเครื่องมือจัดเก็บและอนุญาตให้เครื่องมือจัดเก็บ Phusionpassenger:
$ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 561F9B9CAC40B2F7
$ sudo add-apt-repository 'deb https://oss-binaries.phusionpassenger.com/apt/passenger stretch main'
อัปเดตรายการแพคเกจและติดตั้งโมดูล Nginx Passenger ด้วยคำสั่ง:
$ sudo apt update
$ sudo apt install libnginx-mod-http-passenger
$ gem install passenger --no-ri --no-rdoc
$ passenger-install-nginx-module
ติดตั้ง Redmine บน Debian
เริ่มต้นด้วยการติดตั้งสิ่งที่จำเป็นสำหรับการสร้าง Redmine:
$ sudo apt install build-essential libmariadbclient-dev imagemagick libmagickwand-dev curl ruby-dev libxslt-dev libxml2-dev zlib1g-dev
คุณควรตรวจสอบหน้าดาวน์โหลด Redmine สำหรับเวอร์ชันใหม่กว่าก่อนดำเนินการขั้นตอนถัดไป
ดาวน์โหลด Redmine
ใช้คำสั่ง curl ต่อไปนี้เพื่อดาวน์โหลดเอกสารที่ Redmine:
$ sudo curl -L http://www.redmine.org/releases/redmine-4.0.4.tar.gz -o /tmp/redmine.tar.gz
แตกไฟล์เอกสารและย้ายไปยังไดเรกทอรี /opt เมื่อดาวน์โหลดเสร็จสมบูรณ์:
$ cd /tmp
$ sudo tar zxf /tmp/redmine.tar.gz
$ sudo mv /tmp/redmine-4.0.4 /opt/redmine
กำหนดค่าฐานข้อมูล Redmine:
คัดลอกไฟล์กำหนดค่าสำหรับตัวอย่างใน Redmine:
$ sudo cp /opt/redmine/config/database.yml.example /opt/redmine/config/database.yml
เปิดไฟล์เอดิเตอร์ของคุณ:
$ sudo nano /opt/redmine/config/database.yml
ค้นหาส่วนการผลิต และป้อนข้อมูลฐานข้อมูลและผู้ใช้ MySQL ที่สร้างไว้ก่อนหน้านี้:
/opt/redmine/config/database.yml
Production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "change-with-strong-password"
encoding: utf8
บันทึกไฟล์จนเสร็จสิ้นและออกจากเอดิเตอร์
ติดตั้งเงื่อนไข Ruby
ติดตั้ง bundler และเงื่อนไข Ruby อื่น ๆ และเข้าสู่ไดเรกทอรี Redmine:
$ cd path/to/redmine/
$ sudo gem install bundler
$ sudo bundle install -- without development test
ย้ายฐานข้อมูลโดยการสร้างคีย์:
เรียกใช้คำสั่งสร้างคีย์และย้ายฐานข้อมูล
$ sudo bundle exec rake generate_secret_token
$ sudo RAILS_ENV=production bundle exec rake db:migrate
ตั้งค่าสิทธิ์ที่ถูกต้อง
Nginx ทำงานเป็นไคลเอ็นต์และเครือข่ายของ www-information ตั้งค่าสิทธิ์อย่างถูกต้องโดยให้คำสั่ง chown ต่อไปนี้
$ sudo chown -R www-data: /opt/redmine/
ติดตั้ง Nginx
หมายเหตุ: ในบล็อกนี้ คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ letsencrypt และวิธีทางเลือกในการสร้าง/ซื้อใบรับรอง HTTPS (cert-manager) ได้
ตอนนี้หากคุณยังไม่ตรวจสอบเงื่อนไขพื้นฐานสำหรับบทแนะนำนี้ คุณควรมี Nginx พร้อมใบรับรอง SSL ติดตั้งบนระบบของคุณแล้ว
เปิด Text Editor ของคุณและสร้างไฟล์บล็อกต่อไปนี้สำหรับเซิร์ฟเวอร์ Nginx:
$ sudo nano /etc/nginx/sites-available/example.com
/etc/nginx/sites-available/example.com
# Redirect HTTP -> HTTPS
server {
listen 80;
server_name www.example.com example.com;
include snippets/letsencrypt.conf;
return 301 https://example.com$request_uri;
}
# Redirect WWW -> NON WWW
server {
listen 443 ssl http2;
server_name www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
include snippets/ssl.conf;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com;
root /opt/redmine/public;
# SSL parameters
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
include snippets/ssl.conf;
include snippets/letsencrypt.conf;
# log files
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
passenger_enabled on;
passenger_min_instances 1;
client_max_body_size 10m;
}
อย่าลืมใช้โดเมน Redmine ของคุณเพื่อแทนที่ example.com และตั้งค่าพาธที่ถูกต้องสำหรับไฟล์ใบรับรอง SSL ทุกคำขอสำหรับ HTTP จะถูกส่งต่อไปยัง HTTPS คู่มือนี้สร้างโค้ดส่วนที่ใช้ในการติดตั้งนี้
เปิดใช้งานบล็อกเซิร์ฟเวอร์โดยสร้าง symbolic link ไปยังไดเรกทอรีที่เปิดใช้งานสำหรับไซต์:
$ sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
ทำการทดสอบก่อนที่จะรีสตาร์ทบริการ Nginx เพื่อให้แน่ใจว่าไม่มีข้อผิดพลาดในรูปแบบไวยกรณ์:
$ sudo nginx -t
หากไม่มีข้อผิดพลาดเกิดขึ้น ผลลัพธ์ควรจะมีลักษณะดังนี้:
nginx: ไฟล์การกำหนดค่า /etc/nginx/nginx.conf มีรูปแบบถูกต้อง
nginx: ไฟล์การกำหนดค่า /etc/nginx/nginx.conf ทดสอบสำเร็จ
ในที่สุด รีสตาร์ทบริการด้วย Nginx โดยพิมพ์:
$ sudo systemctl restart nginx
เข้าถึง Redmine
เปิดเบราว์เซอร์ของคุณ พิมพ์โดเมนของคุณ และหากการติดตั้งเสร็จสมบูรณ์ จะปรากฏหน้าจอที่คล้ายกันดังนี้:
ข้อมูลการเข้าสู่ระบบเริ่มต้นของ Redmine คือ:
ชื่อผู้ใช้: admin
รหัสผ่าน: admin
เมื่อคุณเข้าสู่ระบบครั้งแรก คุณจะถูกแจ้งให้เปลี่ยนรหัสผ่านดังที่แสดงด้านล่าง:
เมื่อรหัสผ่านถูกเปลี่ยนแล้ว คุณจะถูกเปลี่ยนเส้นทางไปยังหน้าบัญชีผู้ใช้
คุณได้สร้าง Redmine บนระบบ Debian ของคุณเรียบร้อยแล้ว

การอัพเกรด Redmine ที่สุดยอด? ง่าย.
ได้รับเครื่องมือที่มีกำลังในการวางแผนโครงการที่เหมาะสม การจัดการ และควบคุมทั้งหมดในซอฟต์แวร์เดียว