The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Каталог Программ: Apache::ASP - Active Server Pages port to ..."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Разговоры, обсуждение новостей (Public)
Изначальное сообщение [ Отслеживать ]

"Каталог Программ: Apache::ASP - Active Server Pages port to ..."  
Сообщение от auto_prog (??) on 17-Дек-08, 20:04 
Модуль реализующий поддержку возможности исполнения ASP скриптов под web-сервером apache. В качестве интегрируемого в HTML языке выступает Perl.
Кроме того присутствует библиотека XML тэгов и подсистема рендиренга XSLT, а также расширенное ASP API.

URL: http://www.apache-asp.org/
Обсуждается: https://www.opennet.ru/prog/info/2562.shtml

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Apache::ASP - Active Server Pages port to the Apache Web Ser..."  
Сообщение от VA email(??) on 17-Дек-08, 20:04 
На тот случай, если кто-то решить установить эту хрень под виндой.
Хотелось бы поделиться своим опытом, хотя признаться, это занятие не для слобонервных.
Я просто за$%бался в достижении успеха. Поэтому публикуюсь здесь.

Итак

1. Я поставил Apache 2.2. Для этого лезете в
http://archive.apache.org/dist/httpd/binaries/win32/
выбираете версию которая по душе и ставите привычным для виндовщиков способок попросту запустив *.msi файл.

После чего проверяете, что Apache работает заглянув в систему управления сервисами в контрольной панели. Если не работает, лезем в файл устан_директория_апача/logs/ и смотрим почему в файле errors.log.

Тут у меня проблем не было. Хотя если у Вас на 80 порту весит IIS то нужно поменять порт в файле httpd.conf апача поменяв циферку 80
на скажем 8080 и перезапустить апачу.

2. Уже должен быть установлен Active Perl. Если нет, то лезем на

http://www.activestate.com/Products/activeperl/index.mhtml и ставим его оттуда.

3. Далее запускаем ppm install mod_perl и згружаем готово-запряженный mod_perl отвечая на вопрос утилиты
о пути размещения Apache. Здесь тоже проблем нет. После этого в директории modules апачи должен засветиться файл
mod_perl.so.

Снова таки лезем httpd.conf и вводим

LoadFile "c:/perl/bin/perlXX.dll"
LoadModule perl_module modules/mod_perl.so

где XX это версия установленного у вас Active Perl.

После чего очередной раз перезапускаем апачу и удостоверяемся, что апача нашла все файлы
и не плюется.

4. Теперь наступает самый трогательный момент. Ставим Apache-ASP командой

ppm install Apache-ASP

и ждем окончания интимного процесса внедрения модулей. И ... после этого казалось бы
счастье должно наступить, но бляха муха не тут то было. Нужно добавить еще кое-какой сироп к
файлу httpd.conf, а именно фрагмент

PerlModule Apache::ASP
<Files ~ (\.asp)>
   SetHandler perl-script
   PerlHandler Apache::ASP
   PerlSetVar Global .
   PerlSetVar StateDir C:/tmp/asp
</Files>

затем, не забудьте создать директорию C:/tmp/ на жестком диске, иначе не видать вам счастья :))

Далее раскоментариваем или вставляем строку AddHandler и делаем ее AddHandler cgi-script .cgi .pl. Теперь Ваши перловские модули будут для апача как родные.

Теперь добавляем файл index.asp к DirectoryIndex строчке в том же файле и учим апачу любить
asp технологию от мелкомягких.Строчка будет выглядеть как DirectoryIndex index.html index.asp или что-нибудь в этом духе.

Теперь еще раз перезагружаем апачу и проверяем логи на неругаемость.

5. Копируем тестовую примочку типа


<html>
<head>
<title>
</title>
</head>
<body>
<%
   $Response->Write("Congratulations, you have successfully installed Apache::ASP");
%>
</body>
</html>

в ваш корень с веб страницами, файл типа test.asp и тестируем строкой вызова http://localhost/test.asp.

Авторы модулей клянутся, что после этой длительной мастурбацией с установкой вы должны получить на экране сакраментальную строку: Congratulations, you have successfully installed Apache::ASP

и ..... всееееееее, а ? поверили, поверили что это так легко установить апачу с мод_перлой и Вы получите
полную свободу использования ASP технологии с Perl ... вот так вот запросто пропарившись все навсего несколько часов?

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

Скорее всего на экране появится мерзкая ошибка типа Error 500 говорящая, что что-то где-то накрылось, а в логе
ошибок апачи Вы прочтете вот такую бяку:

ASP error: Can't locate object method "get" via package "APR::Table"

После чего Ваши лапы и хвост скорее всего отвиснут, а может быть просто отвалятся. Однако... не падайте духом.
Это в точности то, ради чего я сел писать эту статейку. Теперь наступает самый трогательный момент. Чтобы отфиксить эту бяку,
Вы лезете в файл с:/perl/site/lib/Apache.pm, находите в строке 65-71 фрагмент кода

if($ENV{MOD_PERL}) {
   $ModPerl2 = ($mod_perl::VERSION >= 1.99);
   if($ModPerl2) {
       eval "use Apache::ASP::ApacheCommon ();";
       die($@) if $@;
   }
   }
  
и заменяете на не менее понятный фрагмент кода

  if($ENV{MOD_PERL}) {
   $ModPerl2 = ($mod_perl::VERSION >= 1.99);
   my $ver = $mod_perl::VERSION;
   if ($ver eq "") { $ver = $ENV{MOD_PERL_API_VERSION}; }
   $ModPerl2 = ($ver >= 1.99);
   if($ModPerl2) {
       eval "use Apache::ASP::ApacheCommon ();";
       die($@) if $@;
   }
   }
  
После чего снова перегружаете апачу и наконец то получаете при тесте
фразу Congratulations, you have successfully installed Apache::ASP.

Просто еб#@$нуться. Создатели этих модулей имели действительно черное,
черное чувство юмора и не включили этот патч в дистрибьюцию 10 лет назад.
Вот такие дела. Успехов всем в нелегком деле освоения Perl под виндой.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру