简体   繁体   中英

perl/cgi script not found error 404 apache2

I have a perl script in /var/cgi-bin directory which executes normally with the url:

localhost/cgi-bin/filename.pl

but when i call the same file through a html file the loaclhost server return a 404 not found error.

code: html file:

<?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 file:

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


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

the apache2 000-default.conf:

<VirtualHost *:80>
ServerAdmin webmaster@localhost
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>

Your form action is "filename.pl". That means the web server will look for "filename.pl" in the same directory as the HTML page containing the form. And that's not where it it. You probably want the full path.

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM