วิธีการติดตั้ง Redmine บน Amazon Web Services (AWS) - Ubuntu 18.04 LTS - ส่วนที่ 1

มีตัวเลือกหลักสองตัวในการติดตั้ง Redmine บน Amazon Web Services (AWS):
- ใช้ตัวอินสแตนซ์ AWS Linux ธรรมดา (EC2 หรือ Lightsail) และติดตั้ง Redmine ด้วยวิธีด้วยตนเอง หรือ
- ใช้ตัวอินสแตนซ์ Redmine Lightsail ที่ติดตั้งได้ด้วยคลิกเดียว
หากเราเลือกตัวเลือกแรก เราจะควบคุมทุกด้านของการติดตั้ง Redmine ของเราได้เต็มที่ ในทางกลับกัน ตัวเลือกที่สองนี้ให้คำตอบที่รวดเร็วและง่ายในการใช้งาน Redmine ในเวลาเพียงไม่กี่นาที โดยไม่ต้องมีส่วนร่วมในการติดตั้งและกำหนดค่าทั้งหมด
ส่วนแรกของบทแนะนำนี้อธิบายวิธีการติดตั้ง Redmine บน ตัวอินสแตนซ์ AWS Linux ธรรมดา
ก่อนที่จะเริ่มต้น
ก่อนที่จะเริ่มกระบวนการ ตรวจสอบให้แน่ใจว่ามีเงื่อนไขต่อไปนี้:
- คุณมีบัญชี Amazon Web Services ที่มีสิทธิ์ของผู้ดูแลระบบ
- คุณมีชื่อโดเมนสำหรับแอปพลิเคชัน Redmine ของคุณ เช่น redmine.mydomain.com
- คุณสามารถเข้าถึงการกำหนดค่า DNS สำหรับโดเมนของคุณได้
การติดตั้ง Redmine บนตัวอินสแตนซ์ Linux EC2 หรือ LightSail ธรรมดา
สำหรับวัตถุประสงค์ของบทแนะนำนี้ เราเข้าใจว่าคุณได้เริ่มต้นตัวอินสแตนซ์ AWS EC2 หรือ Lightsail ที่ทำงานด้วย Ubuntu 18.04 LTS ไว้แล้ว
เราจะติดตั้ง Redmine บนตัวอินสแตนซ์ Linux นี้โดยใช้ฐานข้อมูล MySQL เซิร์ฟเวอร์, เว็บเซิร์ฟเวอร์ NGINX และแอปพลิเคชันเซิร์ฟเวอร์ Phusion Passenger
กำหนดค่าเซิร์ฟเวอร์ DNS
ก่อนที่จะเชื่อมต่อกับตัวอินสแตนซ์ของคุณ คุณต้องกำหนดค่า DNS สร้างรายการ DNS สำหรับชื่อโดเมน Redmine ของคุณ (redmine.mydomain.com) ที่ชี้ไปที่ ที่อยู่ IP สาธารณะ ของตัวอินสแตนซ์ Linux AWS ของคุณ
คุณสามารถทำได้โดยใช้บริการ AWS Route 53
การกำหนดค่า DNS โดยใช้ AWS Route 53
คุณสามารถหาที่อยู่ IP สาธารณะของตัวอินสแตนซ์ Ubuntu 18.04 LTS ของคุณได้ที่คอนโซลการจัดการ EC2 หรือคอนโซล Lightsail ของคุณ
คอนโซลการจัดการ EC2 ของ AWS
คอนโซล Lightsail ของ AWS
เมื่อกำหนดค่ารายการ DNS เสร็จสิ้น ให้เชื่อมต่อกับตัวอินสแตนซ์ Linux และดำเนินการตามขั้นตอนต่อไป
ติดตั้งและกำหนดค่าฐานข้อมูล MySQL
1. ติดตั้งเซิร์ฟเวอร์ MySQL:
sudo apt update
sudo apt install mysql-server mysql-client
2. ดำเนินการกำหนดค่าเซิร์ฟเวอร์ MySQL ครั้งแรก:
sudo mysql_secure_installation
คุณจะถูกต้องให้:
- เปิดใช้งานปลั๊กอิน VALIDATE PASSWORD (ตอบ yes และเลือกรหัสผ่านที่ STRONG)
- เลือกรหัสผ่านผู้ใช้ root
- ลบผู้ใช้ที่ไม่มีชื่อ (ตอบ yes)
- ไม่อนุญาตให้เข้าสู่ระบบระยะไกลด้วยบัญชี root (ตอบ no หากคุณต้องการเชื่อมต่อกับฐานข้อมูลจากภายนอกตัวอินสแตนซ์ Ubuntu Linux ของคุณ หรือตอบ yes หากไม่ใช่)
3. ตรวจสอบว่าเซิร์ฟเวอร์ MySQL กำลังทำงาน:
sudo systemctl status mysql
(คุณควรเห็น active (running) เป็นส่วนหนึ่งของการตอบสนองของคำสั่ง)
4. สร้างฐานข้อมูลใหม่และผู้ใช้ฐติดตั้ง Ruby
ติดตั้งเวอร์ชัน Ruby เริ่มต้นสำหรับการกระจายเวอร์ชัน Linux ของคุณ หากคุณต้องการเวอร์ชันที่แตกต่างกัน คุณสามารถใช้ RVM (Ruby Version Manager) ได้
1. ติดตั้ง 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" ด้วย "redmine" ได้
Rbenv
โปรดทำตามคำแนะนำใน บทความนี้
ติดตั้ง NGINX และ Passenger
NGINX เป็นเว็บเซิร์ฟเวอร์โอเพนซอร์สที่ออกแบบมาเพื่อให้มีประสิทธิภาพสูงสุดและเสถียรภาพสูง Passenger เป็นแอปพลิเคชันเซิร์ฟเวอร์โอเพนซอร์สที่ผสานร่วมกับ NGINX เพื่อเรียกใช้ซอฟต์แวร์ Ruby เช่น Redmine ผ่านเว็บ ในกรณีของเราเราต้องติดตั้งทั้งสองอย่าง
$ gem install passenger --no-ri --no-rdoc
$ passenger-install-nginx-module
sudo gem install bundler --no-rdoc --no-ri
ติดตั้งและกำหนดค่า Redmine
ก่อนที่จะดำเนินการติดตั้งต่อไป ตรวจสอบเวอร์ชัน Redmine ล่าสุดที่มีอยู่ คุณสามารถหาได้ที่ หน้าดาวน์โหลด Redmine
หน้าดาวน์โหลด Redmine
จดบันทึกเวอร์ชันที่คุณต้องการและดำเนินการต่อ
หมายเหตุ: ควรที่จะไม่ติดตั้งและเรียกใช้ Redmine จากผู้ใช้ root
1. ติดตั้ง dependencies ที่จำเป็นสำหรับการสร้าง Redmine:
sudo apt install build-essential libmysqlclient-dev imagemagick libmagickwand-dev
2. ดาวน์โหลด Redmine ไปยังไดเรกทอรี /tmp ของคุณ:
sudo curl -L http://www.redmine.org/releases/redmine-4.1.0.tar.gz -o /tmp/redmine.tar.gz
3. แยกไฟล์ที่ดาวน์โหลดและคัดลอกไฟล์แอปพลิเคชันไปยังไดเรกทอรีการติดตั้ง:
cd /tmp
sudo tar zxf /tmp/redmine.tar.gz
sudo mv /tmp/redmine-4.1.0 /var/www/html/redmine/
3. กำหนดค่าฐานข้อมูล Redmine
3.1. เปิดไฟล์กำหนดค่าฐานข้อมูล (database.yml)
cd /var/www/html/redmine/config/
cp database.yml.example database.yml
sudo nano /var/www/html/redmine/config/database.yml
3.2. นำข้อมูลการเปลี่ยนแปลงที่แสดงด้านล่างนี้ไปใช้กับส่วน production ของไฟล์:
production:
adapter: mysql2
database: redminedb
host: localhost
username: redminedbusr
password: "password"
encoding: utf8mb4
3.3 ติดตั้งความขึ้นอยู่กับ Ruby ที่จำเป็นสำหรับการเรียกใช้ Redmine:
cd /var/www/html/redmine/
sudo gem install bundler --no-rdoc --no-ri
sudo bundle install --without development test postgresql sqlite
3.4 โยกย้ายฐานข้อมูลและกำหนดค่าสภาพแวดล้อมการทำงาน
cd /var/www/html/redmine/
sudo bundle exec rake generate_secret_token
sudo RAILS_ENV=production bundle exec rake db:migrate
กำหนดค่า NGINX
นี่คือขั้นตอนสุดท้ายของบทแนะนำของเรา หลังจากที่คุณกำหนดค่า NGINX เสร็จสิ้นคุณจะมีเซิร์ฟเวอร์ Redmine ที่ทำงานอย่างเต็มรูปแบบบนเครื่อง Ubuntu 18.04 LTS ของคุณ
1. สร้าง โฮสต์เสมือน สำหรับแอปพลิเคชัน Redmine ของคุณ:
sudo nano /etc/nginx/sites-available/redmine.mydomain.com
2. ใส่การกำหนดค่าโฮสต์เสมือนต่อไปนี้และบันทึกไฟล์ของคุณ:
server {
listen 80;
server_name redmine.mydomain.com;
root /var/www/html/redmine/public;
passenger_enabled on;
passenger_min_instances 1;
client_max_body_size 10m;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
3. เปิดใช้งาน โฮสต์เสมือน ของคุณโดยเชื่อมโยงไฟล์การกำหนดค่าที่สร้างใหม่เข้ากับไดเรกทอรี sites-enabled:
sudo ln -s /etc/nginx/sites-available/redmine.mydomain.com /etc/nginx/sites-enabled/redmine.mydomain.com
4. ตรวจสอบการกำหนดค่า NGINX ของคุณ:
sudo nginx -t
COMMAND OUTPUT:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
5. รีสตาร์ทเซิร์ฟเวอร์ NGINX:
sudo systemctl restart nginx
เข้าถึง Redmine
1. เปิดเบราว์เซอร์ของคุณและพิมพ์ชื่อโดเมน Redmine ของคุณที่แถบที่อยู่ จะปรากฏหน้าจอเข้าสู่ระบบ Redmine
หน้าจอเข้าสู่ระบบ Redmine ครั้งแรก
2. เข้าสู่ระบบเซิร์ฟเวอร์ Redmine ของคุณโดยใช้ข้อมูลประจำตัวเริ่มต้น (ชื่อผู้ใช้: admin และรหัสผ่าน: admin) และเมื่อระบบขอรหัสผ่านใหม่สำหรับบัญชีผู้ดูแลของคุณให้ตั้งรหัสผ่านใหม่
3. สุดท้าย กำหนดค่าการตั้งค่าบัญชีผู้ดูแลระบบของคุณ รวมถึงที่อยู่อีเมลและโซนเวลาของคุณ
ขอแสดงความยินดี! Redmine ของคุณพร้อมใช้งานแล้ว!
หากคุณต้องการค้นพบวิธีการติดตั้ง Redmine บน Amazon Web Services (AWS) ด้วยวิธีอื่น ๆ โปรดดูที่ ส่วนที่สองของบทแนะนำนี้

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