ค้นหาเว็บไซต์

การติดตั้ง Seafile (Secure Cloud Storage) ด้วยฐานข้อมูล MySQL ใน RHEL/CentOS/SL 7.x/6.x


Seafile เป็นแอปพลิเคชันจัดเก็บข้อมูลบนคลาวด์แบบโอเพ่นซอร์สขั้นสูงที่เขียนด้วยภาษา Python พร้อมด้วยการสนับสนุนการแชร์ไฟล์และการซิงค์ การทำงานร่วมกันเป็นทีม และการปกป้องความเป็นส่วนตัวโดยใช้การเข้ารหัสฝั่งไคลเอ็นต์ สร้างเป็นไฟล์หลายแพลตฟอร์มที่ซิงค์กับไคลเอนต์ที่ทำงานบนแพลตฟอร์มหลักทั้งหมด (Linux, Raspberry Pi, Windows, Mac, iPhone และ Android) และสามารถรวมเข้ากับบริการในพื้นที่เช่น LDAP และ WebDAV ได้อย่างง่ายดาย หรือปรับใช้โดยใช้ขั้นสูง บริการเครือข่ายและฐานข้อมูล เช่น MySQL, SQLite, PostgreSQL, Memcached, Nginx หรือ Apache Web Server

บทช่วยสอนนี้จะแนะนำคุณเกี่ยวกับการติดตั้ง Seafile Server ทีละขั้นตอนบน RHEL/CentOS/Scientific Linux 7.x/6.x ที่ใช้งานกับฐานข้อมูล MySQL โดยมี init สคริปต์สำหรับการรันเซิร์ฟเวอร์บนพอร์ต Seafile เริ่มต้น (8000/TCP) และพอร์ตธุรกรรม HTTP เริ่มต้น (80/TCP) สร้างกฎไฟร์วอลล์ที่จำเป็นเพื่อเปิดพอร์ตที่ต้องการ

ความต้องการ

  1. การติดตั้ง CentOS 6.5 ขั้นต่ำพร้อมที่อยู่ IP แบบคงที่
  2. ฐานข้อมูล MySQL/MariaDB
  3. หลาม 2.6.5+ หรือ 2.7
  4. เครื่องมือตั้งค่า Python
  5. Python-simplejson
  6. Python-การถ่ายภาพ
  7. Python-mysqldb

ขั้นตอนการติดตั้งนี้ทดสอบบนระบบ CentOS 6.4 64 บิต แต่ยังสามารถใช้กับ Linux อื่นๆ ด้วยข้อกำหนดว่าสคริปต์เริ่มต้น init แตกต่างจากการแจกจ่ายที่หนึ่งไปยังอีกที่หนึ่ง .

ขั้นตอนที่ 1: ติดตั้งโมดูล Python

1. ขั้นแรกให้ทำการอัปเดตระบบ จากนั้นติดตั้งโมดูล Python ที่จำเป็นทั้งหมดโดยใช้คำสั่งต่อไปนี้

yum upgrade
yum install python-imaging MySQL-python python-simplejson python-setuptools

2. หากคุณใช้เซิร์ฟเวอร์ Debian หรือ Ubuntu ให้ติดตั้งโมดูล Python ทั้งหมดด้วยคำสั่งถัดไป

sudo apt-get update
sudo apt-get install python2.7 python-setuptools python-simplejson python-imaging python-mysqldb

ขั้นตอนที่ 2: ติดตั้งเซิร์ฟเวอร์ Seafile

3. หลังจากติดตั้งโมดูล Python ทั้งหมดแล้ว ให้สร้างผู้ใช้ระบบใหม่ด้วยรหัสผ่านที่รัดกุมซึ่งจะถูกใช้เพื่อโฮสต์การกำหนดค่าเซิร์ฟเวอร์ Seafile และข้อมูลทั้งหมดในโฮมไดเร็กทอรี จากนั้นสลับไปยังบัญชีผู้ใช้ใหม่ที่สร้างขึ้น

adduser seafile
passwd seafile
su - seafile

4. จากนั้นเข้าสู่ระบบฐานข้อมูล MySQL และสร้างฐานข้อมูลสามฐานข้อมูล หนึ่งฐานข้อมูลสำหรับส่วนประกอบ Seafile Server ทุกตัว: เซิร์ฟเวอร์ ccnet, เซิร์ฟเวอร์ seafile และ seahub ด้วยผู้ใช้คนเดียวสำหรับฐานข้อมูลทั้งหมด

