1 1 1 1 1 Rating 3.78 (9 Votes)

Для управления своим умным домом я выбрал веб-интерфейс. Для этого мне нужно установить веб-сервер на роутер. Подопытным выступает преславутый wr703n. В данной статье будет рассмотрена связка lighttpd+php+sqlite.

Устанавливаем все необходимые пакеты

opkg update
opkg install lighttpd lighttpd-mod-cgi lighttpd-mod-access lighttpd-mod-redirect zoneinfo-core zoneinfo-europe libsqlite3 php5-cgi php5-mod-pdo php5-mod-sqlite php5-mod-sqlite3 php5-mod-gd php5-mod-session php5-mod-json php5-mod-xml php5-mod-dom
 Настраиваем lighttpd
nano /etc/lighttpd/lighttpd.conf
 
Раскоментируем строки которые выделены жирным, мне также пришлось добавить строку "mod_access", т.к. ее не было по умолчанию. Также не забываем удалить знак # внизу перед скопкой ")"
 
# lighttpd configuration file
#
## modules to load
# all other module should only be loaded if really neccesary
# - saves some time
# - saves memory
server.modules = (
        "mod_access",
#       "mod_rewrite",
       "mod_redirect",
#       "mod_alias",
#       "mod_auth",
#       "mod_status",
#       "mod_setenv",
#       "mod_fastcgi",
#       "mod_proxy",
#       "mod_simple_vhost",
       "mod_cgi",
#       "mod_ssi",
#       "mod_usertrack",
#       "mod_expire",
#       "mod_webdav"
)
 
Меняем место расположения файлов сервера с /www на /srv/www, т.к. по первому адресу у нас будет работать стандартная веб-морда сервера Luci
 
mkdir -p /srv/www
server.document-root = "/srv/www/"

 Включаем логирование сервера

 ## where to send error-messages to
server.errorlog = "/var/log/lighttpd/error.log"

Добавляем поддержку php на сервер

 ## files to check for if .../ is requested
index-file.names = ( "index.html", "default.html", "index.htm", "default.htm", "index.php" )
 
 
Так как у меня установлен стандартный веб-интерфейс Luci, который занимает 80порт, то я задаю для lighttpd 81 порт
 
## bind to port (default: 80)
server.port = 81

включить листинг для всех каталогов

## virtual directory listings
server.dir-listing = "enable"

Добавляем веб-серверу поддержку php-cgi. Также не забываем раскоментировать всю строку.

#### CGI module
cgi.assign = ( ".pl"  => "/usr/bin/perl", ".cgi" => "/usr/bin/perl", ".php" => "/usr/bin/php-cgi")

 

Правим файл php.ini

nano /etc/php.ini
extension=gd.so
extension=pdo.so
extension=sqlite.so
extension=sqlite3.so
extension=session.so
extension=timezonedb.so
extension=mysql.so
date.timezone = Europe/Kiev
doc_root = "/srv/www"

 Если планируете запустить на роутере с openwrt сразу несколько сайтов, то необходимо настроить виртуальные хосты в lighttpd и закоментировать последнюю строку doc_root = "/srv/www"

Запускаем сервер

/etc/init.d/lighttpd enable
/etc/init.d/lighttpd start

Log in to comment

: 12 сен 2014 20:50 Автор: mszerg #4
mszerg аватар
У меня успешно работает mini-framework silex. Пытался еще запустить fat-free, но с ходу не получилось
: 12 сен 2014 19:09 Автор: Виктор #3
Виктор аватар
А какой-нибудь php-framework на такой сборке для openwrt получится запустить?