Данное описание составлено на основе инструкций asusforum.ru и справедливо для прошивок 1.9.2.7-9 и выше, но воспользоваться им вы можете только на свой страх и риск. Все нижеуказанные действия проводились на моделях WL500g Premium v.1, WL500g Premium v.1, WL500W с подключенным USB диском и флеш накопителем в различных комбинациях, но так же справедливы для остальных моделей, которые поддерживают работу с внешним диском или флешкой и настройку из командной строки. Так же запаситесь временем, чтобы никуда не спешить и случайно в запарке не испортить всю работу. Если есть непосредственное соединение с Интернетом, то настройка пройдет без проблем в виде скачивания необходимых пакетов альтернативными способами и переливки их в роутер. Если не имеете начальных знаний о Линуксе, то опять-же необходим либо Интернет для гугления, либо литература в печатном виде по Линуксовым командам.
1. Устанавливаем нужные пакеты:
ipkg update
ipkg install cron
ipkg install lighttpd
ipkg install php
ipkg install php-mbstring
ipkg install php-fcgi
ipkg install sqlite
ipkg install php-gd
ipkg install libcurl
ipkg install wget
ipkg install perl
ipkg install nano
2. Скачиваем дистрибутив, распаковываем и переносим в папку веб сервера:
wget http://download.dini.su/ados/stable
mkdir ./ados
tar xzfv ./имя_файла -C ./ados
mkdir /opt/share/www/lighttpd/ados
mv ./ados/* /opt/share/www/lighttpd/ados/
3. редактируем /opt/etc/lighttpd/lighttpd.conf
nano /opt/etc/lighttpd/lighttpd.conf
Раскомментируем (удаляем в начале строки #, если строки нет - дописываем) строки:
"mod_access",
"mod_fastcgi",
"mod_scgi",
"mod_cgi",
"mod_accesslog"
Проверяем строку
server.document-root = "/opt/share/www/lighttpd"
- должно быть именно так, тогда будет доступ ко всем папкам, помещаемым в нее.
Раскомментируем строчки:
cgi.assign = ( ".pl" => "/opt/bin/perl",
".cgi" => "/opt/bin/perl" )
Исправляем глюк в последней версии:
Строку
# server.event-handler = "freebsd-kqueue" # needed on OS X
меняем на
server.event-handler = "poll" # needed on OS X
4. Редактируем /opt/etc/php.ini
nano /opt/etc/php.ini
Ищем строки с перечислением extension, и добавляем туда:
extension=pdo.so
extension=pdo_sqlite.so
extension=sqlite.so
5. Скачиваем Axel и переносим в /opt/bin/
wget http://wl500g.info/attachment.php?attachmentid=253&d=1103891377 -O ./axel.tgz
#Если файл не переименовался автоматом -
#переименовываем attachment.php?attachmentid=253&d=1103891377 в axel.tgz
tar zvxf ./axel.tgz
mv ./axel /opt/bin/axel
chmod +x /opt/bin/axel
6. Редактируем /opt/etc/crontab
nano /opt/etc/crontab
Содержимое:
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=""
HOME=/
# ---------- ---------- Default is Empty ---------- ---------- #
*/1 * * * * admin /opt/bin/run-parts /opt/etc/cron.1min
*/5 * * * * admin /opt/bin/run-parts /opt/etc/cron.5mins
01 * * * * admin /opt/bin/run-parts /opt/etc/cron.hourly
02 4 * * * admin /opt/bin/run-parts /opt/etc/cron.daily
22 4 * * 0 admin /opt/bin/run-parts /opt/etc/cron.weekly
42 4 1 * * admin /opt/bin/run-parts /opt/etc/cron.monthly
7. Создаем нужные директории:
mkdir /opt/etc/cron.1min
mkdir /opt/etc/cron.5mins
mkdir /opt/etc/cron.hourly
mkdir /opt/etc/cron.daily
mkdir /opt/etc/cron.weekly
mkdir /opt/etc/cron.monthly
В эти директории можно будет класть скрипты с расширением *.sh, которые будут выполняться каждую минуту, каждые 5 минут и т.д. Естественно у них должен быть атрибут исполняемого файла.
8. Создаем файл /opt/bin/run-parts
nano /opt/bin/run-parts
Заполняем:
#!/bin/sh
#
# runparts.sh by [email protected]
# intended for use with cron
#
# based on rc.unslung by unslung guys :-)
#
if [ -z "$1" ]
then
echo "Usage : $0 "
fi
RUNDIR=$1"/*"
for i in $RUNDIR ;do
# Ignore dangling symlinks (if any).
[ ! -f "$i" ] && continue
case "$i" in
*.sh)
# Source shell script for speed.
(
trap - INT QUIT TSTP
set start
. $i
)
;;
*)
# No sh extension, so fork subprocess.
$i start
;;
esac
done
Делаем его исполняемым:
chmod +x /opt/bin/run-parts
9. Создаем директорию для качалки:
mkdir /tmp/mnt/disc0_3/ados
10. Перезапускаем lighttpd:
/opt/etc/init.d/S80lighttpd restart
11. Пробуем зайти: http://my.router:8081/ados
Если все настроено верно, то начнется процесс первичной инсталляции. В принципе там все понятно.
Настройки для ADOS:
Путь к axel нужно указать полный, т.е. /opt/bin/axel ; корневой каталог для сохранения закачек тот, который вы создали, например /tmp/mnt/disc0_3/ados ; путь до исполняемого файла PHP /opt/bin/php-fcgi
Данная инструкция создана на основе этой, применительно к моей инструкции с нуля.
12. Дополнение по исправлению ошибки:
Если у Вас вылезает ошибка
Fatal error: This system requires PHP 5.1.3 or over. Your PHP version is
то необходимо в файле
/opt/share/www/lighttpd/ados/install/index.php
поправить в строке 141 "<" на ">"
В результате там должно получиться вместо
if( strcmp( $phpver[1], "5.1.3" ) < 0 )
вот это
if( strcmp( $phpver[1], "5.1.3" ) > 0 )
PS: править так:
nano /opt/share/www/lighttpd/ados/install/index.php
И искать нужную строчку.
Поскольку ADOS больше автором не поддерживается, то и ошибку приходится ручками исправлять.