Почему нет? Например потому, что в N10U памяти всего 32Mb, apache+php съест её значительно больше, чем lighttpd+fcgi.
Printable View
Спасибо за ответ.
Вы говорите, что "apache+php съест её значительно больше". Да, я не спорю. Просто хочется найти решение в данном вопросе. Мне бы работающий httpd.conf .
День добрый.
Подскажите пожалуйста.
На роутере apache не ставил и необходимости в этом нет,
нужна только возможность добавлять нового пользователя и пароль в файл .htpasswd
из командной строки. Установил mini-httpd-htpasswd, но если я правильно понял,
то он не позволяет это делать. Пароль нельзя указать в строке, необходимо вводить его в ручную.
Есть какое решение, чтобы добавить пользователя и пароль указав всё в командной строке без установки лишнего?
Воспользуйтесь online сервисом.
Утилиты htdigest и htpasswd — часть пакета apache и требуют для своей работы те же зависимости, что и сам apache. Можно, конечно, выдрать утилиты из пакета, но в систему всё равно придётся устанавливать всё необходимое для того, чтобы они стали работоспособными:
Вроде работает:Code:# opkg info apache | grep Depends
Depends: libc, libapr, libaprutil, libpcre, libopenssl, unixodbc
Code:# echo P@ssw0rd | htpasswd -c /opt/tmp/passwd vasya
Поскольку в этой теме так и не описано, как просто и внятно подружить Apache с PHP, то я опишу свой ламерский способ. :)
Я устанавливал на asus RT-N66U с установленным ENTWARE на внутреннюю SD карту. На роутере уже установлены и активно работают Asterisk и KMS-сервер.
Итак:
1. Установить пакеты:
2. Исправить строки в файле конфигурации апача (/opt/etc/apache/httpd.conf):Code:opkg install apache
opkg install php5-fastcgi
(номер порта и группу можно установить по своему усмотрению)Code:Listen 81
Group #1
добавить в этот же файл строки:
3. В файле конфигурации PHP (/opt/etc/php.ini) исправить путь к корневой папке сайта:Code:DirectoryIndex index.php index.html index.htm
AddType application/x-httpd-fastcgi php
ScriptAlias /_php_/ "/opt/bin/"
Action application/x-httpd-fastcgi "/_php_/php-fcgi"
<Directory "/opt/bin/">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order deny,allow
Allow from all
</Directory>
(путь должен быть такой же, как в файле httpd.conf в строке DocumentRoot "/opt/share/htdocs")Code:doc_root = "/opt/share/htdocs"
4. перезапустить апач:
На этом все.Code:/opt/etc/init.d/S80apache restart
Чтобы проверить работоспособность можно поместить в папку /opt/share/htdocs файл index.php с таким содержимым:
и набрать в адресной строке браузера адрес веб сервера (192.168.1.1:81), после чего должна появиться страница с информацией об установленном PHP.Code:<?php
phpinfo();
?>
----------------
PS Раз сказал "А", говори и "Б". :)
Вслед за PHP5 я на прошлой неделе установил на роутер mysql (не лайт) и несколько доп. модулей PHP (gd, json, mbstring, mcrypt, mysql, pdo, session, simplexm, xml, zip). Потом установил CMS Джумлу и образ работающего на ней сайта.
Вопреки ожиданиям сайт заработал достаточно шустро. Во всяком случае не хуже, чем на дешевом виртуальном хостинге.
Еще на сайт приладил phpMyAdmin для игр с mysql.
Уже почти 2 недели все работает без глюков.
При этом нагрузка на процессор и оперативку вполне приемлемые, так что основные функции роутера в результате этого опыта не пострадали.
В нынешней сборке апача, как я понял, нет возможности устанавливать модули - в частности fcgi-mod для поддержки PHP в режиме fastcgi (да в репозитарии и нет модулей для апача).
Вышеописанным способом удалось обойти эту проблему.
Но отсутствие модуля rewrite очень огорчает.
Если кто то порешал проблему с отсутствием rewrite-mod в апаче, плиз отпишитесь тут!!!
Если смена сервера только по причине настроек .htaccess, то не лучше ли просто настроить в lighttpd?
1. Вход в папку www/admin c опр. адресов.
2. Авторизация по паролю. Нужно где-то держать файл с паролем, файл вида admin:password
/mydir/.auth.pws
Code:
$HTTP["remoteip"] !~ "192.168.3.145|127.0.0.1" {
$HTTP["url"] =~ "^/admin/" {
url.access-deny = ( "" )
}
}
$HTTP["url"] =~ "^/admin/" {
auth.backend = "plain"
auth.backend.plain.userfile = "/mydir/.auth.pws"
auth.require = ( "/admin" => ( "method" => "basic", "realm" => "whatever", "require" => "valid-user" ))
}