PDA

Bekijk de volledige versie : Проблема с thttpd



n00bii
07-11-2006, 13:23
Коллеги, подскажите, как заставить thttpd+php отображать страницы на русском?
В php.ini указал default_charset = "windows-1251"
В заголовке html страницы указал <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

Броузер все-равно воспринимает кодировку, как Western Europian (ISO)

где грабли?

Tronix
08-11-2006, 06:59
Запускать с ключем -T cp1251.

/opt/sbin/thttpd -C /opt/etc/thttpd.conf -T cp1251

Shchennikov1
30-01-2007, 15:24
Проблемма с thttpd сервером- не работает передача данных методом POST!!! те данные передаются но только 128 байт, а если пытаться передавать больше то вообще ничего не передается. Роутер - wl500gp с последней прошивкой Олега, подкллючен hdd, есть swap файл на 300Mb.
Может кто сталкивался с этой проблемой? А то даже простейшую гостевую невозможно развернуть.

Vollsky
15-04-2007, 18:58
Есть вопрос по безопасности и разграничения доступа к папкам и файлам в директории "WWW" thttpd - вебсервера.
Как сделать, что бы кроме как к index.php напрямую нельзя было обращаться к другим файлам и просматривать их?

Sheeft
15-04-2007, 19:30
chmod ?
htaccess ?

Vollsky
16-04-2007, 17:45
chmod ?
htaccess ?

Спс.:D Про эти команды я уже где-то слышал:p

_ab_
16-04-2007, 18:12
Рекомендую поставить lightpd в нем такая возможность есть. Сам пользуюсь. Как ставить тут: http://wl500g.info/showthread.php?t=5247&highlight=lighttpd

O настройках lightpd и, в частности, о правах на папки тут: http://www.opennet.ru/docs/RUS/lighttpd_doc/

Vollsky
18-04-2007, 11:00
Рекомендую поставить lightpd в нем такая возможность есть. Сам пользуюсь. Как ставить тут: http://wl500g.info/showthread.php?t=5247&highlight=lighttpd

O настройках lightpd и, в частности, о правах на папки тут: http://www.opennet.ru/docs/RUS/lighttpd_doc/

Спасибо. Попробую.

Vollsky
18-04-2007, 11:34
Кто подскажет почему thttpd - вебсервер виден только с LAN, а с WAN не виден?
Направление поиска....

_ab_
18-04-2007, 12:16
Направление поиска: firewall и iptables

Решение при условии, что thttpd на порту 8080 (post-firewall):

#!/bin/sh
#WWW
iptables -t nat -I PREROUTING 1 -p tcp -d "$2" --dport 80 -j DNAT --to "$2":8080
iptables -t nat -D PREROUTING -i "$1" -p tcp --dport 80 -j DROP
iptables -t nat -I PREROUTING 2 -i "$1" -p tcp --dport 8080 -j DROP
iptables -I INPUT 1 -i "$1" -d "$2" -p tcp --syn --dport 8080 -j ACCEPT

Vollsky
18-04-2007, 21:33
Направление поиска: firewall и iptables

Решение при условии, что thttpd на порту 8080 (post-fireval):

#!/bin/sh
#WWW
iptables -t nat -I PREROUTING 1 -p tcp -d "$2" --dport 80 -j DNAT --to "$2":8080
iptables -t nat -D PREROUTING -i "$1" -p tcp --dport 80 -j DROP
iptables -t nat -I PREROUTING 2 -i "$1" -p tcp --dport 8080 -j DROP
iptables -I INPUT 1 -i "$1" -d "$2" -p tcp --syn --dport 8080 -j ACCEPT


Спасибо за помощь. У меня используется 82 порт, поэтому тупо поменяю 8080 на 82. А вобще хотелось бы понять смысл этих команд. Не подскажите где почитать? На форуме поиском нашел крохи.:confused:
Смущает еще то, что если я меняю порты с Apache на компе и thttpd, то Apache виден, как с LAN так и с WAN и по 82 и по 8080, а thttpd только с LAN.

