2016-11-17 9 views
0

У меня есть Perl-скрипт в/вар/CGI-BIN каталога, который выполняется обычно с URL:Perl/CGI скрипт не найден Ошибка 404 apache2

локальный/CGI-BIN/filename.pl

но когда я вызываю тот же файл через html-файл, сервер loaclhost возвращает 404 не найденную ошибку.

код: HTML файл:

<?xml version="1.0"encoding="utf-8"?> 
<html> 
      <head> 
          <title>light bulbsr form</title> 
      </head> 
      <body> 

<form action="/cgi-bin/bulbs.pl" method="POST"> 

user name<input type="text" name="myname" size="30"/><br> 

select the items:<br> 

<input type="checkbox" name="b" value="2.39" /> four100 watt light bulbs </br> 
<input type="checkbox" name="b" value="4.29"> eight 100 watt light bulbs </br> 
<input type="checkbox" name="b" value="3.95"> four 100 watt long life bulbs </br> 
<input type="checkbox" name="b" value="7.49"> eight100 watt long life bulbs </br> 

Select the mode of the payment:</br> 

<input type ="radio" name="paymode" value="visa" checked="checked"/>Visa<br> 
<input type ="radio" name="paymode" value="Master card"/>Master card<br> 
<input type ="radio" name="paymode" value="Discover"/>Discover<br> 

          <input type="submit" value="submit order"/> 
          <input type="reset" value="Clear the form"/> 
      </body> 
</html> 

Perl файл:

#!/usr/bin/perl 
use CGI qw(:standard); 
use strict; 


print header(),start_html ("Bill "); 
print p("The total cost:0");br(); 
print end_html; 

запускающего apache2 000-default.conf:

<VirtualHost *:80> 
ServerAdmin [email protected] 
DocumentRoot /var/www/html 
ScriptAlias /cgi-bin/ /var/cgi-bin/ 
    <Directory "/var/cgi-bin/"> 
      AllowOverride None 
      Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch 
      Require all granted 
    </Directory> 
ErrorLog ${APACHE_LOG_DIR}/error.log 
CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost> 
+0

Каков URL-адрес документа HTML? Вероятно, вам нужно 'cgi-bin/filename.pl' или'/cgi-bin/filename.pl', потому что ваш HTML-файл не находится в каталоге 'cgi-bin'. – simbabque

+1

Надеюсь, это учебное упражнение. Вы не собираетесь забирать номера кредитных карт, не так ли? – simbabque

+0

Да, это учебное упражнение. Помощь Plz !! –

ответ

0

Ваша форма действия «filename.pl ». Это означает, что веб-сервер будет искать «filename.pl» в том же каталоге, что и HTML-страница, содержащая форму. И это не то, где это. Вероятно, вам нужен полный путь.

<form action="/cgi-bin/filename.pl"> 
+0

, все еще показывающий ту же ошибку 404 –

+0

Пожалуйста, отредактируйте ваш вопрос] (http://stackoverflow.com/posts/40654525/edit), чтобы включить более подробную информацию. Где HTML-страница, которая включает эту форму? Где находится ваш каталог CGI? Какие ошибки вы получаете в журнале ошибок веб-сервера? –

+0

error.log не регистрирует файл не найден –

 Смежные вопросы

  • Нет связанных вопросов^_^