Thank you for reading this post, don't forget to subscribe!
Установка облачного хранилища Seafile
Устанавливаем все необходимое ПО для CentOS/RedHat/Fedora, выполните
# yum update -y
# yum install python-imaging MySQL-python python-simplejson python-setuptools mysql-server mysql mysql-client -y
В процессе установки сервера с mysql, установщик попросит ввести (установить) пароль для пользователя рут, устанавливаем какой вам будет удобно, пример ‘mysql-root’.
Далее что мы сделаем, так создадим пользователя для нашего облачного хранилища и выставим на него права:
# adduser seafile
# passwd seafile
# su -seafile
С только что созданного пользователя нужно будет запустить скрипт установки, по этому перезайдем на пользователя seafile:
# su - seafile
Затем войдите в базу данных MySQL и создайте три базы данных, по одному на каждые компонентов Seafile сервера: ccnet server,
seafile server
seahub
с одним пользователем для всех баз данных.
1 2 3 4 5 6 7 8 9 10 11 |
$ 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 'pw_for_user_seafile'; 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; |
Все необходимое уже установлено и осталось зайти на официальный сайт и скачать исходный код программы Seafile, переходим сюда http://www.seafile.com/en/download/, скачиваем самую последнюю версию сервера, на момент написания была 3.1:
# mkdir /usr/local/src/seafile && cd /usr/local/src/seafile
# wget https://bitbucket.org/haiwen/seafile/downloads/seafile-server_3.1.7_x86-64.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
$ cd /usr/local/src/seafile/seafile-server-latest/
$ ./seafile.sh start
$ ./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
$/usr/local/src/seafile/seafile-server-latest/seahub.sh stop
Снова логинимся от рута:
$ su - root
Сейчас перейдем в нужную директорию и скачаем скрипт для работы запуска, остановки, перезапуска seafile,
Перейдем в нужную директорию:
# cd /etc/init.d
[codesyntax lang="php" blockstate="collapsed"]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
#!/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 "/usr/local/src/seafile/seafile-server-latest/seafile.sh start" su - seafile -c "/usr/local/src/seafile/seafile-server-latest/seahub.sh start" } stop() { echo "Stopping Seafile process…" su - seafile -c "/usr/local/src/seafile/seafile-server-latest/seafile.sh stop" su - seafile -c "/usr/local/src/seafile/seafile-server-latest/seahub.sh stop" } restart() { echo "Stopping Seafile process…" su - seafile -c "/usr/local/src/seafile/seafile-server-latest/seafile.sh stop" su - seafile -c "/usr/local/src/seafile/seafile-server-latest/seahub.sh stop" echo "Starting Seafile server…" su - seafile -c "/usr/local/src/seafile/seafile-server-latest/seafile.sh start" su - seafile -c "/usr/local/src/seafile/seafile-server-latest/seahub.sh start" } case "$1" in start) start ;; stop) stop ;; restart) restart ;; *) echo "Usage: $0 start stop restart" ;; esac |
[/codesyntax]
СТОИТ ОТМЕТИТЬ! Нужно поменять путь и пользователя (там где лежит сервер и его скрипты для запуска).
После инициализации файла, убедитесь, что он имеет права на выполнения и управление процессом запуска, остановки и перезапуска. Теперь вы можете добавить услугу Seafile в запуск системы, используя команду chkconfig.
# chmod +x /etc/init.d/seafile
# service seafile.sh start
# service seafile stop
# service seafile restart
Так же можно добавить его в автозагрузку ОС, или убрать:
# chkconfig seafile on
# 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/
#vim seafile_shange_ports
[codesyntax lang="php" blockstate="collapsed"]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
#!/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 "/usr/local/src/seafile/seafile-server-latest/seafile.sh start" ## Start on port default 80 http port ## /usr/local/src/seafile/seafile-server-latest/seahub.sh start 80 } stop() { echo "Stopping Seafile process…" su - seafile -c "/usr/local/src/seafile/seafile-server-latest/seafile.sh stop" /usr/local/src/seafile/seafile-server-latest/seahub.sh stop } restart() { echo "Stopping Seafile process…" su - seafile -c "/usr/local/src/seafile/seafile-server-latest/seafile.sh stop" /usr/local/src/seafile/seafile-server-latest/seahub.sh stop echo "Starting Seafile server…" su - seafile -c "/usr/local/src/seafile/seafile-server-latest/seafile.sh start" /usr/local/src/seafile/seafile-server-latest/seahub.sh start 80 } case "$1" in start) start ;; stop) stop ;; restart) restart ;; *) echo "Usage: $0 start stop restart" ;; esac |
[/codesyntax]
# mv seafile_shange_ports /etc/init.d/seafile
Если вы ранее запустили Seafile на 8000 порту убедитесь, что все процессы будут убиты, запустить сервер на порту 80.
# chmod +x /etc/init.d/seafile
# service seafile start | stop | restart
Вы также можете проверить на каких портах работает Seafileс использованием NETSTAT команды:
# netstat -tlpn
Можно изменить директорию с сервером( перенести в другое место), но не забываем поменять в скрипте путь! В идеале, нужно сделать следующее:
# cp -r /usr/local/src/seafile/seafile-server-latest /home/seafile
После этого сделать изменения в скрипте для запуска. Я не стал этого делать, меня устраивало и такая работа