Сейчас покажу в своей статье “Установка облачного хранилища 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 из локального скрипта для теста, нужно вернутся к пользователю 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 и создайте сценарий (скрипт), который поможет вам управлять вашими процессами, как и любые другие процессы демонов система 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
После этого сделать изменения в скрипте для запуска. Я не стал этого делать, меня устраивало и такая работа, а вы смотрите сами.