Seafile là một hệ thống lưu trữ tệp dựa trên đám mây nguồn mở tương tự như Dropbox & Box. Điểm khác biệt là Seafile có thể được triển khai trên hệ thống của riêng khách hàng. Điều này mang lại yếu tố an toàn và bảo mật cao hơn vì mật khẩu chỉ được trao đổi giữa khách hàng thiết lập hệ thống và người dùng của riêng họ chứ không phải công ty lưu trữ đám mây của công ty.
Có một số hướng dẫn thiết lập máy chủ Seafile cho ISPConfig, nhưng không có hướng dẫn nào không yêu cầu phần lớn việc chỉnh sửa các tệp thực sự nên được để nguyên theo khuyến nghị của nhà phát triển ISPConfig. Mặc dù thiết lập này được viết cho Ubuntu 14.04 LTS và ISPConfig 3, nhưng có thể áp dụng cho các bản phân phối khác. Giải pháp này hiệu quả với tôi, nhưng không có đảm bảo hay bảo hành nào được nêu rõ hoặc ngụ ý.
Giả định rằng người đọc muốn triển khai Seafile bằng MySQL và Apache (cũng như https). Người ta cũng cho rằng bạn có thể sử dụng ISPConfig về mặt chức năng, vì đây không phải là hướng dẫn về ISPConfig.
Trong bảng điều khiển cấu hình trang web, hãy nhấp vào tab Tùy chọn và chèn nội dung sau vào phần Chỉ thị Apache:
Bạn cũng nên tạo một người dùng shell cho trang web này vì nó sẽ sớm cần thiết.
Sau khi người dùng cơ sở dữ liệu được tạo, hãy nhấp vàoCơ sở dữ liệu vàThêm cơ sở dữ liệu mới. Bạn sẽ cần thêm ba cơ sở dữ liệu riêng biệt: ccnetdb, seafiledb, seahubdb
Tôi thích để tất cả các máy chủ của mình chạy bên trong thư mụcprivate hơn là thư mụcweb, vì vậy chúng tôi sẽ thiết lập như vậy.
Tại thời điểm này, bạn sẽ cần trả lời các câu hỏi được nhắc liên quan đến hệ thống và cài đặt của bạn. Khi bạn đến phần có tiêu đềVui lòng chọn cách khởi tạo cơ sở dữ liệu seafile, bạn sẽ cần chọn2 và nhập thông tin cơ sở dữ liệu từ thiết lập ISPConfig của mình.
Sau khi khởi động các dịch vụ, hãy mở trình duyệt web và điều hướng đến địa chỉ trang web bạn đã tạo ở trên với cổng 8000.
Bây giờ hãy sửa đổi SERVICE_URL trong /path/to/seafile-server/ccnet/ccnet.conf
Chúng ta cũng cần sửa đổi FILE_SERVER_ROOT trong /path/to/seafile-server/seahub_settings.py
Khởi động lại Apache.
Khởi động lại dịch vụ Seafile.
/var/www/clients/client1/web42/private/seafile/seafile-server-3.1.6/seahub.sh start-fastcgi
và
/var/www/clients/client1/web42/private/seafile/seafile-server-3.1.6/seafile_start
CẬP NHẬT (ngày 23 tháng 11 năm 2014): Vì máy chủ seafile & seahub mất một thời gian để khởi động nên có những lúc tập lệnh thứ hai sẽ chạy trước khi tập lệnh trước hoàn tất. Do đó, máy chủ sẽ không khởi động. Tôi đã cập nhật tập lệnh khởi động seafile gốc để hoạt động bình thường với ISPConfig. Tôi có lẽ đã lạm dụng lệnh wait, nhưng tập lệnh hoạt động tốt khi sử dụng chúng. Đảm bảo bạn đã đăng nhập với tư cách là người dùng seafile trước khi chạy các lệnh sau.
Tạo tệp khởi động:
Dán mã sau vào tập lệnh startSeafile.sh:
Bây giờ bạn chỉ cần thêm công việc cron startServer.sh duy nhất vào phần Lệnh để chạy của ISPConfig:
/var/www/clients/client1/web42/private/seafile/startSeafile.sh start
Vậy là xong!
Có một số hướng dẫn thiết lập máy chủ Seafile cho ISPConfig, nhưng không có hướng dẫn nào không yêu cầu phần lớn việc chỉnh sửa các tệp thực sự nên được để nguyên theo khuyến nghị của nhà phát triển ISPConfig. Mặc dù thiết lập này được viết cho Ubuntu 14.04 LTS và ISPConfig 3, nhưng có thể áp dụng cho các bản phân phối khác. Giải pháp này hiệu quả với tôi, nhưng không có đảm bảo hay bảo hành nào được nêu rõ hoặc ngụ ý.
Giả định rằng người đọc muốn triển khai Seafile bằng MySQL và Apache (cũng như https). Người ta cũng cho rằng bạn có thể sử dụng ISPConfig về mặt chức năng, vì đây không phải là hướng dẫn về ISPConfig.
1 Thiết lập trang web
Mở bảng điều khiển lưu trữ ISPConfig của bạn, nhấp vào tabSites và tạo một trang web mới. Mặc dù về mặt kỹ thuật, bạn có thể sử dụng một trang web hiện có, nhưng việc tạo một trang web mới sẽ hiệu quả hơn vì nó cho phép chúng ta tách biệt tất cả các tệp đám mây khỏi các trang web khác. Điều này cũng cần thiết để sử dụng bảng điều khiển ISPConfig để thay đổi cấu hình.Trong bảng điều khiển cấu hình trang web, hãy nhấp vào tab Tùy chọn và chèn nội dung sau vào phần Chỉ thị Apache:
Mã:
Bí danh /media /var/www/seafile.myseafile.com/private/seafile/seafile-server-latest/seahub/media
RewriteEngine On
Yêu cầu tất cả đã cấp
# seafile httpserver
#
ProxyPass /seafhttp http://127.0.0.1:8082
ProxyPassReverse /seafhttp http://127.0.0.1:8082
RewriteRule ^/seafhttp - [QSA,L]
#
# seahub
#
RewriteRule ^/(media.*)$ /$1 [QSA,L,PT]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /seahub.fcgi$1 [QSA,L,E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

Bạn cũng nên tạo một người dùng shell cho trang web này vì nó sẽ sớm cần thiết.

2 Tạo cơ sở dữ liệu
Từ bảng điều khiểnSites trong ISPConfig, chọn Người dùng cơ sở dữ liệu vàThêm người dùng mới. Tạo một người dùng duy nhất cho mỗi máy khách sẽ quản lý cơ sở dữ liệu seafile của máy khách đó.
Sau khi người dùng cơ sở dữ liệu được tạo, hãy nhấp vàoCơ sở dữ liệu vàThêm cơ sở dữ liệu mới. Bạn sẽ cần thêm ba cơ sở dữ liệu riêng biệt: ccnetdb, seafiledb, seahubdb



3 Tải xuống và cài đặt phần mềm Seafile
Có một số gói bắt buộc mà chúng ta cần cài đặt. SSH vào trang web của bạn và thực hiện các lệnh sau:
Mã:
apt-get install python2.7 python-setuptools python-simplejson python-imaging python-mysqldb python-flup
Mã:
cd private
mkdir seafile
cd seafile
wget https://bitbucket.org/haiwen/seafile/downloads/seafile-server_3.1.6_x86-64.tar.gz
hoặc đối với 32bit
wget https://bitbucket.org/haiwen/seafile/downloads/seafile-server_3.1.6_i386.tar.gz
tar zxvf seafile-server_3.1.6_x86-64.tar.gz
mkdir installed
mv seafile-server_* installed
cd seafile-server-*
./setup_seafile_mysql.sh
4 Lần chạy ban đầu
Đã đến lúc khởi động seafile và đảm bảo thiết lập ban đầu đang hoạt động.
Mã:
./seafile.sh start
./seahub.sh start
5 Thiết lập Apache
Hầu hết các thiết lập của chúng tôi cho Apache thực sự được thực hiện bên trong thiết lập trang web ở trên. Tuy nhiên, chúng tôi cần thêm một dòng vào apache.conf để mọi thứ hoạt động trơn tru. Thật không may, tôi chưa tìm ra cách để thêm điều này mà không cần chỉnh sửa tệp duy nhất này.
Mã:
sudo echo "## Seafile External Server" >> /etc/apache2/apache.conf
sudo echo "FastCGIExternalServer /var/www/seafile.myDomainHere.com/web/seahub.fcgi -host 127.0.0.1:8000" >> /etc/apache2/apache.conf
Mã:
SERVICE_URL = http://www.myseafile.com
Mã:
FILE_SERVER_ROOT = 'http://www.myseafile.com/seafhttp'
Mã:
sudo service apache2 restart
Mã:
./seafile.sh start
./seahub.sh start-fastcgi
6 Bật HTTPS
Chỉ việc cần làm là tạo khóa SSL từ bên trong tab Sites của ISPConfig. Do cách ISPConfig được cài đặt và hoạt động, mọi thứ khác đều đã được thiết lập. Tuy nhiên, bạn có thể cần đảm bảo rằng Apache được khởi động lại.
7 Tự động khởi động dịch vụ
Vì mục tiêu ở đây là giữ mọi thứ được chứa trong ISPConfig, thay vì tạo dịch vụ khởi động, chúng ta sẽ thêm tập lệnh seafile vào các tác vụ cron của người dùng. Tất nhiên, bạn sẽ cần đảm bảo rằng máy khách có khả năng thêm các tác vụ cron đầy đủ. Đảm bảo rằng bạn thêm hai tác vụ cron khác nhau; một cho seafile và một cho seahub. Chèn nội dung sau vào phần Lệnh chạy:/var/www/clients/client1/web42/private/seafile/seafile-server-3.1.6/seahub.sh start-fastcgi
và
/var/www/clients/client1/web42/private/seafile/seafile-server-3.1.6/seafile_start
CẬP NHẬT (ngày 23 tháng 11 năm 2014): Vì máy chủ seafile & seahub mất một thời gian để khởi động nên có những lúc tập lệnh thứ hai sẽ chạy trước khi tập lệnh trước hoàn tất. Do đó, máy chủ sẽ không khởi động. Tôi đã cập nhật tập lệnh khởi động seafile gốc để hoạt động bình thường với ISPConfig. Tôi có lẽ đã lạm dụng lệnh wait, nhưng tập lệnh hoạt động tốt khi sử dụng chúng. Đảm bảo bạn đã đăng nhập với tư cách là người dùng seafile trước khi chạy các lệnh sau.
Tạo tệp khởi động:
Mã:
cd ~/private/seafile
touch startSeafile.sh
chmod +x startSeafile.sh
Mã:
#!/bin/bash
# Thay đổi giá trị của "seafile_dir" thành đường dẫn của seafile installation
seafile_dir=/var/www/clients/client1/web42/private/seafile
script_path=${seafile_dir}/seafile-server-latest
seafile_init_log=${seafile_dir}/logs/seafile.init.log
seahub_init_log=${seafile_dir}/logs/seahub.init.log
# Đổi giá trị của fastcgi thành true nếu sử dụng fastcgi
fastcgi=true
# Đặt cổng của fastcgi, mặc định là 8000. Đổi nếu bạn cần cổng khác.
fastcgi_port=8000
## Lệnh Sleep là cần thiết để ngăn lỗi MYSQL nếu
## tập lệnh này chạy trước khi MYSQL hoạt động hoàn toàn
sleep 60 &
wait %1
case "$1" in
bắt đầu)
${script_path}/seafile.sh bắt đầu >> ${seafile_init_log} &
đợi %1
nếu [ $fastcgi = true ];
thì
${script_path}/seahub.sh bắt đầu-fastcgi ${fastcgi_port} >> ${seahub_init_log} &
đợi %1
nếu không thì
${script_path}/seahub.sh bắt đầu >> ${seahub_init_log} &
đợi %1
fi
;;
khởi động lại)
${script_path}/seafile.sh khởi động >> ${seafile_init_log} &
đợi %1
nếu [ $fastcgi = true ];
thì
${script_path}/seahub.sh khởi động lại-fastcgi ${fastcgi_port} >> ${seahub_init_log} &
đợi %1
nếu không thì
${script_path}/seahub.sh khởi động lại >> ${seahub_init_log} &
đợi $1
fi
;;
dừng)
${script_path}/seafile.sh $1 >> ${seafile_init_log}
${script_path}/seahub.sh $1 >> ${seahub_init_log}
;;
*)
echo "Cách sử dụng: /etc/init.d/seafile {start|stop|restart}"
thoát 1
;;
esac
Bây giờ bạn chỉ cần thêm công việc cron startServer.sh duy nhất vào phần Lệnh để chạy của ISPConfig:
/var/www/clients/client1/web42/private/seafile/startSeafile.sh start

Vậy là xong!