[web] Passage d easyphp à serveur apache
Salut, j ai un probleme pour passer une application cgi que j ai realiser.
j ai realiser cette appli sous easyphp, (php 4.3.3, apache 1.3.27)
celle ci fonctionne tres bien.
Je passe cette application sur un serveur apache (php 4.3.9, apache 2.0.47), les fichiers sont reconnus, mais il y a une erreur :
Affichage dans le navigateur :
Code:
1 2 3 4 5 6 7 8 9
|
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, admin@anne-de-bretagne.local and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Apache/2.0.47 (Unix) PHP/4.3.9 Server at autoweb Port 80 |
voici l'erreur dans les fichiers de logs :
Code:
1 2 3 4 5 6 7 8 9 10
|
[Wed May 18 15:06:34 2005] [error] [client 10.57.10.1] File does not exist: /home/httpd/proxy/graph_proxy/favicon.ico
[Wed May 18 15:06:34 2005] [error] [client 10.57.10.1] Premature end of script headers: interface_pc_proxy.cgi, referer: http://autoweb/
[Wed May 18 15:06:34 2005] [error] [client 10.57.10.1] File does not exist: /home/httpd/proxy/graph_proxy/favicon.ico
[Wed May 18 15:06:35 2005] [error] [client 10.57.10.1] Premature end of script headers: interface_pc_proxy.cgi, referer: http://autoweb/
[Wed May 18 15:06:35 2005] [error] [client 10.57.10.1] File does not exist: /home/httpd/proxy/graph_proxy/favicon.ico
[Wed May 18 15:06:35 2005] [error] [client 10.57.10.1] Premature end of script headers: interface_pc_proxy.cgi, referer: http://autoweb/
[Wed May 18 15:06:36 2005] [error] [client 10.57.10.1] File does not exist: /home/httpd/proxy/graph_proxy/favicon.ico
[Wed May 18 15:12:47 2005] [error] [client 10.57.10.1] Premature end of script headers: update.cgi
[Wed May 18 15:12:47 2005] [error] [client 10.57.10.1] File does not exist: /home/httpd/proxy/graph_proxy/favicon.ico |
Pouvez-vous me dire comment resoudre ce probleme ?
le serveur est heberge sous linux donc le chemin de l'interpreteur est : #!/etc/bin/perl (de memoire) L'erreur vient elle de la ?
Je ne trouve pas de solution, merci de me filer un coup de main !
ps voici les sources (version hebergee sous easyphp):
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
#!C:\utilitaires web\EasyPHP1-7\cgi-bin\perl\Perl\bin\perl.exe
#autheur : Pierre Olier
#version : 1.5
#description : affiche la salle informatique et creer une interface de modification du fichier de config pour
# permettre ou interdire une connection internet a un pc.
use strict;
use CGI;
my $cgi = new CGI;
use CGI::Carp qw(fatalsToBrowser);
#Ce script necessite cgi-lib.pl pour l affichage simple du code html
require "cgi-lib.pl";
#Ce script necessite read_pc.pl : fonction qui renvoi l etat du pc.
require "read_pc.pl";
#on envoi une entete html pour faire comprendre au navigateur le type de fichier a afficher
print $cgi->header(),
#start_html permet de donner un titre et de specifier un style a la page
$cgi->start_html( -title=>'graphisme proxy', -style=>{src=>'../style/style.css'});
#on utilise un boucle for pour parcourir tous les pcs.
print '<div id="salle">';
for my $i (1..17) {
#pour chaque pc on fait :
#recuperation de l etat du pc (allow, deny)
my $etat = &read_pc("poste$i");
#deux interpretation possible car deux etats possible
if ( $etat =~ /allow|deny/ ) {
#si l etat est allow alors etat = allow
#sinon etat = deny
my $perm = ( $etat eq "allow" ) ? "deny" : "allow";
#on affiche le lien : pc$i : numero du pc, si le pc est en etat allow alors etat=allow, perm=deny, ce qui lors du clic autorisera le net
#sinon on fait l inverse
print $cgi->a({-id => "pc${i}_${etat}", -href => "../../cgi-bin/update.cgi?pc=poste${i}&perm=${perm}&chang=${etat}"},"PC $i");
}
}
print '</div>';
#on continue le code html :
#on affiche un div pour mettre ce qui suit sur le cote en legend de la classe
print '<div id="lgd">';
#on affiche la legende
print
#h1 : met le titre de la page
$cgi->h1('Salle informatique'),
$cgi->h2('Accès INTERNET'),
$cgi->p('Cliquez sur un PC pour modifier sa connection internet.'),
$cgi->p('Si le PC a une connection internet, il est en rouge.'),
$cgi->p('Si le PC n\'a pas de connection internet, il est en gris.');
#on ferme le div
print '</div>';
#on ferme la page
print $cgi->end_html(); |