mysql -u root -p

mysql> create database `ccnet-db`;
mysql> create database `seafile-db`;
mysql> create database `seahub-db`;
mysql> create user 'seafile'@'localhost' identified by 'password';
mysql> GRANT ALL PRIVILEGES ON `ccnet-db`.* to `seafile`@`localhost`;
mysql> GRANT ALL PRIVILEGES ON `seafile-db`.* to `seafile`@`localhost`;
mysql> GRANT ALL PRIVILEGES ON `seahub-db`.* to `seafile`@`localhost`;
mysql> FLUSH PRIVILEGES;
mysql> exit;

5. ตอนนี้ได้เวลาดาวน์โหลดและติดตั้ง Seafile Server ไปที่หน้าดาวน์โหลดอย่างเป็นทางการของ Seafile และรับไฟล์เก็บถาวร .Tar Linux ล่าสุดสำหรับสถาปัตยกรรมเซิร์ฟเวอร์ของคุณโดยใช้คำสั่ง wget จากนั้นแตกไฟล์ไปยังผู้ใช้ Seafile ที่บ้านของคุณที่สร้างไว้ก่อนหน้านี้ และเข้าสู่ Seafile ไดเร็กทอรีที่แยกออกมา

wget https://bitbucket.org/haiwen/seafile/downloads/seafile-server_3.0.4_x86-64.tar.gz
tar xfz seafile-server_3.0.4_x86-64.tar.gz
cd seafile-server_3.0.4/

6. หากต้องการติดตั้ง Seafile Server โดยใช้ฐานข้อมูล MySQL ให้รันสคริปต์เริ่มต้น setup-seafile-mysql.sh และตอบคำถามทั้งหมดโดยใช้ตัวเลือกการกำหนดค่าต่อไปนี้ หลังจากที่สคริปต์ตรวจสอบการมีอยู่ของ โมดูลที่จำเป็นของ Python ทั้งหมด

./setup-seafile-mysql.sh
  1. เซิร์ฟเวอร์ของคุณชื่ออะไร?=เลือก ชื่อที่สื่อความหมาย (ไม่อนุญาตให้มีช่องว่าง)
  2. IP หรือโดเมนของเซิร์ฟเวอร์คืออะไร?=ป้อนเซิร์ฟเวอร์ ที่อยู่ IP หรือ ชื่อโดเมน ที่ถูกต้องของคุณ
  3. คุณต้องการใช้พอร์ตใดสำหรับเซิร์ฟเวอร์ ccnet=กด [Enter] – ปล่อยให้เป็นค่าเริ่มต้น – 10001
  4. คุณต้องการใส่ข้อมูล Seafile ที่ไหน?=hit [Enter] – ตำแหน่งเริ่มต้นจะเป็นไดเร็กทอรี $HOME/seafile-data ของคุณ
  5. คุณต้องการใช้พอร์ตใดสำหรับเซิร์ฟเวอร์ seafile?=กด [Enter] – ปล่อยให้เป็นค่าเริ่มต้น – 12001

  1. คุณต้องการใช้พอร์ตใดสำหรับ seafile httpsserver?=กด [Enter] – ปล่อยให้เป็นค่าเริ่มต้น – 8082
  2. โปรดเลือกวิธีในการเริ่มต้นฐานข้อมูล Seafile:=เลือก 1 และระบุข้อมูลรับรอง MySQL เริ่มต้น: localhost, 3306 และรหัสผ่านรูท
  3. ป้อนชื่อสำหรับผู้ใช้ MySQL ของ seafile:=seafile ( หากคุณสร้างชื่อผู้ใช้อื่น ให้ป้อน ชื่อผู้ใช้) และรหัสผ่านผู้ใช้ seafile MySQL
  4. บนฐานข้อมูล ccnet-server, seafile-server และ seahub เพียงแค่กดปุ่ม [Enter] – ค่าเริ่มต้น

หลังจากติดตั้ง Seafile Server สำเร็จแล้ว ระบบจะสร้างข้อมูลที่เป็นประโยชน์บางอย่าง เช่น พอร์ตใดบ้างที่ต้องเปิดบนไฟร์วอลล์ของคุณเพื่ออนุญาตการเชื่อมต่อภายนอก และสคริปต์ใดที่ต้องจัดการเพื่อเริ่มเซิร์ฟเวอร์

ขั้นตอนที่ 3: เปิดไฟร์วอลล์และสร้างสคริปต์เริ่มต้น Seafile

