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 :
voici l'erreur dans les fichiers de logs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Pouvez-vous me dire comment resoudre ce probleme ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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();
Partager