Поиск по сайту:

Установка Seafile (безопасное облачное хранилище) с базой данных 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.

В этом руководстве вы шаг за шагом проведете установку 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-простой json
  6. Python-изображения
  7. Python-mysqldb

Эта процедура установки протестирована в системе CentOS 6.4 64-bit, но ее также можно использовать в других дистрибутивах 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 и скачайте последнюю версию архива Linux .Tar для вашей серверной архитектуры с помощью команды 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. Куда вы хотите поместить данные морского файла?=нажмите [Enter] — местоположением по умолчанию будет ваш каталог $HOME/seafile-data.
  5. Какой порт вы хотите использовать для сервера seafile?=нажмите [Enter] – оставьте по умолчанию – 12001.

  1. Какой порт вы хотите использовать для http-сервера seafile?=нажмите [Enter] – оставьте по умолчанию – 8082.
  2. Пожалуйста, выберите способ инициализации баз данных seafile:=выберите 1 и укажите учетные данные MySQL по умолчанию: localhost, 3306 и пароль root.
  3. Введите имя пользователя MySQL seafile:=seafile (если вы создали другое имя пользователя, введите это имя пользователя) и пароль пользователя MySQL seafile.
  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, который поможет вам легче управлять всем процессом, как и любыми другими процессами системного демона 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 и restart. Теперь вы можете добавить службу 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 из браузера через стандартный порт HTTP, используйте следующий сценарий init, который запускает сервер через порт 80 (имейте в виду, что запуск службы осуществляется через порты ниже < b>1024 требуются права root).

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 и не забудьте оставить свои ценные комментарии.