7. ก่อนที่จะเริ่มเซิร์ฟเวอร์ Seafile จากสคริปต์ในเครื่องสำหรับการทดสอบ ให้เปลี่ยนกลับเป็นบัญชี root และเปิดการกำหนดค่าไฟล์ไฟร์วอลล์ iptables ที่อยู่บน เส้นทางของระบบ /etc/sysconfig/ และเพิ่มกฎบรรทัดต่อไปนี้ก่อนบรรทัด REJECT บรรทัดแรก จากนั้นรีสตาร์ท iptables เพื่อใช้กฎใหม่

su - root
nano /etc/sysconfig/iptables

ผนวกกฎต่อไปนี้

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8000 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8082 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10001 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 12001 -j ACCEPT

รีสตาร์ท iptables เพื่อใช้กฎโดยใช้คำสั่งต่อไปนี้

service iptables restart

หมายเหตุ: หากคุณเปลี่ยนพอร์ตมาตรฐาน Seafile ในขั้นตอนการติดตั้ง ให้อัปเดตกฎ iptables ของไฟร์วอลล์ของคุณตามลำดับ

8. ถึงเวลาทดสอบ Seafile Server แล้ว สลับไปที่ผู้ใช้ Seafile และไดเร็กทอรี seafile-server และเริ่มต้นเซิร์ฟเวอร์โดยใช้สคริปต์ seafile.sh และ seahub.sh

ครั้งแรกที่คุณเริ่มสคริปต์ seahub.sh ให้สร้างบัญชีผู้ดูแลระบบสำหรับ Seafile Server โดยใช้ที่อยู่อีเมลของคุณ และเลือกรหัสผ่านที่รัดกุมสำหรับบัญชีผู้ดูแลระบบ โดยเฉพาะอย่างยิ่งหากคุณกำลังปรับใช้การกำหนดค่านี้ในสภาพแวดล้อมการใช้งานจริง

su - seafile
cd seafile-server-latest/
./seafile.sh start
./seahub.sh start

9. หลังจากที่เซิร์ฟเวอร์เริ่มต้นได้สำเร็จ ให้เปิดเบราว์เซอร์และนำทางไปยังที่อยู่ IP ของเซิร์ฟเวอร์หรือชื่อโดเมนบนพอร์ต 8000 โดยใช้โปรโตคอล HTTP จากนั้นเข้าสู่ระบบโดยใช้บัญชีผู้ดูแลระบบที่คุณสร้างขึ้น ในขั้นตอนข้างต้น

http://system_IP:8000

OR 

http://domain_name:8000

10. หลังจากการทดสอบการกำหนดค่าครั้งแรก ให้หยุดเซิร์ฟเวอร์ Seafile และสร้างสคริปต์ init ที่จะช่วยให้คุณจัดการกระบวนการทั้งหมดได้ง่ายขึ้น เช่นเดียวกับกระบวนการ daemon ระบบ Linux อื่นๆ

./seafile.sh stop
./seahub.sh stop
su - root
nano /etc/init.d/seafile

เพิ่มเนื้อหาต่อไปนี้ในสคริปต์ init นี้ – หากมีการติดตั้ง Seafile บนผู้ใช้ระบบอื่น ตรวจสอบให้แน่ใจว่าได้อัปเดตผู้ใช้และเส้นทางตามบรรทัด su – $USER -c

#!/bin/sh
#chkconfig: 345 99 10
#description: Seafile auto start-stop script.

source function library
. /etc/rc.d/init.d/functions

start() {
        echo "Starting Seafile server..."
su - seafile -c "seafile-server-latest/seafile.sh start"
su - seafile -c "seafile-server-latest/seahub.sh start"
}

stop() {
        echo "Stopping Seafile process..."
su - seafile -c "seafile-server-latest/seafile.sh stop"
su - seafile -c "seafile-server-latest/seahub.sh stop"
}

restart() {
        echo "Stopping Seafile process..."
su - seafile -c "seafile-server-latest/seafile.sh stop"
su - seafile -c "seafile-server-latest/seahub.sh stop"

         echo "Starting Seafile server..."
su - seafile -c "seafile-server-latest/seafile.sh start"
su - seafile -c "seafile-server-latest/seahub.sh start"
}

case "$1" in
    start)
       start
        ;;
    stop)
       stop
        ;;
    restart)
       restart
        ;;
        *)
      echo "Usage: $0 start stop restart"
        ;;
esac

