Блог о Gentoo и около-линуксовым штукам

2 августа 2015 г.

OwnCloud на маршрутизаторе с OpenWRT

06:27 Опубликовал Дмитрий Исаенко 2 коммент.
Если вы решили поставить OwnCloud на маршрутизатор с OpenWRT - не стоит. Серьёзно, лучше откажитесь от этой идеи. Он будет тормозить, полностью загружать девайс по CPU и по памяти (мои 128мб улетели враз!).
Если же вы всётаки решились, то я замечу, что эта статья не претендует быть исчерпывающей. Всё написанное здесь, скорее версия того, как можно быстро всё развернуть. Возможно вам будет лучше прочесть статью об этом в OpenWRT wiki. Тем не менее всё изложенное ниже может послужить хорошим фундаментом для дальнейших улучшений и никак не перечит написанному в wiki.
Также вам необходимо сначала прочесть статью по сборке своего образа OpenWRT, т.к. иначе ничего не получится, ведь важным требованием для установки OwnCloud является наличие локали, которая отсутствует в стандартном образе прошивки. Кстати собирать можно не только trunk версию дистрибутива, но и вполне стабильную. Так как на моём роутере доступно всего 16Мб памяти, я воспользовался встроенной особенностью расширения пространства с помощью оверлея. Подробнее можно прочесть в этой статье. Как только у вас будет собран и настроен должным образом дистрибутив, переходите к пункту ниже.

    1. Установка lighttpd и php
Для OwnCloud мы будем устанавливать lighttpd. Так после его установки у нас будет два web-сервера в системе - uhttpd и lighttpd. В сети можно найти методы как установки OwnCloud на uhttpd, так и переноса Luci на lighttpd, но у меня не получилось это сделать сразу, а потом, глядя на жуткие тормоза OwnCloud, и желания не возникло.
Также замечу, что для хранения данных был использован sqlite. Есть возможность использовать что-то получше (MySQL/MariaDB, PostgreSQL), и разработчики настроятельно рекомендуют так и делать, но попробовать можно и так.
Установим необходимые пакеты:
opkg install lighttpd lighttpd-mod-cgi lighttpd-mod-fastcgi lighttpd-mod-access php5-fastcgi php5-mod-xmlwriter php5-mod-zip php5-mod-json php5-mod-curl php5-mod-pdo-sqlite sqlite3-cli php5-mod-simplexml   php5-mod-mbstring php5-mod-xml  zoneinfo-core  php5-mod-iconv  php5-mod-gd  php5-mod-ctype php5-mod-dom  php5-mod-hash  php5-mod-session php5-mod-pdo-sqlite  php5-mod-pdo php5-mod-sqlite3  php5-mod-fileinfo
Настроим lighttpd. Для этого изменим конфигурацию сервера для отдачи данных через 81 порт. Ниже привожу листинг всего файла.
vim /etc/lighttpd/lighttpd.conf
server.modules = (
)

server.document-root= "/www/oc"
server.upload-dirs  = ( "/tmp" )
server.errorlog     = "/var/log/lighttpd/error.log"
server.pid-file     = "/var/run/lighttpd.pid"
server.username     = "http"
server.groupname    = "www-data"

index-file.names    = ( "index.php", "index.html",
"index.htm", "default.htm",
"index.lighttpd.html" )

static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )

server.port = 81

include       "/etc/lighttpd/mime.conf"
include_shell "cat /etc/lighttpd/conf.d/*.conf"

Настроим php изменив в файле php.ini следующую строку:
vim /etc/php.ini
doc_root = "/www/oc"

Добавим ассоциацию для отработки файлов php через mod_fastcgi.
vim /etc/lighttpd/conf.d/fastcgi.conf
server.modules += ( "mod_fastcgi" )
fastcgi.server = (
".php" => ((
"bin-path" => "/usr/bin/php-fcgi",
"socket" => "/tmp/php.socket",
"max-procs" => 1
))
)

    2. OwnCloud
Теперь загрузим сам OwnCloud. Скачать архив с последней версией можно на сайте https://owncloud.org/install/#instructions-server. Скопируем ссылку указывающую на архив tar.bz2. Так как скачивать мы собираемся используя wget, упростим себе задачу заменив в ссылке https на http, благо сервер загрузок OwnCloud отдаёт данные в том числе и по нешифрованному соеденению.
wget http://download.owncloud.org/community/owncloud-8.1.0.tar.bz2
Установим tar (тот, что поставляется по-умолчанию не умеет работать с bz2) и распакуем архив. Поместим файлы в необходимую директорию.
opkg install tar 
tar xvjf owncloud-8.1.0.tar.bz2 -C /www/
rm owncloud-8.1.0.tar.bz2
Поместим файлы в необходимую директорию.
mv /www/owncloud/ /www/oc/

Теперь запустим необходимые сервисы:
/etc/init.d/lighttpd start
/etc/init.d/lighttpd enable
/etc/init.d/php5-fastcgi start
/etc/init.d/php5-fastcgi enable

На этом всё. Я писал в основном по-памяти, так что если вдруг каким-то невероятным образом я чего забыл - пишите в комментариях.

p.s. если у вас возникают проблемы с доступом к сайту, проверьте права на директорию /www/oc.

2 комментария:

  1. >мои 128мб улетели враз
    Какое устройство использовали?

    ОтветитьУдалить
    Ответы
    1. TP-Link Archer C7v2. Никогда не покупайте это барахло (если планируете использовать OpenWRT). Сейчас там 5Ghz wifi нормально не работает.

      Удалить