LINUX.ORG.RU
решено ФорумTalks

[хочу очень странного] мини-недо-консольный-недемоноидный вебсервер


0

1

Не в техразделы, потому что возможно это бред и вообще невозможно. Если ошибся прошу перенести.

Как мы тестируем php-скрипты, не принимающие GET, или POST запросы? При помощи php-cli. А что мы делаем чтобы протестировать php-шный (или любой другой) скрипт, которому параметры должны передаваться в виде GET-запроса? Ложим его в докрут вебсервера и открываем в браузере, либо тянем wget'ом. Но хотелось бы чего-то более простого и быстрого, чем апач2, висящий у меня на локалхосте только для отладки скриптов в условиях отсутствия инета. Какая-нибудь программа, которая принимает в качестве параметров хттп-заголовки и имя файла, и возвращает ответ, причем чтоб умело работать с пыхом и перлом. Что-то типа такого:

$ cat scriptname.php
<?php echo "<html><body>a = ".$_GET['a']."<br>b = ".$_GET['b']."</body></html>"; ?> 
$ progname --method get --host dev.site.com --user-agent "Shitzilla" ./scriptname.php?a=1&b=2
Response code: HTTP/1.0 200 OK
Server: progname
Content-Type: text/html; charset=utf-8
Content-Length: 40
...И другие возможные заголовки...


<html><body>a =1 <br>b = 2</body></html>

Есть что-то подобное?

★☆☆☆

lighttpd

Но хотелось бы чего-то более простого и быстрого, чем апач2, висящий у меня на локалхосте только для отладки скриптов в условиях отсутствия инета.

wfrr ★★☆
()
Ответ на: lighttpd от wfrr

> lighttpd

недемоноидный

недемоноидный


недемоноидный



Мне не нужен демон.

drull ★☆☆☆
() автор топика

> висящий у меня на локалхосте только для отладки скриптов в условиях отсутствия инета.

ты джедай, и отладчик не используешь?

stevejobs ★★★★☆
()
Ответ на: комментарий от drull

> Пишу в виме.

попробуй Zend Studio, или только что вышедший PHP Storm :)

Чем заниматься всякой мутотенью, создавая недемоноидные серверы и вручную читая заголовки - проще поставить в коде скрипта breakpoint, и когда скрипт на нем остановится - с помощью нормального графического интерфейса, просто и удобно посмотреть любые необходимые тебе данные.

stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

> попробуй Zend Studio

нормального графического интерфейса


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

drull ★☆☆☆
() автор топика
Ответ на: комментарий от drull

> Я не вебдев и обычно вима мне вполне хватает.

понял, заткнулся.

а перезаливать через свн после каждого изменения с целью проверить как оно заработало - геморрой.


для этого есть remote folders =) В IDE выглядит как локальная папка, а на самом деле - соединение по ftp, или еще чему-нибудь такому.

stevejobs ★★★★☆
()
Ответ на: комментарий от wfrr

> lighttpd -D

Я возможно немного непонятно выразился. Мне вообще не надо чтоб он биндился к порту.

drull ★☆☆☆
() автор топика
Ответ на: комментарий от stevejobs

> для этого есть remote folders =)

В IDE


Спасибо, буду знать. Только почему мне не нужно IDE я написал чуть выше. Да ко всему прочему я немного консервативен в этом плане, и редко пользуюсь для работы графическими инструментами. Единственное исключение - браузер.

drull ★☆☆☆
() автор топика
Ответ на: комментарий от true_admin

> а в чём проблема с биндингом к порту?

Потому что очень вероятно что этот порт будет уже чем-то занят. Конечно можно повесить на другой, но зачем, если можно принять имя файла и хедеры в качестве параметров?

drull ★☆☆☆
() автор топика
Ответ на: комментарий от drull

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

ну, например, пишешь ты какой-нибудь алгоритм, генерирующий кучу промежуточных вычислений и структур данных. Генерирует-то генерирует, но неправильно. Задача: найти тот момент, где всё пошло наперекосяк. Вот тут как раз больше подойдет отладчик.

однажды я отлаживал модуль платежной системы в самописной CMS, и начальник заставил меня делать это с помощью логов. В результате, в код надо было вставлять echo между почти всеми строчками кода. (иначе начальник не асиливал понять, как работает логирование). С тех пор на отладку с помощью лога у меня жестокая аллергия.

stevejobs ★★★★☆
()
Ответ на: комментарий от true_admin

> sshfs/ftpfs/nfs/etc.