bak
19-04-2007, 06:43
У меня WL-500Gp. Подскажите, почему после отключения, и последующего включения роутера web-сервер не запускается. (хотя в post-boot всё записано, и если ввожу reboot то после перезагрузки всё отлично работает).

Vollsky
19-04-2007, 14:10
Все так же thttpd - вебсервер виден только с LAN, а с WAN не виден?
Apache установленный на 192.168.1.2 виден как с LAN, так и с WAN.
Для thttpd использую 82 порт, содержимое post-firewal:
#!/bin/sh
#WWW
iptables -t nat -I PREROUTING 1 -p tcp -d "$2" --dport 80 -j DNAT --to "$2":82
iptables -t nat -D PREROUTING -i "$1" -p tcp --dport 80 -j DROP
iptables -t nat -I PREROUTING 2 -i "$1" -p tcp --dport 82 -j DROP
iptables -I INPUT 1 -i "$1" -d "$2" -p tcp --syn --dport 82 -j ACCEPT


В Web интерфейсе стоит:
Enable WAN to LAN Filter? = yes
Packets(WAN to LAN) not specified will be: = DROP
Filtered ICMP(WAN to LAN) packet types: = 0 (Эхо-ответ)
WAN to LAN Filter Table = Таблица пуста
Для работы Apache на 192.168.1.2:
NAT Setting - Virtual Server
Enable Virtual Server? = yes
8080 192.168.1.2 80 TCP HTTP
Где же "собака" окапалась?:confused:

FilimoniC
19-04-2007, 21:10
Где же "собака" окапалась?:confused:




8080 192.168.1.2 80 TCP HTTP
тут ?

Vollsky
19-04-2007, 21:21
8080 192.168.1.2 80 TCP HTTP
тут ?

Но это проключение с внешней сети на внутренний Apache сервер.
И это работает.
Не понял вашей реплики. Можно поподробнее?

FilimoniC
20-04-2007, 04:05
Но это проключение с внешней сети на внутренний Apache сервер.
И это работает.
Не понял вашей реплики. Можно поподробнее?

Сори пьяный был :)

#!/bin/sh
iptables -D INPUT -j DROP
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -i $1 -p tcp --dport 80 -j DNAT --to-destination $4:8080
iptables -A INPUT -j DROP
у меня пашет

Vollsky
20-04-2007, 19:21
У меня WL-500Gp. Подскажите, почему после отключения, и последующего включения роутера web-сервер не запускается. (хотя в post-boot всё записано, и если ввожу reboot то после перезагрузки всё отлично работает).

После правки post-boot содержимое /usr/local в nvram сохраняли?
flashfs save
flashfs commit
flashfs enable

al37919
20-04-2007, 19:37
Т.е. вопрос в том, чем отличается холодный рестарт от горячего?

В виде гипотезы могу предположить следующее: при включении питание подается на внешний носитель с некоторой задержкой, плюс некоторое время требуется на раскрутку винчестера и т.д., в результате post-boot отрабатывает не успев запустить то что надо. При горячем рестарте через reboot питание вырубается только на короткое время и все что надо раскрутиться успевает. Мораль такова: не попробовать ли добавить куда-нибудь в post-boot (возможно ближе к началу) что-то вроде sleep 5s (с цифрой можно поэкспериментировать), что бы дать ему задержку для проведения раскрутки.

FilimoniC
20-04-2007, 20:59
Т.е. вопрос в том, чем отличается холодный рестарт от горячего?

В виде гипотезы могу предположить следующее: при включении питание подается на внешний носитель с некоторой задержкой, плюс некоторое время требуется на раскрутку винчестера и т.д., в результате post-boot отрабатывает не успев запустить то что надо. При горячем рестарте через reboot питание вырубается только на короткое время и все что надо раскрутиться успевает. Мораль такова: не попробовать ли добавить куда-нибудь в post-boot (возможно ближе к началу) что-то вроде sleep 5s (с цифрой можно поэкспериментировать), что бы дать ему задержку для проведения раскрутки.

на macsat.com была инструкция по монтированию флешки специально для этого.
Смысл в том что на флешку кладется ключ-файл (или ключ-папка как у максата), и с интервалом в секунду происходит попытка смонтировать устройство, после чего проверяется ключ-файл. Если через секунду нет ключ-файла, то монтируем снова (итак 30 попыток=30 сек).

Vollsky
22-04-2007, 16:06
Сори пьяный был :)

#!/bin/sh
iptables -D INPUT -j DROP
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -i $1 -p tcp --dport 80 -j DNAT --to-destination $4:8080
iptables -A INPUT -j DROP
у меня пашет
Спасибо. Сначало заработало, но потом глюкнул thttpd. Перегрузился и все вернулось на круги своя. Что только не пробовал, даже грохнул ВСЕ и по новой прошел все стадии, но видимо бубна не хватает:D
Может из лога что прояснится:


Jan 1 05:00:19 kernel: Adding Swap: 104380k swap-space (priority -1)
Jan 1 05:00:20 thttpd[152]: bind 0.0.0.0 - Address already in use
Jan 1 05:00:21 thttpd[152]: thttpd/2.25b PHP/5.2.0 starting on port 82
Jan 1 05:00:21 thttpd[152]: started as root without requesting chroot(), warning only
Apr 22 19:26:26 ntp client: Synchronizing time with time.nist.gov ...

Хочется добить его, а после перейти на lighttpd:rolleyes:

vladonline
22-04-2007, 19:22
забей на thttpd. Ставь lighttpd и будет тебе щастье.

FilimoniC
22-04-2007, 20:41
Спасибо. Сначало заработало, но потом глюкнул thttpd. Перегрузился и все вернулось на круги своя. Что только не пробовал, даже грохнул ВСЕ и по новой прошел все стадии, но видимо бубна не хватает:D
Может из лога что прояснится:


Jan 1 05:00:19 kernel: Adding Swap: 104380k swap-space (priority -1)
Jan 1 05:00:20 thttpd[152]: bind 0.0.0.0 - Address already in use
Jan 1 05:00:21 thttpd[152]: thttpd/2.25b PHP/5.2.0 starting on port 82
Jan 1 05:00:21 thttpd[152]: started as root without requesting chroot(), warning only
Apr 22 19:26:26 ntp client: Synchronizing time with time.nist.gov ...

Хочется добить его, а после перейти на lighttpd:rolleyes:

1) а оно вообще работает? Сделайте ps на роутере...
2) У меня настройки для 8080 порта.. у вас он на 82 , так что делайте поправки.
3) Если с английским дружите, то на www.macsat.com есть отличный туториал
4) Подставьте вместо $1,$2,... нормальные значения ($1=WAN-интерфейс, обычно vlan1 ; $4 - Внутренний IP роутера =192.168.1.1 обычно)

Vollsky
23-04-2007, 06:28
1) а оно вообще работает? Сделайте ps на роутере...
2) У меня настройки для 8080 порта.. у вас он на 82 , так что делайте поправки.
3) Если с английским дружите, то на www.macsat.com есть отличный туториал
4) Подставьте вместо $1,$2,... нормальные значения ($1=WAN-интерфейс, обычно vlan1 ; $4 - Внутренний IP роутера =192.168.1.1 обычно)

Вобще он работает. Я так и поставил везде вместо 8080 - 82 порт.
Правда сегодня утром посмотрел, а он снова повис. Перезапустил, проверил и на работу ушел. Вечером приду посмотрю, что то это уже второе повисание thttpd. Достал он меня уже. Спасибо за разьяснение по $1,$2,$4. Хотел дополнительно об этом спрашивать.
P.S.
Я думаю что причина моих бед возможна в фаерволе WEB интерфейса LAN - WAN. У меня там стоят ограничения для компа дочери по выходу в инет. Оставил ей аську и месный форум. Может эта таблица как то влияет?

FilimoniC
23-04-2007, 07:17
Ну лично у меня тоже тхттпд дох тока в путь пока без свопа работал :)

