>Всем привет, я копаюсь с apache и cgi программированием, на перле. >Возник ламерский вопрос, на который, однако, я не нашел ответа в сети: >у меня не запускаются мои cgi приложения. Так, к примеру, в >моем файле index.html создаю форму, которая отсылает данные скрипту в этом >же каталоге. Захожу через браузер, заполняю форму, жму enter, и на >экране появляется мой cgi скрипт, в текстовом виде. То есть браузер >просто его выводит на экран, а не запускает. > >И еще вопрос. Я пробовал размещать скрипты в каталоге cgi-bin, но в >браузере вываливается ошибка 404 Not Found. В файле httpd.conf есть строка >ScriptAlias /cgi/bin "usr/local/www/apache22/cgi-bin". В логах сервера появляется запись: > > >Loading CGI at runtime. You could increase shared memory between prosesses by >preloading it in your httpd.conf or handler.pl file >[Mason] Cannot resolve file to component: /usr/local/www/apache22/cgi-bin/printenv (is file outside component root?) >at /usr/local/lib/perl5/site_perl/5.8.8/HTML/Mason/Apachehandler.pm line 853 Отчасти я разобрался. С ошибкой 404. Проблема была в том, что не был указан ComponentRoot для Mason, соответственно, файлы в каталоге cgi-bin были за пределами корневой директории, и Mason их не видел. Я добавил в httpd.conf строку PerlAddVar MasonCompRoot "main => /usr/local/www/apache22" Теперь директория с cgi-bin видна через браузер.
Однако скрипты все равно не запускаются(((( Просто в браузере выводится текст скрипта. Я добавил в httpd.conf строки AddHandler cgi-script .cgi .pl <Directory "/usr/local/www/apache22/cgi-bin". Options ExecCGI </Directory> Но это не помогло. Как заставить apache выполнять cgi?
|