Настройка вэб-сервера Lighttpd + PHP на роутере с OpenWrt
В репозитории OpenWrt есть несколько веб-серверов, практически на любой вкус. Причём, при установке веб-интерфейса LuCI автоматически устанавливается сервер uHTTPd. Однако, мы вправе выбирать, чем нам удобнее пользоваться. Так я, например, предпочитаю сервер Lighttpd - он легковесный, но обладает довольно большими возможностями и гибко настраивается под различные нужды. Поэтому сейчас попробуем его установить и настроить на роутере с OpenWrt.
Установка Lighttpd и PHP
opkg update
opkg install lighttpd lighttpd-mod-cgi php5 php5-cgi
Настройка вэб-сервера
Теперь редактируем файл /etc/lighttpd/lighttpd.conf. Ниже я привожу только те фрагменты, которые мы изменяем.
Включаем CGI модуль:
server.modules = (
"mod_cgi"
)
Так как корневая директория сервера по умолчанию /www/ используется для LuCI, выбираем другую директорию:
server.document-root = "/usr/local/www/"
Так же, указываем корневую директорию в файле /etc/php.ini:
doc_root = "/usr/local/www"
Для того, чтобы файлы с расширением .php на нашем сервере обрабатывались PHP интерпретатором, добавляем в /etc/lighttpd/lighttpd.conf:
cgi.assign = ( ".php" => "/usr/bin/php-cgi" )
А так же, указываем серверу искать файлы index.php:
index-file.names = ( "index.html", "index.htm", "index.php" )
Если у нас будет несколько виртуальных хостов, то можно использовать модуль simple_vhost, или добавить виртуальные хосты вручную:
$HTTP["host"] == "website1.my.domain" {
server.document-root = "/usr/local/www/website1/"
}
Настройка LuCI на Lighttpd
По умолчанию наш сервер работает на 80 порту. А доступ к LuCI мы можем сделать, например, на 81 порту, с помощью сокета:
$SERVER["socket"] == ":81" {
server.document-root = "/www/"
cgi.assign = ( "luci" => "/usr/bin/lua" )
}
Запуск сервера
Теперь, когда всё настроили, можем протестировать работу нашего сервера. Создадим корневую директорию для нашего веб-сайта и тестовую страничку:
mkdir /usr/local/www/website1
echo "<?php phpinfo(); ?>" > /usr/local/www/website1/index.php
Останавливаем uhttpd и запускаем lighttpd:
etc/init.d/uhttpd stop
/etc/init.d/uhttpd disable
/etc/init.d/lighttpd start
/etc/init.d/lighttpd enable
Теперь можно попробовать зайти на наш тестовый сайт: http://website.my.domain ; и в веб-интерфейс LuCI: http://website.my.domain:81 .
Полезные ссылки:
OpenWrt Wiki - howto: Lighttpd
OpenWrt Wiki - howto: Set up a LAMP stack on OpenWrt
OpenWrt Wiki - howto: LuCI on lighttpd
OpenWrt Wiki - howto: PHP
Комментариев: 0