Vollsky
23-04-2007, 07:24
Ну лично у меня тоже тхттпд дох тока в путь пока без свопа работал :)
Своп есть 100мб
Я наблюдал, начинает использоваться как только свободной памяти остается чють более 1мб

Vollsky
24-04-2007, 02:50
Все умерли оба:D Сначало мое терпение, а потом грохнул thttpd:eek:

FilimoniC
24-04-2007, 04:06
Все умерли оба:D Сначало мое терпение, а потом грохнул thttpd:eek:
Ну в принципе, я лечил это cron+thttpd-watchdog.sh ;) раз в 5 минут

Vollsky
24-04-2007, 07:23
Ну в принципе, я лечил это cron+thttpd-watchdog.sh ;) раз в 5 минут

Прошу прощения - не понял: cron+thttpd-watchdog.sh
Что за сторожевой пес?

FilimoniC
24-04-2007, 19:10
Прошу прощения - не понял: cron+thttpd-watchdog.sh
Что за сторожевой пес?
там была какая-то хрень основаная на проверке Типа:

del .\wd_file
wget http://127.0.0.1:82/cgi-bin/test_ifalive.php .\wd_file
cat .\wd_file grep ... (тут условия)
Если в .\wd_file все ок, то удалить все key-файлы и закончить скрипт, если не все ок, то запустить thttpd и сделать key-file.1, key-file.2... Если key-file'ов 5, то : если есть key-file.reboot (флаг того что была попытка восстановить тхттпд методом перезагрузки), то ничего не делать (считаем что тхттпд сдох окончательно), если нет key-file.reboot, то создать таковой и перезапуститься (в надежде что после ребута все будет ок)

Делал давно, в bash-скриптах не разобрался, но смысл думаю ясен

Vollsky
24-04-2007, 19:26
там была какая-то хрень основаная на проверке Типа:

del .\wd_file
wget http://127.0.0.1:82/cgi-bin/test_ifalive.php .\wd_file
cat .\wd_file grep ... (тут условия)
Если в .\wd_file все ок, то удалить все key-файлы и закончить скрипт, если не все ок, то запустить thttpd и сделать key-file.1, key-file.2... Если key-file'ов 5, то : если есть key-file.reboot (флаг того что была попытка восстановить тхттпд методом перезагрузки), то ничего не делать (считаем что тхттпд сдох окончательно), если нет key-file.reboot, то создать таковой и перезапуститься (в надежде что после ребута все будет ок)

Делал давно, в bash-скриптах не разобрался, но смысл думаю ясен

Спасибо за помощь. Только поставил lighttpd. Теперь буду мучать его, или он меня:rolleyes:

DINI
07-05-2007, 17:26
Всем привет!

Решил купить себе коробочку ASUS WL-500gP. До покупки достаточно много читал о ней различные статьи и отзывы, в которых критиковалась родная прошивка от Асуса. Однако практически везде в качестве панацеи упоминалась прошивка от Олега, обладающая бОльшими возможностями.

В общем, купил роутер, установил прошивку (спасибо Олегу за нее!), скачал и установил нужные мне пакеты. Единственное, чего мне для счастья не хватало - обещанной Асусом возможности качать файлы по ночам при выключенном компе.

К счастью, я умею писать на PHP и немного понимаю в линуксах, поэтому скрипт, который будет являться полноценной заменой Download Master, уже пишется. Когда он будет в более-менее пристойном состоянии, я его выложу сюда.

В принципе, я читал про проблемы с POST формами у thttpd, но не увидел ни одного работающего решения. Мой скрипт сможет работать только с GET формами, однако мне хотелось бы в него добавить некоторые функции, которые работать с GET данными просто не могут. Поэтому если кто-нибудь мне все-таки подскажет, как настроить thttpd для нормальной работы с POST формами, то это будет просто замечательно.

Как вариант решения проблемы - установка другого сервера, однако Apache я установить не смог. У меня с ним также возникла уже описанная на этих форумах проблема: Segmentation fault при попытке запуска.