на пыховых шаредхостингах часто даже ssh нет, не то что эээ nfs по интернету =)

Да чо там, кое-где на дешевых тарифных планах даже ftp нет, только заливка файлов через веб-интерфейс.

stevejobs ★★★★☆
()
Ответ на: комментарий от drull

Конечно можно повесить на другой

конечно на другой, и забиндить на локалхост.

если можно принять имя файла и хедеры в качестве параметров?

не слышал о таких вебсерверах. Вебсервер это то что торчит наружу. Если тебе нужны средства отладки то я бы поискал другие способы. Ты просишь костыль, надо копать в другом направлении.

<troll> а вот в django всё это делается элементарно, есть даже эмуляция браузера :) </troll>

true_admin ★★★★★
()
Ответ на: комментарий от stevejobs

даже ftp нет

как тут remote folders помогут? :)

(тут я должен был похвастаться что у меня есть свой сервер который почти 6лет служит верой и правдой, но он только что сдох :()

true_admin ★★★★★
()
Ответ на: комментарий от stevejobs

> однажды я отлаживал модуль платежной системы в самописной CMS

С тех пор на отладку с помощью лога у меня жестокая аллергия.


Для каждой задачи - свои инструменты. Когда/если буду заниматься разработкой крупных вебпроектов, буду использовать что-то по-серьезнее простого текстового редактора.

drull ★☆☆☆
() автор топика
Ответ на: комментарий от true_admin

> <troll> а вот в django всё это делается элементарно, есть даже эмуляция браузера :) </troll>

в Симфонии, наверное, тоже уже есть =)

stevejobs ★★★★☆
()
Ответ на: комментарий от sergej

PS: geben, xdebug. возможно тебе хватит xdebug-а. Там есть cli.

sergej ★★★★★
()
Ответ на: комментарий от sergej

> Ладно, возьми на время емакс. Там есть отладчик пхп.

А еще там есть файловый менеджер, браузер, клиент для mpd и гугл-мапс :D Чего там только нет?

drull ★☆☆☆
() автор топика
Ответ на: комментарий от drull

> Чего там только нет?

психоаналитика на русском языке :(

stevejobs ★★★★☆
()
Ответ на: комментарий от true_admin

> Ты просишь костыль, надо копать в другом направлении.

Как я уже написал:

возможно это бред и вообще невозможно

drull ★☆☆☆
() автор топика

> причем чтоб умело работать с пыхом и перлом

netcat обиделся

n01r ★★
()
Ответ на: комментарий от stevejobs

>С тех пор на отладку с помощью лога у меня жестокая аллергия.

А у меня жестокая аллергия на отладчик (по аналогичной причине), это строго индивидуально. Впрочем, встречаются ситуации, когда действительно лучше с отладчиком.

lodin ★★★★
()

>А что мы делаем чтобы протестировать php-шный (или любой другой) скрипт, которому параметры должны передаваться в виде GET-запроса?

перловый я могу запустить из консольки, добавляя параметрами param1=value1 param2=value2 etc.

iSage ★★★★
()
Ответ на: комментарий от iSage

> перловый я могу запустить из консольки, добавляя параметрами param1=value1

Ну да. Основная проблема с пыхом.

drull ★☆☆☆
() автор топика
Ответ на: комментарий от stevejobs

>в Симфонии, наверное, тоже уже есть =)

Точно есть.

З.Ы. Проприетарное поделие Зенд Студио не нужно, Eclipse PDT наше все

goingUp ★★★★★
()

Не поверишь, но есть такая программа. Называется PHP:

~% cat scriptname.php 
<?php echo "<html><body>a = ".$_POST['a']."<br>b = ".$_GET['b']."</body></html>"; ?> 
~% echo a=123 | QUERY_STRING='b=456' CONTENT_LENGTH=5 CONTENT_TYPE="application/x-www-form-urlencoded" REQUEST_METHOD=POST PATH_TRANSLATED=scriptname.php php-cgi ./scriptname.php 
X-Powered-By: PHP/5.2.11-pl1-gentoo
Content-type: text/html

<html><body>a = 123<br>b = 456</body></html> 
kmeaw ★★★
()
Ответ на: комментарий от kmeaw

> ~% echo a=123 | QUERY_STRING='b=456' CONTENT_LENGTH=5 CONTENT_TYPE=«application/x-www-form-urlencoded» REQUEST_METHOD=POST PATH_TRANSLATED=scriptname.php php-cgi ./scriptname.php

Не знал что так можно делать. Спасибо огромное, это то что нужно.

drull ★☆☆☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.