Установка облачного хранилища Seafile

Сейчас покажу в своей статье “Установка облачного хранилища Seafile” как я создал свое облачное хранилище Seafile на Debian, но вы можете смело устанавливать его на Ubuntu, Mint –  все будет работать. Так же проверялось на CentOS.

Устанавливаем все необходимое ПО для Debian/Ubuntu/Mint, выполните:

$ sudo apt-get update<br />
$ sudo apt-get install python2.7 python-setuptools python-simplejson python-imaging python-mysqldb mysql-server mysql mysql-client

Устанавливаем все необходимое ПО для CentOS/RedHat/Fedora, выполните:

# yum upgrade<br />
# yum install python-imaging MySQL-python python-simplejson python-setuptools mysql-server mysql mysql-client

В процессе  установки сервера с mysql, установщик попросит ввести (установить) пароль для пользователя рут, устанавливаем какой вам будет удобно, пример ‘mysql-root’.

Далее что мы сделаем, так создадим пользователя для нашего облачного хранилища и выставим на него права:

# adduser seafile<br />
# passwd seafile<br />
# su -seafile

С только что созданного пользователя нужно будет запустить скрипт установки, по этому перезайдем на пользователя seafile:

# su - seafile

Затем войдите в базу данных MySQL и создайте три базы данных, по одному на каждые компонентов Seafile сервера: ccnet server, seafile server и seahub с одного пользователя для всех баз данных.

$ mysql -u root -p</p>
<p>mysql> create database `ccnet-db`;<br />
mysql> create database `seafile-db`;<br />
mysql> create database `seahub-db`;<br />
mysql> create user 'seafile'@'localhost' identified by 'pw_for_user_seafile';<br />
mysql> GRANT ALL PRIVILEGES ON `ccnet-db`.* to `seafile`@`localhost`;<br />
mysql> GRANT ALL PRIVILEGES ON `seafile-db`.* to `seafile`@`localhost`;<br />
mysql> GRANT ALL PRIVILEGES ON `seahub-db`.* to `seafile`@`localhost`;<br />
mysql> FLUSH PRIVILEGES;<br />
mysql> exit;

Все необходимое уже установлено и осталось зайти на официальный сайт и скачать исходный код программы Seafile, переходим сюда http://www.seafile.com/en/download/, скачиваем самую последнюю версию сервера, на момент написания была 3.1:

# mkdir /usr/local/src/seafile && cd /usr/local/src/seafile

Для x64 битной ОС:

# wget https://bitbucket.org/haiwen/seafile/downloads/seafile-server_3.1.7_x86-64.tar.gz

Для x32 (x86) битной ОС:

# wget https://bitbucket.org/haiwen/seafile/downloads/seafile-server_3.1.7_i386.tar.gz

Следующим действием распаковываем скачанный архив:

# tar -xzf seafile-server_*

Переходим в директорию и запускаем скрипт:

# cd /usr/local/src/seafile/seafile-server-*

Для установки Seafile сервера с использованием MySQL стоит запустить скрипт для установки setup-seafile-mysql.sh и ответить на все вопросы:

# ./setup-seafile-mysql.sh

 

What is the name of your server? = прописываем имя сервера ( я ввел себе seafile-server).
What is the IP or domain of the server? = введите IP адрес сервера или доменное имя.
Which port do you want to use for ccnet server? = нажимаем [Enter] – если хотите использовать порт по умолчанию – 10001.
Where do you want to put seafile data? =нажимаем [Enter] – местоположение по умолчанию будет ваша $HOME/seafile-data директория.
Which port do you want to use for seafile server? =нажимаем [Enter] –если хотите использовать порт по умолчанию – 12001.

Which port do you want to use for seafile httpserver? =нажимаем [Enter] –если хотите использовать порт по умолчанию – 8082.
Please choose a way to initialize seafile databases: = выбираем 1 выбираем MySQL и вводим: localhost, 3306 и root пароль.
Enter the name for MySQL user of seafile: = seafile (если вы создали другие имя пользователя используйте его) и введите seafile MySQL пользовательский пароль.
On ccnet-server, seafile-server и seahub databases просто нажимаем  [Enter]  – для использования по умолчанию.

После всего что мы повводили, стоит нажать “ENTER” для продолжения установки. После успешной устанавки, он будет генерировать некоторую полезную информацию, например, какие порты должны быть открыты в брандмауэре, чтобы работало все.

вывод полезной информации после установки seafile

Открытие брандмауэра и создание скрипта для запуска Seafile

Перед запуском сервера Seafile из локального скрипта для теста, нужно вернутся к пользователю root и прописать правила Iptables для брандмауэра. Для начала, залогинимся от root- а:

$ su - root

После чего отредактируем файл конфигурации (добавим правила) Iptables:

# vim /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 именно для вашего брандмауэра.

Теперь пришло время, проверить Seafile сервер. Переключитесь на пользователя seafile и запустите сервер с помощью скриптов seafile.sh и seahub.sh.
Первый раз, когда вы запустите seahub.sh скрипт, он создать учетную запись администратора для Seafile сервера, используя свой ​​адрес электронной почты и выбрать надежный пароль для учетной записи администратора, особенно если вы устанавливаете эту конфигурацию в производственной среде.

# su - seafile<br />
$ cd /usr/local/src/seafile/seafile-server-latest/<br />
$ ./seafile.sh start<br />
$ ./seahub.sh start

Вас попросят ввести емейл и пароль. Он нужен для входа на сервер.

После того как сервер успешно запущен, откройте браузер и перейдите на свой IP-адрес сервера или имя домена (порт 8000, по протоколу HTTP), а затем войдите с помощью вашей учетной записи администратора, которую вы указывали свыше.

http://server_IP:8000

или

http://your_domain-name:8000

вход в seafile

Я ввел свои данные и попал на рабочий сервер seafile.

домашний каталог в seafile

После первых успешных тестов, остановите сервер Seafile и создайте сценарий (скрипт), который поможет вам управлять вашими процессами, как и любые другие процессы демонов система Linux.

Останавливаем сервер:

$ /usr/local/src/seafile/seafile-server-latest/seafile.sh stop<br />
$/usr/local/src/seafile/seafile-server-latest/seahub.sh stop

Снова логинимся от рута:

$ su - root

Сейчас перейдем в нужную директорию и скачаем скрипт для работы запуска, остановки, перезапуска seafile,  можно было его выложить, но зачем усложнять, проще же скачать его.)))

Перейдем в нужную директорию:

# cd /etc/init.d

Теперь мы скачаем скрипт:

# wget http://linux-notes.org/wp-content/uploads/files/seafile/seafile

СТОИТ ОТМЕТИТЬ! Нужно поменять путь и пользователя (там где лежит сервер и его скрипты для запуска).

Если есть желание прочитать его, то это можно сделать, перейдя по ссылке тут.

После инициализации файла, убедитесь, что он имеет права на выполнения и управление процессом запуска, остановки и перезапуска. Теперь вы можете добавить услугу Seafile в запуск системы, используя команду chkconfig.

# chmod +x /etc/init.d/seafile

Чтобы управлять сервером seafile:

# service seafile.sh start<br />
# service seafile stop<br />
# service seafile restart

Так же можно добавить его в автозагрузку ОС, или убрать:

# chkconfig seafile on<br />
# chkconfig seafile off

Посмотреть список:

# chkconfig --list seafile

По умолчанию сервер Seafile использует / TCP HTTP порт 8000 для веб-транзакций. Если вы хотите получить доступ Seafile сервер от браузера на стандартном HTTP порту (80м) с помощью следующего скрипта, который будет запускает сервер по 80-му порту (ЗНАЙ, чтобы запустить сервисы на порты ниже 1024 требует привилегий суперпользователя).

# vim /etc/init.d/seafile

Нужно добавить запуск по 80-му порту. Я создам новый скрипт и выложу его, вы можете его скачать:

# cd /etc/init.d/<br />
# wget  http://linux-notes.org/wp-content/uploads/files/seafile/seafile_shange_ports<br />
# mv seafile_shange_ports /etc/init.d/seafile

В данном скрипте я изменил порт и домашнюю папку где лежат все необходимые файлы для запуска сервера seafile, так же я закоменнтировал строчку:

# source function library<br />
#. /etc/rc.d/init.d/functions

У меня с ней не работало! Я проверял на Debian, по этому, если будете использовать на CentOS (  проверялось и работало) – расскоментируйте ее.

Если вы ранее запустили Seafile на 8000 порту убедитесь, что все процессы будут убиты, запустить сервер на порту 80.

# chmod +x /etc/init.d/seafile<br />
# service seafile start | stop | restart

Вы также можете проверить на каких портах  работает Seafileс использованием NETSTAT команды:

# netstat -tlpn

Можно изменить директорию с сервером( перенести в другое место), но не забываем поменять в скрипте путь! В идеале, нужно сделать следующее:

# cp -r /usr/local/src/seafile/seafile-server-latest /home/seafile

После этого сделать изменения в скрипте для запуска. Я не стал этого делать, меня устраивало и такая работа, а вы смотрите сами.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.