И еще: не советую обновлять пакет php-thttpd. У меня после обновления стали глючить даже GET формы. Доходило до того, что процесс thttpd после отправки запроса просто убивался...
Пакет php-thttpd_2.25b-5.2.0-4_mipsel.ipk работает у меня стабильно, более новая версия приводит к указанным проблемам.

В общем, проконсультируйте, пожалуйста по поводу POST форм, чтобы я знал, нужно ли добавлять в мой скрипт функции, использующие эти формы.

_ab_
07-05-2007, 18:18
Можно попробовать поставить lightpd: http://wl500g.info/showthread.php?t=5247&highlight=lighttpd

Он надежнее чем php-thttpd
php не знаю, но готовые скрипты типа файл менеджера, phpmysqladmin'a и sqlitemanager'a работают на нем прекрасно

DINI
07-05-2007, 20:13
В lighttpd PHP устанавливается как CGI, я сам всегда его устанавливал как модуль сервера, поэтому тоже не знаю, как он себя будет вести, но буду тестить...

DINI
07-05-2007, 20:45
_ab_, установил lighttpd, пркрутил PHP, проверил GET и POST формы -- все работает замечательно. Спасибо за совет.
Буду теперь писать скрипт дальше.

_ab_
08-05-2007, 09:07
Ждем скрипта :)

Reyter
15-05-2007, 08:09
+1
Результаты мы увидим? Очень уж интересно, что получилось :)
Ну или хотя бы на каком этапе находится работа?

DINI
15-05-2007, 09:43
Результаты увидите.
Скрипт я пишу в свободное время, поэтому процесс идет не быстро. Но думаю, что полностью скрипт будет готов к концу месяца.

pahom
30-12-2007, 01:33
Если где то решалась аналогичная проблема ткните носом, но я во уже месяц бьюсь нечего похожего не нахожу. Опять же все усугубляется нулевым знанием зверька пингвиньего семейства.
проблема следующая, все устойчиво работает и PPTP и LAN и WAN и samba и stupidfttp, а вот несчасный thttpd постоянно вылетает, вылететь может сразу после перезагрузки, а может и через часа 2-3 или через день. , причем у него в логах я ничего такого не вижу, а в файлах конфигурации просто не понимаю :(. логи и конфиги привожу ниже. прошу знающих людей глянуть файлики и направить в нужное русло.
да роутер не разогнанный с последней прошивкой от олега.
если будет работать вот сам сайт в зачатке http://81.222.204.23:8080
очень прошу помочь, потому как постоянно имею неприятные половые отношения с начальством по этому поводу.

Gremlin
30-12-2007, 07:05
Вы уж извините за офтопик, но всё-таки делать корпоративный сайт на роутере - это полный бред.

angel_il
30-12-2007, 10:05
Вы уж извините за офтопик, но всё-таки делать корпоративный сайт на роутере - это полный бред.

как раз на корпоративный то его и хватит для интранета.

Marks
30-12-2007, 10:56
Может стоит отказаться от thttpd в пользу lighttpd? Вроде он в таком поведении замечен не был :)

al37919
30-12-2007, 11:49
может Вы бы попробовали lighttpd вместо thttpd? Насколько я знаю thttpd падает не только у Вас.
P.S. Собственно коллега уже успел ответить в том же ключе пока я до этой страницы дошел :)

pahom
30-12-2007, 13:04
отвечаю на вопрос первый, на такого рода сайт его вполне хватит, ссылки на фтп для инструкций на продаваемую аппаратуру, небольшой форум где можно будет консультировать клиентов, вот собственно и все.
организовать все это на основном сайте www.k40.ru нет возможности в силу ряда причин.

спасибо ребята за совет, тогда следующий вопрос как можно проверять наличие в памяти, скажем раз в 5-10 минут, thttpd и если его там нет то загружать его, это видимо нужен скрипт (временная мера), буду ставить lighhttp, только вот все инструкции на которые наткнулся оказались для меня слишком умными, если учесть что установка thttpd заняла около 2х недель, боюсь редположить сколько буду ставить light :). ткните носом пожалуйста, во что нить попроще на народном русском языке. Кстати на light есть php и sql?

