Генерируйте HTML с модулем CGI.pm
375
Angel
Я установил apache2 на сервере fedora и хочу сгенерировать HTML с помощью perl-скрипта. Это мой тестовый скрипт, который я сделал с помощью perldoc:
#!/usr/bin/perl use strict; use warnings; use CGI; my $cgi = CGI->new; print $cgi->header, $cgi->start_html('works'), $cgi->h1('hello '), $cgi->end_html;
Он возвращает «Внутренняя ошибка сервера», но когда я запускаю его в терминале с perl test.cgi
, он выглядит нормально. Я поместил его в / cgi-bin dir, остальные скрипты работают без проблем.
РЕДАКТИРОВАТЬ
Я уже пробовал с однострочными задачами, как, system("date")
и он возвращает дату в браузере. Также проверены разрешения на ошибки.
Работает при генерации со следующим фрагментом кода.
print "Content-type:text/html\r\n\r\n"; print '<html>'; print '<head>'; print '<title>Some Title</title>'; print '</head>'; print '<body>'; print '<h2>Hello </h2>'; print '</body>'; print '</html>';
Журнал ошибок :
[Wed Aug 01 20:16:19.108179 2018] [cgid:error] [pid 3781:tid 140519697967360] (8)Exec format error: AH01241: exec of '/var/www/cgi-bin/test.cgi' failed [Wed Aug 01 20:16:19.108863 2018] [cgid:error] [pid 1112:tid 140518772139776] [client 192.168.0.105:46870] End of script output before headers: test.cgi
РЕШЕНИЕ Я думаю, что одна из проблем была, вероятно, HTML :: Entities установил его, затем он работал
Насколько вы уверены, что сообщение об ошибке, которое вы видите, исходит от этого модуля? «Ошибка сервера» больше напоминает то, что исходит от Apache. Можете ли вы создать простой сценарий оболочки, который выполняет ту же самую простую задачу «hello world», что и ваш Perl-скрипт, поменять его местами и посмотреть, что произойдет? Возможно, проблема в способе вызова этого Perl-скрипта. Пожалуйста, не отвечайте в комментариях; [отредактируйте] ваш вопрос, чтобы сделать его более понятным и полным.
Scott 6 лет назад
0
Какая ошибка выдается в журнале ошибок Apache?
Toto 6 лет назад
1
Вы можете попытаться добавить `$ | ++` непосредственно перед первым `print`. См .: http://perldoc.perl.org/perlfaq5.html#How-do-I-flush/unbuffer-an-output-filehandle%3F-Why-must-I-do-this%3F
Toto 6 лет назад
0
Почему это приостановлено? Кажется, это проблема конфигурации веб-сервера, а не программная ошибка. Не разрешены ли вопросы о конфигурации?
shawnhcorey 6 лет назад
0
@shawnhcorey [оригинальная редакция этого вопроса] (https://superuser.com/revisions/1345213/1) не указала, что это может быть проблемой конфигурации, и выглядела как проблемный код. Он прошел [через обзор] (https://superuser.com/review/reopen/777602) после редактирования, но, по-видимому, он не был достаточно улучшен до того, как оставил отзыв, было несколько изменений, которые привели к «проблеме конфигурации» только появился довольно поздно в процессе. Никто больше не думал, что стоит отдать какие-либо вновь открытые голоса, как только он достигнет своего нынешнего состояния.
Mokubai 6 лет назад
1
0 ответов на вопрос
Похожие вопросы
-
4
Требуется хороший бесплатный образ Ubuntu Server VMWare
-
2
Как мне установить iTunes под Wine?
-
4
Бесплатный HTML-редактор изображений для Windows?
-
-
3
Как заставить Firefox запомнить размер его окна?
-
9
Как отправить электронное письмо в виде обычного текста, а не HTML в моем почтовом клиенте?
-
1
Скрипт Perl, работающий от имени root, не может выполнять действия root
-
1
Почему я получаю медленную пропускную способность сети, когда у меня плохой DNS-сервер?
-
2
Почему мой путь не обновляется * сейчас *?
-
1
Обратный прокси Apache
-
7
Как вы отслеживаете, какие пакеты были установлены в Fedora (Linux)?