Qu'est-ce “la Fin de la sortie de script avant les en-têtes”?
Je suis en train de faire un simple test avec PERL. J'ai écrit input.html et le mettre dans le hdocs dossier et de sortie.cgi dans le répertoire cgi-bin. Les deux sont dans XAMPP dossier, à l'aide d'un mac. C'est à l'aide d'apache trop.
Fichier HTML
<!doctype html>
<html lang="en">
<body>
<form action="/cgi-bin/output.cgi" method="post">
Enter Fahrenheit: <input type="text" name="fahrenheit" /><br />
Enter Distance in Miles: <input type="text" name="distance" /><br />
<input type="submit" value="Convert!" />
</form>
Voici le fichier CGI qui est censé afficher lorsque l'utilisateur appuie sur "Convertir"
#!/usr/bin/perl -w
use strict;
use warnings;
use CGI qw(:standard);
use CGI::Carp qw(fatalsToBrowser);
print "Content-type: text/html\n\n";
#### read form data
my $fahrenheit = param('fahrenheit');
my $distance = param('distance');
#### do the math
my $celcius = ($fahrenheit * 18.8) + 32;
my $kilometers = $distance * 1.60934;
#### display results
print "<h2>Assignment 3</h2>";
print "Conversion: <br />";
printf "Celcius: $%.2f <br />", $celcius;
printf "Kilometers: $%.2f <br />", $kilometers;
C'est le Journal d'Erreur d'Apache
Marker - Oct 15, 2016, 5:56:38 PM
[Sat Oct 15 17:56:41.765457 2016] [cgi:error] [pid 3086] [client ::1:50144] AH01215: (13)Permission denied: exec of '/Applications/XAMPP/xamppfiles/cgi-bin/output.cgi' failed: /Applications/XAMPP/xamppfiles/cgi-bin/output.cgi, referer: http://localhost/input.html
[Sat Oct 15 17:56:41.765785 2016] [cgi:error] [pid 3086] [client ::1:50144] End of script output before headers: output.cgi, referer: http://localhost/input.html
Et c'est ce que la page ressemble à localhost où la production.cgi est censé être montrant
Server error!
The server encountered an internal error and was unable to complete your request.
Error message:
End of script output before headers: output.cgi
If you think this is a server error, please contact the webmaster.
Error 500
localhost
Apache/2.4.23 (Unix) OpenSSL/1.0.2h PHP/5.6.24 mod_perl/2.0.8-dev Perl/v5.16.3
InformationsquelleAutor JohnyB12 | 2016-10-15
Vous devez vous connecter pour publier un commentaire.
Comme le journal d'erreur dit, Apache n'a pas l'autorisation d'exécuter votre fichier CGI
Ajouter des autorisations d'exécution pour tout le monde à l'aide de
chmod a+x cgi-bin/output.cgi
et cela devrait fonctionner pour vousPar le moyen, la conversion de température doit être
Mise à jour
Votre question, c'est comme demander, "je mets la clé dans ma voiture, et je ne suis pas encore à Leicester. Qu'ai-je fait tort?"
Vous semblent incapables de spécifier le chemin d'accès à votre
output.cgi
fichier à partir de la ligne de commande. Ce n'est pas un problème: c'est une carence. Vous devez en savoir plus sur le shell que vous utilisezSi vous ne pouvez vraiment pas faire cela, alors vous êtes dans façon au-dessus de votre tête, de sorte que vous devez arrêter et de travail à travers des tutoriels
Regarder votre journal d'erreur, la sortie.cgi est à
de sorte que vous pouvez
ou
suivie par
chmod: /cgi-bin/output.cgi: No such file or directory
quand j'ai mischmod a+x /cgi-bin/output.cgi
dans le terminal/cgi-bin
répertoire ne sera pas un répertoire racine. Vous pouvez égalementcd
de l'endroit où votre fichier CGI est juste etchmod a+x output.cgi
output.cgi
est à/Applications/XAMPP/xamppfiles/cgi-bin/output.cgi
, de sorte que vous pouvezchmod a+x /Applications/XAMPP/xamppfiles/cgi-bin/output.cgi
oucd /Applications/XAMPP/xamppfiles/cgi-bin
suivie parchmod a+x output.cgi
chmod: Unable to change file mode on output.cgi: Operation not permitted
quand je fais les deux.