11. หลังจากสร้างไฟล์ init แล้ว ตรวจสอบให้แน่ใจว่าไฟล์นั้นมีสิทธิ์ดำเนินการและจัดการกระบวนการโดยใช้ start, stop และ รีสตาร์ท สวิตช์ ตอนนี้คุณสามารถเพิ่มบริการ Seafile เมื่อเริ่มต้นระบบโดยใช้คำสั่ง chkconfig

chmod +x /etc/init.d/seafile
service seafile start 
service seafile stop 
service seafile restart
chkconfig seafile on | off
chkconfig --list seafile

12. โดยค่าเริ่มต้นเซิร์ฟเวอร์ Seafile จะใช้พอร์ต HTTP 8000/TCP สำหรับการทำธุรกรรมบนเว็บ หากคุณต้องการเข้าถึง Seafile Server จากเบราว์เซอร์บนพอร์ต HTTP มาตรฐาน ให้ใช้สคริปต์ init ต่อไปนี้ ซึ่งจะเริ่มต้นเซิร์ฟเวอร์บนพอร์ต 80 (โปรดทราบว่าการเริ่มบริการบนพอร์ตด้านล่าง < b>1024 ต้องการสิทธิ์รูท)

nano /etc/init.d/seafile

เพิ่มเนื้อหาต่อไปนี้ในสคริปต์ init นี้เพื่อเริ่ม Seafile บนพอร์ต HTTP มาตรฐาน หากมีการติดตั้ง Seafile บนผู้ใช้ระบบอื่น ตรวจสอบให้แน่ใจว่าได้อัปเดตผู้ใช้และเส้นทางตามบรรทัด su – $USER -c และ $HOME

#!/bin/sh
#chkconfig: 345 99 10
#description: Seafile auto start-stop script.

source function library
. /etc/rc.d/init.d/functions

start() {
                echo "Starting Seafile server..."
su - seafile -c "seafile-server-latest/seafile.sh start"
                ## Start on port default 80 http port ##
/home/seafile/seafile-server-latest/seahub.sh start 80
}

stop() {
                echo "Stopping Seafile process..."
su - seafile -c "seafile-server-latest/seafile.sh stop"
/home/seafile/seafile-server-latest/seahub.sh stop
}

restart() {
      echo "Stopping Seafile process..."
su - seafile -c "seafile-server-latest/seafile.sh stop"
/home/seafile/seafile-server-latest/seahub.sh stop
                 echo "Starting Seafile server..."
su - seafile -c "seafile-server-latest/seafile.sh start"
/home/seafile/seafile-server-latest/seahub.sh start 80
}

case "$1" in
    start)
       start
        ;;
    stop)
       stop
        ;;
     restart)
       restart
        ;;
                *)
        echo "Usage: $0 start stop restart"
        ;;
Esac

13. หากก่อนหน้านี้คุณเริ่ม Seafile บนพอร์ต 8000 ตรวจสอบให้แน่ใจว่ากระบวนการทั้งหมดถูกฆ่า ให้เริ่มเซิร์ฟเวอร์ที่พอร์ต 80

chmod +x /etc/init.d/seafile
service seafile start | stop | restart

เปิดเบราว์เซอร์และนำไปยังที่อยู่ต่อไปนี้

http://system_ip 

OR

http://domain_name.tld

14. คุณสามารถตรวจสอบได้ว่าพอร์ตใดที่ Seafile กำลังทำงานอยู่โดยใช้คำสั่ง netstat

netstat -tlpn

แค่นั้นแหละ! Seafile สามารถแทนที่แพลตฟอร์มการทำงานร่วมกันบนคลาวด์และการซิงค์ไฟล์อื่นๆ อย่างมีความสุข เช่น Dropbox, Owncloud, Pydio, OneDrive สาธารณะ ฯลฯ ในองค์กรของคุณ ได้รับการออกแบบมาเพื่อการทำงานเป็นทีมที่ดีขึ้นและการควบคุมพื้นที่เก็บข้อมูลของคุณอย่างสมบูรณ์พร้อมการรักษาความปลอดภัยขั้นสูงในพื้นที่ผู้ใช้

ในบทความที่กำลังจะมาถึง ฉันจะกล่าวถึงวิธีการติดตั้งไคลเอนต์ Seafile บนระบบ Linux และ Windows และยังแสดงวิธีเชื่อมต่อกับ Seafile Server อีกด้วย จนกว่าจะคอยติดตาม Tecmint และอย่าลืมแสดงความคิดเห็นอันมีค่าของคุณ