al37919
30-12-2007, 13:43
скрипт нужно запускать через cron (демон для запуска программ по расписанию)
Пример подобного скрипта есть здесь: http://wl500g.info/showthread.php?t=2556&highlight=ensure

lighttpd вроде как раз заточен под работу с php, по крайней мере инструкции которые я встречал здесь обычно описывают установку связки, например:
http://wl500g.info/showthread.php?t=5247&highlight=lighttpd+php На русском языке говорят было в дебрях 50-страничной темы про ADOS

lighttpd без php у меня заработал практически сразу, так что не думаю, что это очень сложно.

pahom
30-12-2007, 14:50
Спасибо, буду попробовать.
Для меня все сейчаз сложно, ибо не имею представления об пингвине даже приблизительного, dos win все просто и понятно в какой последовательности и где конфиги, да и синтаксис за годы уже в гены осел, а тут все по другому. к сожалению что то типа линух для чайников не видел :)))))

naves
30-12-2007, 21:53
конкретно я для cron нарисовал скриптик


#!/bin/sh
# Simple SHELL script for Linux and UNIX system monitoring

HOST="192.168.0.254"
SERVICES="thttpd lighttpd cron proftpd"

# email report when
SUBJECT="Service is down"
EMAILID="naves@random-domain.net"

for myService in $SERVICES
do
echo testing $myService
count=$(pidof $myService)
echo count=$count
if [ "$count" -eq 0 ]; then
# Service failed
echo "$HOST : $myService is down at $(date)"
#echo "$HOST : $myService is down at $(date)" | sendmail -s "$SUBJECT" $EMAILID
case "$myService" in
"thttpd")
echo "trying to start thttpd..."
/opt/etc/init.d/S80thttpd start
;;
"lighttpd")
echo "trying to start lighttpd..."
/opt/etc/init.d/S80lighttpd start
;;
"proftpd")
echo "trying to start proftpd..."
/opt/sbin/proftpd
;;
*)
echo "default unknown"
;;
esac
else
echo "$HOST : $myService is OK at $(date)"
fi
done
его запихать в каталог \opt\etc\cron.5mins\
и не спрашивайте зачем у меня в списке проверяемых сервисов сам cron :)

pahom
31-12-2007, 09:05
конкретно я для cron нарисовал скриптик
Елки палки огромное тебе человеческое спасибо, я только начал расковыривать английскую ветку на эту тему, избавил меня от страданий. На какойсчет пиво заливать?

С наступаюшим всех ребята!

naves
05-02-2008, 12:52
кстати вот здесь конкретно предлагают :) http://www.acme.com/software/thttpd/notes.html

#!/bin/sh

while true ; do
/usr/local/sbin/thttpd -D -C /usr/local/www/thttpd_config
sleep 10
done
вопрос: как сделать запуск thttpd на определенный сетевой интерфейс, нужно чтобы в разных сетях на одном порту сидели демоны.
прошелся поиском, ничего кроме виртуальных хостов не нашел

