Router Dir-320 DD-WRT + WWW + PHP + MySQL + PERL

From DD-WRT Wiki

Jump to: navigation, search

Здесь я вам раскажу как настроить на роутере DIR-320 сайт с поддержкой PHP и MySQL.


Что нам понадобится?:

1) Роутер DIR-320(с установленной прошивкой DD-WRT) (Standard Generic | dd-wrt.v24_usb_generic.bin | 2009-10-10 | 3,21 MB) http://dd-wrt.com/routerdb/de/download/D-Link/DIR-320/A1/A2/dd-wrt.v24_usb_generic.bin/1964

2) Флешка 1 гигабайт(можно больше или меньше минимум 150(оптваре)+100(диск 2 так и непонял зачем)+100(Swap)+50(под сайт)=400)

3) Программа Putty(для подключения к роутеру через телнет)(на IP-адрес вашего роутера с портом 23)

4) Программа Acronis Disk Director Suite(для разбития и форматирования флешки)


Какие мы установим пакеты?:

optware (для установки программ)

lighttpd (веб-сервер)

php-fcgi (поддержка php)

microperl

phpmyadmin (База SQL с веб-админкой)

busybox (для Swap)

После установки прошивки заходим по адресу http://192.168.1.1/

видим рис1

Image:alastanka1.jpg

если ероглифами страница нажимаем обновить

вводим новый Логин в "Router Username"

вводим новый пароль в "Router Password"

повторяем пароль в "Re-enter to confirm"

переходим на вкладку "Administration" ищем "Language Selection" в "Language" выбираем "Russian" нажимаем "Apply Settings"

рис2

Image:alastanka2.jpg 

переходим на вкладку "Setup" и нажимаем обновить должен появится русский язык


настраиваем интернет вкладка "Установка" "Тип соединения WAN"

Флешка

Необходимо разбить флешку на 3 раздела (ext3, ext3, swap).(например программой Acronis Disk Director Suite)

Я разделял свою флешку в 1 гиг на 3 раздела:

1. EXT3 ~ 776,5 мегабайт

2. EXT3 ~ 102 мегабайт

3. SWAP ~ 102 мегабайт

Прочитал в другой статье: Самое главное, чтобы первый раздел был не менее 150 мегабайт, второй не менее 100мб, третий не менее 150мб.

Я зделал как мне удобно! (Главное чтоб все три раздела были основными)

рис3

Image:alastanka3.jpg

если зделать только первый раздел главным а второй и третий логическим увидем такое.

рис 4

Image:alastanka4.jpg


Подключаем флешку к роутеру

Идем на вкладку "Тех.обслуживание" ищем "Поддержка JFFS2" включаем "JFFS2" нажимаем "Применить"

рис5

Image:alastanka5.jpg

Переходим на вкладку "Службы" раздел "USB"

включить все кроме "Поддержка USB 1.1 (UHCI)", "Поддержка USB 2.0", "Automatic Drive Mount".

нажать "Применить" произойдет перезагрузка.

рис6

Image:alastanka6.jpg

Переходим на вкладку "Тех.обслуживание" раздел "Команды"

вставляем:

gpio disable 4

sleep 5

mount -o noatime /dev/scsi/host0/bus0/target0/lun0/part1 /jffs

mount -o noatime /dev/scsi/host0/bus0/target0/lun0/part2 /mnt

/opt/bin/busybox swapon /dev/scsi/host0/bus0/target0/lun0/part3

mount -o bind /jffs/opt /opt

/opt/etc/init.d/S80lighttpd start

/opt/etc/init.d/S70mysqld start

sleep 5

gpio enable 5

gpio enable 4

нажимаем кнопку "Сохрю параметры запуска" ждем пока перезагрузится роутер(должен погаснуть и загорется индикатор принтера)

подробнее:

gpio disable 4 --- включает индикатор боковой кнопки синего цвета

sleep 5 --- пауза 5 секунд

mount -o noatime /dev/scsi/host0/bus0/target0/lun0/part1 /jffs --- монтируем первый раздел jffs

mount -o noatime /dev/scsi/host0/bus0/target0/lun0/part2 /mnt --- монтируем второй раздел mnt

/opt/bin/busybox swapon /dev/scsi/host0/bus0/target0/lun0/part3 --- монтируем третий раздел под SWAP

mount -o bind /jffs/opt /opt --- монтируем папку opt

/opt/etc/init.d/S80lighttpd start --- запуск сервера lighttpd

/opt/etc/init.d/S70mysqld start --- запуск сервера mysql

sleep 5 --- пауза 5 секунд

gpio enable 5 --- включает индикатор принтера

gpio enable 4 --- выключает индикатор боковой кнопки синего цвета

Очень удобно вы видите когда начался запуск монтирования и когда закончился.

пишем:

gpio disable 3

sleep 5

/opt/etc/init.d/S80lighttpd stop

/opt/etc/init.d/S70mysqld stop

umount /opt

umount /mnt

umount /jffs

sleep 5

gpio disable 5

gpio enable 3

нажимаем кнопку "Save Shutdown" ждем пока перезагрузится роутер(должен погаснуть и загорется индикатор принтера)

подробнее:

gpio disable 3 --- включает индикатор боковой кнопки красного цвета

sleep 5 --- пауза 5 секунд

/opt/etc/init.d/S80lighttpd stop --- остановка сервера lighttpd

/opt/etc/init.d/S70mysqld stop --- остановка сервера mysql

umount /opt --- размонтируем папку

umount /mnt --- размонтируем второй раздел

umount /jffs --- размонтируем первый раздел

sleep 5 --- пауза 5 секунд

gpio enable 5 --- выключает индикатор принтера

gpio enable 3 --- выключает индикатор боковой кнопки красного цвета

Очень удобно вы видете когда начался запуск размонтирования и когда закончился


пишем:

/usr/sbin/iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT

/usr/sbin/iptables -I INPUT 1 -p tcp --dport 21 -j ACCEPT


подробно:

/usr/sbin/iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT --- открываем внешний 80 порт

/usr/sbin/iptables -I INPUT 1 -p tcp --dport 21 -j ACCEPT --- открываем внешний 21 порт

нажимаем кнопку "Сохр. брандмауэр" ждем пока перезагрузится роутер(должен погаснуть и загорется индикатор принтера)

рис7

Image:alastanka7.jpg

Смена порта Админки роутера, запускаем программу putty.exe

nvram set http_lanport=81

nvram commit

reboot

Теперь для входа в Админку роутера адрес http://192.168.1.1:81 , а порт 80 использовать для сайта.

Для возврата по-умолчанию:

nvram set http_lanport=""

nvram commit

reboot

ждем пока загорится индикатор принтера запускаем putty.exe

dmesg

ищем строки

Partition check:

/dev/scsi/host0/bus0/target0/lun0: p1 p2 p3

если есть продолжаем

mount -o noatime /dev/scsi/host0/bus0/target0/lun0/part1 /jffs

mount -o noatime /dev/scsi/host0/bus0/target0/lun0/part2 /mnt

mount -o bind /jffs/opt /opt

mkdir /jffs/opt

mount -o bind /jffs/opt /opt

смотрим чтоб было примонтированно /jffs /mnt /opt

mount

/dev/scsi/host0/bus0/target0/lun0/part1 on /jffs type ext3 (rw,noatime)

/dev/scsi/host0/bus0/target0/lun0/part2 on /mnt type ext3 (rw,noatime)

/dev/scsi/host0/bus0/target0/lun0/part1 on /opt type ext3 (rw,noatime)

если есть продолжаем

перезагружаем(если неперезагрузить то установка пройдет успешно но после загрузки пропадает папка "opt/share/www/phpmyadmin/" наверно копирует в память)

reboot

ждем пока загорится индикатор принтера запускаем putty.exe

wget http://www.3iii.dk/linux/optware/optware-install-ddwrt.sh -O - | tr -d "\r" > /tmp/optware-install.sh

sh /tmp/optware-install.sh

export PATH=/opt/bin:/opt/sbin:$PATH

unset LD_LIBRARY_PATH

/opt/bin/ipkg-opt update

/opt/bin/ipkg-opt install lighttpd

/opt/bin/ipkg-opt install php-fcgi

/opt/bin/ipkg-opt install microperl

/opt/bin/ipkg-opt install phpmyadmin

reboot

смотреть папку www

ls -l /opt/share/www/

drwxr-xr-x 2 root root 4096 Oct 11 18:00 lighttpd

drwxr-xr-x 7 root root 4096 Oct 11 18:10 phpmyadmin

если есть продолжаем

vi /opt/var/log/lighttpd/error.log

смотрим лог lighttpd последние 2 строки

2010-10-11 18:13:08: (fdevent.c.41) event-handler linux-sysepoll failed, try to set server.event-handler = "poll" or "select"

2010-10-11 18:13:08: (server.c.1112) fdevent_init failed

vi /opt/etc/lighttpd/lighttpd.conf

нажимаем латинскую букву a и редактируем

  1. server.event-handler = "freebsd-kqueue" # needed on OS X

меняем

server.event-handler = "poll" # needed on OS X


меняем порт на 80

server.port = 80

открываем чтобы видеть папки

  1. dir-listing.activate = "enable"

меняем на

dir-listing.activate = "enable"

нажимаем Esc для выхода из редактирования

сохраняем фаил набрав:

:x

если вы неуверенны что надо сохранять вдруг чтото нето стерли нажмаем :q! и выходим без сохранения

перезагружаем

reboot


проверяем lighttpd

http://192.168.1.1/

если видем "lighttpd server is running." идем дальше

проверяем PHP и базу MySQL

http://192.168.1.1/phpmyadmin/

если работает идем дальше

устанавливаем busybox

/opt/bin/ipkg-opt install busybox

перезагружаем

reboot


Чтобы изменить пароль к доступу MySQL в телнет введите строку:

/opt/bin/mysqladmin -u root password 'new-password'

Вместо new-password – введите новый пароль.

Пример: /opt/bin/mysqladmin -u root password 'root'

Это мы задали пароль root

если сменили пароль то надо ввести пароль на админку http://192.168.1.1/phpmyadmin/

vi /opt/share/www/phpmyadmin/config.inc.php

найти

$cfg['Servers'][$i]['password'] = ; // MySQL password (only needed

нажать латинскую букву а вписать пароль нажать Esc затем набрать :x

Чтоб в дальнейшем редактировать не через телнет настраиваем FTP

В админке роутера преходим на вкладку "Службы" раздел "NAS" включаем "ProFTPD"

Files Directory === /jffs

Allow Write === включить (запись, изменение файлов папок)

User Password List === тут пользователь и пароль через пробел

Anonymous Login (Read-only) === включит анонимного пользователя

Anonymous Home Sub-directory === указываем папку для анонимного пользователя например у меня /opt/share/www/files/ (ни в коем случае неоткрывайте папку /opt/share/www/ или еще глубже ибо все смогут смотреть пароли в конфигурационных файлах сайта)

рис8

Image:alastanka8.jpg

ВСЕ:)

готовые файлы(lighttpd.conf) можно взять здесь http://files.alastanka.org.ua/

Обсуждение здесь http://www.dd-wrt.com/phpBB2/viewtopic.php?t=81374

С уважением ваш Shaman Demon Alastanka.Org.Ua