Apache не запускает cgi скрипты, Gekt0r, 16-Апр-07, 12:40 [смотреть все]Всем привет, я копаюсь с 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
|
- Apache не запускает cgi скрипты, A, 12:46 , 16-Апр-07 (1)
- Apache не запускает cgi скрипты, Gekt0r, 12:57 , 16-Апр-07 (2)
>Видимо надо написать не >ScriptAlias /cgi/bin "usr/local/www/apache22/cgi-bin >а >ScriptAlias /cgi-bin /usr/local/www/apache22/cgi-bin >а лучшe >ScriptAlias /cgi-bin/ /usr/local/www/apache22/cgi-bin/ подправил, ничего не изменилось. При попытке обратиться в браузере к каталогу /cgi-bin/ напрямую, выскакивает ошибка forbidden, хоть право доступа на чтение я выставил. При попытке доступа к cgi-bin/printenv - not found
- Apache не запускает cgi скрипты, A, 13:06 , 16-Апр-07 (3)
- Apache не запускает cgi скрипты, Gekt0r, 13:20 , 16-Апр-07 (4)
>>>Видимо надо написать не >>>ScriptAlias /cgi/bin "usr/local/www/apache22/cgi-bin >>>а >>>ScriptAlias /cgi-bin /usr/local/www/apache22/cgi-bin >>>а лучшe >>>ScriptAlias /cgi-bin/ /usr/local/www/apache22/cgi-bin/ >> >> >>подправил, ничего не изменилось. При попытке обратиться в браузере к каталогу /cgi-bin/ >>напрямую, выскакивает ошибка forbidden, хоть право доступа на чтение я выставил. >>При попытке доступа к cgi-bin/printenv - not found > >forbidden -- это правильно >а not found это и значит нот фаунд: либо скрипт лежит не >в /usr/local/www/apache22/cgi-bin/, либо разывается иначе. вы уверены, что он называется cgi-bin/printenv? >может cgi-bin/printenv.cgi? Абсоютно точно - printenv. Из командной строки запускается нормально. Повторюсь, в error-логах сервера при попытке доступа к нему появляется запись: 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
- Apache не запускает cgi скрипты, exn, 17:00 , 16-Апр-07 (5)
- Apache не запускает cgi скрипты, A, 17:30 , 16-Апр-07 (6)
- Apache не запускает cgi скрипты, Gekt0r, 19:00 , 16-Апр-07 (7)
>>>>>Видимо надо написать не >>>>>ScriptAlias /cgi/bin "usr/local/www/apache22/cgi-bin >>>>>а >>>>>ScriptAlias /cgi-bin /usr/local/www/apache22/cgi-bin >>>>>а лучшe >>>>>ScriptAlias /cgi-bin/ /usr/local/www/apache22/cgi-bin/ >>>> >>>> >>>>подправил, ничего не изменилось. При попытке обратиться в браузере к каталогу /cgi-bin/ >>>>напрямую, выскакивает ошибка forbidden, хоть право доступа на чтение я выставил. >>>>При попытке доступа к cgi-bin/printenv - not found >>> >>>forbidden -- это правильно >>>а not found это и значит нот фаунд: либо скрипт лежит не >>>в /usr/local/www/apache22/cgi-bin/, либо разывается иначе. вы уверены, что он называется cgi-bin/printenv? >>>может cgi-bin/printenv.cgi? >> >>Абсоютно точно - printenv. Из командной строки запускается нормально. Повторюсь, в error-логах >>сервера при попытке доступа к нему появляется запись: >>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 > >Так у вас там Mason? можут у вас ещё и mod_perl включен? >вы уж рассказывайте доконца :-) Да, у меня Apache с mod_perl и HTML::Mason. Вот весь рассказ)
- Apache не запускает cgi скрипты, Gekt0r, 13:30 , 24-Апр-07 (9)
>Всем привет, я копаюсь с 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?
|