«Парсер» студии Лебедева и thttpd
Сегодня потратил часть дня, чтобы выяснить, что Парсер не заработает с thttpd.
Вообще, мне очень нравится
У меня Ubuntu 10.04, поэтому я всё поставил из пакетов, Парсер в том числе, пакет неофициальный, я его нашёл в разделе прислали пользователи.
После того как я всё настроил, ничего не заработало. Отладка через strace быстро показала, что Парсер падает. Я его перекомпилировал. Если будете перекомпилировать, вот мой рецепт.
Я поставил следующие пакеты (легко допускаю, что
В каталог
CPPFLAGS='-I/opt/pcre-8.12 -I/opt/pcre/include/' \
./configure --prefix=/opt/parser3/ --with-shared-gc --with-static-pcre=/opt/pcre
make
sudo make installПосле того как я стал пользоваться собранным мною Парсером,
Тут я догадался (поскольку в консоли не видел
Я создал небольшой
if(cgi) {
// few absolute obligatory
const char* path_info=getenv("PATH_INFO");
if(!path_info)
SAPI::die("CGI: illegal call (missing PATH_INFO)");
const char* script_name=getenv("SCRIPT_NAME");
if(!script_name)
SAPI::die("CGI: illegal call (missing SCRIPT_NAME)");
// … ещё много кода …
}При помощи CGI, написанного на bash, я выгрузил все переменные окружения, которые предоставляет thttpd (у меня версия 2.25b), оказалось, что двух последних переменных в дампе нет. Причём в интернете эта проблема уже поднималась (правда без связи с Парсером) и была успешна разрешена авторами thttpd. Наверное в последней версии
Добавлено: я
Добавлено ещё позже: так, по коду выходит следующее: если
При этом
Чтобы понимать:
http://example.org/cgi-bin/test.cgi — формируется SCRIPT_NAME, но не PATH_INFO и PATH_TRANSLATED
http://example.org/cgi-bin/test.cgi/ — формируется PATH_INFO и PATH_TRANSLATED, но не SCRIPT_NAMEИ ещё позднее: попробовал
«Парсер» студии Лебедева и nginx
Смог запустить Парсер на nginx. Поставил
server {
listen 80;
server_name parser.internal;
set $root /var/www/parser;
root $root;
location ~ \.(p|cgi)$ {
include fastcgi_params;
fastcgi_pass unix:/var/www/cgiwrap-dispatch.sock;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param PATH_TRANSLATED $root$fastcgi_script_name;
fastcgi_param SCRIPT_FILENAME $root$fastcgi_script_name;
}
}SimpleCGI после запуска создаёт файловый сокет
Причём, что интересно, с SimpleCGI спокойно работает и Парсер из пакета, на который я жаловался, что он падает
Добавлено позже: если нужно указать путь до auto.p, то можно добавить «fastcgi_param CGI_PARSER_CONFIG путь/до/auto.p».
Заведения в Симферополе




Я третий раз в Симферополе и он мне нравится всё больше и больше. Говорят на окраинах тут всё очень печально, зато в центре очень хорошо. Для такого небольшого города количество заведений где можно вкусно и приятно поесть довольно приличное.
Утром завтракали в «Горьком» — ресторанчике, посвящённом литературе и Горькому, интерьер заставлен советскими ещё книгами, стилизация отлично выдержана. Счёт приносят внутри книги (есть на снимках).
Прекрасно осознаю, кстати, где таятся недостатки города, но я там не бываю, к чему мне? Я же тут не живу, буду радоваться тому, что турист.
Выяснил сколько примерно стоит квартира. Однокомнатные продаются примерно за $36—50K, причём зависимость чуть не чёткая — метр стоит около $1K. Жаль, что не сходил в краеведческий музей, если приеду ещё раз, надо будет посетить.
Завтра уже улетаем, в середине дня.