UPD от 06 дек 2014. Эта версия устарела и оставлена только потому, что в сети на неё есть ссылки. Новая рабочая здесь. /UPD
UPD от 15 марта 2014. Изменено для актуальных версий софта - nas4free rev 943, TheBrig 0.8, TorrentMonitor 0.9.4
1) Создаём джейл через TheBrig, как мы делали раньше. Даём джейлу имя torrentmonitor и IP 192.168.1.54/24
2) Запускаем джейл, смотри его номер (пусть будет 4), через putty заходим по ssh, идём в джейл
jexec 4 $SHELL
3) Ставим пакеты
pkg_add -r nano
pkg_add -r lighttpd
pkg_add -r php5-ctype
pkg_add -r php5-dom
pkg_add -r php5-fileinfo
pkg_add -r php5-filter
pkg_add -r php5-gd
pkg_add -r php5-hash
pkg_add -r php5-iconv
pkg_add -r php5-json
pkg_add -r php5-mbstring
pkg_add -r php5-pdo
pkg_add -r php5-pdo_sqlite
pkg_add -r php5-session
pkg_add -r php5-simplexml
pkg_add -r php5-sqlite3
pkg_add -r php5-xml
pkg_add -r php5-xmlrpc
pkg_add -r php5-gettext
pkg_add -r php5-mcrypt
pkg_add -r php5-zip
pkg_add -r php5-zlib
Прим. Иногда в конце подобного длинного списка система спотыкается и выскакивает что-то вроде
root@torrentmonitor:/ # pkg_add -r php5-mcrypt
Error: Unable to get ftp://ftp.freebsd.org/pub/FreeBSD/ports/a
pkg_add: unable to fetch 'ftp://ftp.freebsd.org/pub/FreeBSD/po
Это повторяется для всех дальнейших пакетов. Помогает повторно дать команду на установку того, что не скачалось. Например
pkg_add -r php5-mcrypt
pkg_add -r php5-zip
pkg_add -r php5-zlib
rehash
4) теперь нам придётся пересобрать php5-curl
идея отсюда
К сожалению, где-то по пути в системе отвалилась поддержка куки по умолчанию. Хорошая новость в том, что исправить подобное на *nix совсем просто - если знать что править.
4.1) Ставим дерево портов (это долго, можно выпить чашечку кофе)
portsnap fetch extract
(Прим на будущее - если когда-то потом, не в момент установки, понадобится что-то ещё в этом джейле собирать - привести порты в актуальне состояние нужно командой
portsnap fetch update)
4.2) Собираем curl
Даём команду
cd /usr/ports/ftp/curl && make config
В выскочившем диалоге важен крестик на Cookies support (выделено). Заодно я также отключил DOCS и EXAMPLES, остальное оставил как было
4.3) make install
все возникающие здесь и далее диалоги - жмём OK
Процесс долгий, по окончании
rehash
4.4) Теперь проверим, получилось ли -
curl -c '/tmp/cookies' 'http://ya.ru' > null && ls -l /tmp/cookies
если видим в конце строку
-rw-r--r-- 1 root wheel 196 Mar 15 16:04 /tmp/cookies
- поздравляю, получилось
Если строку
ls: /tmp/cookies: No such file or directory
- что-то не так и curl у вас без поддержки cookies
4.5) Если тест выше удачный - собираем php5-curl (все диалоги - жмём OK по умолчанию)
cd /usr/ports/ftp/php5-curl && make clean
make reinstall
rehash
(Да, кстати, вы теперь крутой юниксоид - имеете положительный опыт соборки софта из портов)
5) Редактируем конфиги
5.1) Открываем для редактирования /usr/local/etc/lighttpd/lighttpd.conf
Сделать это можно многими способами, например через nano
НЕ ИСПОЛЬЗУЙТЕ встроенный редактор nas4free - он портит конфиги
nano /usr/local/etc/lighttpd/lighttpd.conf
5.2) Редактируем lighttpd.conf (поиск по файлу - Ctrl W)
server.bind = "192.168.1.54"
server.use-ipv6 = "disable"
$SERVER["socket"] == "192.168.1.54:8080" { }
Прим. Не забываем в начале строки server.bind убрать знак комментария #
5.3) Редактируем /usr/local/etc/lighttpd/modules.conf, удаляя # из строки
#include "conf.d/fastcgi.conf"
5.4) Добавляем в конец файла /usr/local/etc/lighttpd/conf.d/fastcgi.c
fastcgi.server = ( ".php" =>
((
"socket" => "/tmp/php.socket",
"bin-path" => "/usr/local/bin/php-cgi",
"bin-environment" => (
"PHP_FCGI_CHILDREN" => "16",
"PHP_FCGI_MAX_REQUESTS" => "10000"
),
"min-procs" => 1,
"max-procs" => 1,
"idle-timeout" => 20
))
)
5.5) В список файла (где угодно внутри скобок mimetype.assign = ( ) ) /usr/local/etc/lighttpd/conf.d/mime.conf добавляем
".svg" => "image/svg+xml",
".xht" => "application/xhtml+xml",
".xhtml" => "application/xhtml+xml",
".woff" => "application/x-font-woff",
".svgz" => "image/svg+xml",
6) Проверяем синтаксис lighttpd.conf
lighttpd -t -f /usr/local/etc/lighttpd/lighttpd.conf
Если всё хорошо - он напишет Syntax OK
7) Создаём наш тестовый сайт
7.1) Создаём папку и файл
mkdir -p /usr/local/www/data
echo "XXX" > /usr/local/www/data/index.php
Прим. Вместо XXX внутри кавычек надо написать то, что на картинке ниже. (Движок ЖЖ не даёт писать php код напрямую, а тегов для инкапсуляции нет :(. )
7.2) Задаём владельца
chown -R www:www /usr/local/www/
8) Проверяем
8.1) Запускаем lighttpd
/usr/local/sbin/lighttpd -f /usr/local/etc/lighttpd/lighttpd.conf
8.2) Идём в браузере по адресу нашего джейла 192.168.1.54
Если всё нормально - видим
9) останавливем наш джейл кнопкой через TheBrig
Отправной точкой послужил этот пост