Spacesoft
05-02-2008, 14:52
В самой прошивке есть встроеный http (http://wl500g.info/showthread.php?t=12730), у меня на нём прекрасно перловые странички шуршат, гдето у wrt-шников проскакивало, что и php прикручивается.
А падать сабж может из-за отсутствия свопа, тоже падал - решил не париться, тем более и так всё устраивает.

Draco
23-06-2008, 14:20
в логе выдается такая фраза
Jun 23 17:05:36 thttpd[1432]: thttpd/2.25b PHP/5.2.6 starting on port 82
Jun 23 17:05:36 thttpd[1432]: started as root without requesting chroot(), warning only

Вопрос
Может ли из за этого rrd не показывать картинки и webtools не писать в свой конфигурационный файл?
Как мне запустить thttpd под администратором?

Novik
23-06-2008, 16:24
Как мне запустить thttpd под администратором?
Вы его и так запускаете под администратором, о чем оно Вам и пишет. Погуглите по слову chroot для понимания смысла дела.

Break Action
26-06-2008, 15:30
Приветствую всех,
Мог ли бы ли вы помочь, солкнулся с проблемой неработоспособности CGI (Perl) скриптов.

конфиг thttpd

dir=/opt/share/www
port=81
user=nobody
nochroot
nosymlink
novhost
logfile=/opt/var/log/thttpd.log
pidfile=/opt/var/run/thttpd.pid
cgipat=/opt/share/www/cgi-bin/*


В скриптах получаю ошибку

403 Forbidden
The requested URL '/cgi-bin/test.cgi' resolves to a file which is marked executable but is not a CGI file; retrieving it is forbidden.
Логи коробочки

Jun 26 17:27:36 thttpd[684]: bind 0.0.0.0 - Address already in use
Jun 26 17:27:36 thttpd[684]: thttpd/2.25b PHP/5.2.6 starting on port 81
Jun 26 17:27:36 thttpd[684]: started as root without requesting chroot(), warning only
Jun 26 17:27:59 thttpd[684]: 192.168.76.108 URL "/cgi-bin/test.cgi" is executable but isn't CGI

AndreyPopov
26-06-2008, 16:12
Приветствую всех,
Мог ли бы ли вы помочь, солкнулся с проблемой неработоспособности CGI (Perl) скриптов.

конфиг thttpd

dir=/opt/share/www
port=81
user=nobody
nochroot
nosymlink
novhost
logfile=/opt/var/log/thttpd.log
pidfile=/opt/var/run/thttpd.pid
cgipat=/opt/share/www/cgi-bin/*


В скриптах получаю ошибку

403 Forbidden
The requested URL '/cgi-bin/test.cgi' resolves to a file which is marked executable but is not a CGI file; retrieving it is forbidden.
Логи коробочки

Jun 26 17:27:36 thttpd[684]: bind 0.0.0.0 - Address already in use
Jun 26 17:27:36 thttpd[684]: thttpd/2.25b PHP/5.2.6 starting on port 81
Jun 26 17:27:36 thttpd[684]: started as root without requesting chroot(), warning only
Jun 26 17:27:59 thttpd[684]: 192.168.76.108 URL "/cgi-bin/test.cgi" is executable but isn't CGI

это вы читали в теме по настройке с нуля?

d) сконфигурировать thttpd:
в /opt/etc/thttpd.conf можно поменть порт с 8080 на другой, например 82. Можно будет зайти на http://роутер:82/webtools и конфигурировать службы.
Чтобы работал cgi в конец файла /opt/etc/thttpd.conf добавить строчку
cgipat=/cgi-bin/* (именно cgipat опечатки нет)
или отредактировать 12 строчку /opt/etc/init.d/S80thttpd, она должна выглядеть как
/opt/sbin/thttpd -C /opt/etc/thttpd.conf -c /cgi-bin/*

Break Action
26-06-2008, 16:24
Я уже и так пробывал, но результат меняется не в лучшую сторону
Лог коробочки

Jun 26 18:21:03 thttpd[1897]: bind 0.0.0.0 - Address already in use
Jun 26 18:21:04 thttpd[1897]: thttpd/2.25b PHP/5.2.6 starting on port 81
Jun 26 18:21:04 thttpd[1897]: started as root without requesting chroot(), warning only
Jun 26 18:21:06 thttpd[1897]: spawned CGI process 1898 for file 'cgi-bin/test.cgi'
Jun 26 18:21:06 syslog: execve cgi-bin/test.cgi - No such file or directory
Jun 26 18:21:19 thttpd[1897]: spawned CGI process 1900 for file 'cgi-bin/hello.cgi'
Jun 26 18:21:28 thttpd[1897]: spawned CGI process 1902 for file 'cgi-bin/hello.cgi'
Jun 26 18:21:34 thttpd[1897]: spawned CGI process 1904 for file 'cgi-bin/vnstat.cgi'
Jun 26 18:21:34 syslog: execve cgi-bin/vnstat.cgi - No such file or directory

Ошибка скрипта

500 Internal Error
There was an unusual problem serving the requested URL '/cgi-bin/test.cgi'.

vectorm
26-06-2008, 16:46
Я уже и так пробывал, но результат меняется не в лучшую сторону
Лог коробочки

Jun 26 18:21:03 thttpd[1897]: bind 0.0.0.0 - Address already in use
Jun 26 18:21:04 thttpd[1897]: thttpd/2.25b PHP/5.2.6 starting on port 81
Jun 26 18:21:04 thttpd[1897]: started as root without requesting chroot(), warning only
Jun 26 18:21:06 thttpd[1897]: spawned CGI process 1898 for file 'cgi-bin/test.cgi'
Jun 26 18:21:06 syslog: execve cgi-bin/test.cgi - No such file or directory
Jun 26 18:21:19 thttpd[1897]: spawned CGI process 1900 for file 'cgi-bin/hello.cgi'
Jun 26 18:21:28 thttpd[1897]: spawned CGI process 1902 for file 'cgi-bin/hello.cgi'
Jun 26 18:21:34 thttpd[1897]: spawned CGI process 1904 for file 'cgi-bin/vnstat.cgi'
Jun 26 18:21:34 syslog: execve cgi-bin/vnstat.cgi - No such file or directory

Ошибка скрипта

500 Internal Error
There was an unusual problem serving the requested URL '/cgi-bin/test.cgi'.
Попробовать chmod 777 на каталог дать, что изменится?

Break Action
26-06-2008, 16:51
Ничего не дало.

vectorm
26-06-2008, 17:05
Ничего не дало.
Судя по ошибкам - сервер не видит файлов, т.е. либо прав не хватает, либо файлы не там где он их ищет.
Вот тут (http://www.acme.com/software/thttpd/thttpd_man.html) мануал по серверу. Может попробовать с опциями запускать, например с "-c"

serkup
12-03-2009, 14:02
Коллеги! Кто подскажет? где порыть?
сайт на thttpd. Был на порту 81. Работал нормально. Перекинул его на 80, вэб-админку убрал на 81. Сайт стал тормозить-картинки грузятся долго и не все.

more /tmp/filter_rules
-A INPUT -p tcp -m tcp -d 192.168.13.100 --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp -d 192.168.13.100 --dport 81 -j ACCEPT
more /tmp/nat_rules
-A VSERVER -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.13.100:81
-A VSERVER -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.13.100:80

192.168.13.100 это внутренний адрес ASUS

Спасибо.

al37919
12-03-2009, 14:18
могу отметить только, что это:

-A VSERVER -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.13.100:80
не нужно вообще. А почему может тормозить --- не знаю. Если из локалки тоже тормозит, то скорее проблема в самом thttpd

serkup
12-03-2009, 14:34
могу отметить только, что это:

-A VSERVER -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.13.100:80
не нужно вообще. А почему может тормозить --- не знаю. Если из локалки тоже тормозит, то скорее проблема в самом thttpd

Неправда Ваша. Убрал и не работает из инета:mad:
Может надо добавлять это (разрешить по 80 порту input для интрефейса ppp0)
не знаю как обозвать его тогда

vectorm
13-03-2009, 16:39
Вы помониторьте активность на порту, вероятно, пока сервер был на 81 порту, всякие боты спаммерские/вирусные не ломились, ибо порт нестандартный, а переведя на 80 порт открыли веб сервер этим вредителям, вот они и долбятся.
Если торренты не пользуете, то сравните трафик до и после перевода на 80 порт - если есть значительный прирост - значит ломятся.

serkup
16-03-2009, 05:29
Спасибо, парни! Торрента нет. На внешнем интерфейсе трафик небольшой. Из локальной сети все летает. Так что дело, похоже, не в thttpd. Может быть нат тормозит ?
А как повесить thttpd на интерфейс ppp0 не знаю.
Подскажете ?
Провайдер -Корбина- интернет через l2tp
Еще раз спасибо.:)