IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web Perl Discussion :

[web] Passage d easyphp à serveur apache


Sujet :

Web Perl

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    mai 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2005
    Messages : 18
    Points : 8
    Points
    8
    Par défaut [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 : 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
    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
    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 : 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&egrave;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();

  2. #2
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Team & Project Manager
    Inscrit en
    janvier 2003
    Messages
    2 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Team & Project Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : janvier 2003
    Messages : 2 773
    Points : 4 172
    Points
    4 172
    Par défaut
    Euh, sauf erreur de ma part, tu fais pas une migration de ton site de Windows vers Linux (unix) ? Parce que sous Linux, tout est différent !

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    mai 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2005
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    le perl ca reste perl non ? le code ne va pas changer du tout au tout, si ? en gros qu est ce qu il y a a changer ? les chemins d'accès aux fichiers je suppose, le chemin vers l'interpreteur, mais le code en lui meme, ca reste du perl, si c'est pas le cas : il y a 2 versions de perl, le perl linux et le perl windows ??????

    tu peux m expliquer les changement a faire ?

  4. #4
    Expert confirmé
    Avatar de GLDavid
    Homme Profil pro
    Team & Project Manager
    Inscrit en
    janvier 2003
    Messages
    2 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Team & Project Manager
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : janvier 2003
    Messages : 2 773
    Points : 4 172
    Points
    4 172
    Par défaut
    Déjà quand je vois cette ligne shebang pour un script destiné à Linux, je trouve ça bizarre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #!C:\utilitaires web\EasyPHP1-7\cgi-bin\perl\Perl\bin\perl.exe
    Donc à remplacer par un bon .
    Ensuite, je vois que tu invoques d'autres fichiers Perl. Es-tu sûr de la localisation de tout ces fichiers ? Pareil pour la feuille de style.

    @++
    GLDavid
    Consultez la FAQ Perl ainsi que mes cours de Perl.
    N'oubliez pas les balises code ni le tag

    Je ne répond à aucune question technique par MP.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    mai 2005
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2005
    Messages : 18
    Points : 8
    Points
    8
    Par défaut
    ok merci, je vais avance comme ca .

    Le soucis c est donc les chemin d'acces qui ne se declare pas de la meme facon sous windows etr sous linux. ok, merci david !!!

  6. #6
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : septembre 2004
    Messages : 2 177
    Points : 3 161
    Points
    3 161
    Par défaut
    Justement, l'un des gros avantages de Perl, c'est une certaine abstraction vis-à-vis des chemins de fichiers ...

    En effet, en Perl, il est possible d'utiliser le "/" comme séparateur de répertoires, que l'on soit sous linux, ou bien sous windows.

    La seule contrainte qui diffère entre les deux systèmes est la lettre d'unité (C: par exemple), qui n'a pas d'équivalent unixoïde ...

    Par ailleurs, sous windows, il est inutile de préciser le chemin réel d'accès à l'interpréteur dans le shebang. En effet, le système a réalisé une association des fichiers .pl à l'interpréteur et se sert donc de cette association, plutôt que du chemin du shebang. Il est donc relativement confortable de toujours spécifier un shebang *n*x, puisque cela fonctionne aussi sous Windows.

    Cool, non ?

    Bonne continuation.
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [EasyPHP] Serveur Apache lancé en localhost mais page "administration" ou page "web local" d'EasyPHP blanches
    Par Melahel dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 23/12/2014, 23h15
  2. Web Service - Client C# et Serveur Apache
    Par A&Nexus dans le forum C#
    Réponses: 4
    Dernier message: 03/02/2012, 15h04
  3. Réponses: 7
    Dernier message: 30/03/2011, 08h59
  4. Publier un web service .net sur un serveur Apache
    Par Kropernic dans le forum Services Web
    Réponses: 3
    Dernier message: 16/08/2010, 13h12
  5. Réponses: 4
    Dernier message: 03/09/2009, 10h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo