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

Apache Discussion :

.jsp qui s'affiche en code source


Sujet :

Apache

  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2009
    Messages : 176
    Par défaut .jsp qui s'affiche en code source
    Bonjour,
    Apres avoir fait toute sorte de tutoriel qui n'ont pas marches dans mon cas je me tourne vers vous...
    Excusez-moi d'avance pour le manque d'accent (clavier qwerty...) Edit : quoi que avec le correcteur je peux les mettre
    Donc pour commencer les données :
    Je suis sous CentOs 5.2
    Tomcat 6 est installe (ce n'est pas moi qui l'ai fait et tout marchait bien de ce cote donc deja on peut partir du principe que ca ne vient pas de la configuration initiale de Tomcat)
    J'ai installe Apache 2.2.3 et tomcat-connectors-1.2.28.
    Apparemment tout va bien...sauf quand j'essaie d'afficher sur mon webrowser un fichier.jsp..
    A la place "d'exécuter" son contenu, il se contente d'afficher le code source.
    J'en déduis que Apache ne redirige pas bien les fichiers .jsp vers tomcat mais je ne vois pas ou est le problème...
    Je suis actuellement en stage dans une entreprise et c'est pas évident parce qu'on m'a embarque la-dedans alors que j'ai pas fait la config de tomcat (et donc que je ne m'y connait pas du tout en java et servlet), et que mon chef de projet est trop "busy" pour répondre a mes questions..
    Je me tourne donc humblement vers vous en espérant avoir une réponse.

    Peut est-il mieux que je mette des extraits de ma config :
    httpd.conf
    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
     
    Listen 80
    ...
    LoadModule jk_module modules/mod_jk.so
    ...
    JkWorkersFile "/etc/httpd/conf/workers.properties"
    JkLogFile "/etc/httpd/logs/mod_jk.log"
    JkLogLevel info
    JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
    JkMount /servlet/* ajp13
    JkMount /usr/local/tomcat/webapps/ROOT/*.jsp ajp13
    ...
    ServerAdmin root@localhost
    ServerName 127.0.0.1:80
    ..
    DocumentRoot "/usr/local/tomcat/webapps/ROOT"
    ...
    <Directory /usr/local/tomcat/webapps/ROOT>
    Options FollowSymlinks Includes
    DirectoryIndex index.jsp index.html index.html.var
    AddHandler server-parsed shtml
    Order allow,deny
    Allow from all
    </Directory>
    <Location /usr/local/tomcat/lib>
    #I'm not sure about that..
    <Limit POST>
    Order deny,allow
    Deny from all
    Allow from localhost
    Satisfy any
    </Limit>
    </Location>
    J'ai aussi cree un fichier workers.properties :
    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
     
    workers.tomcat_home=/usr/local/tomcat
    workers.java_home=/usr/java/jdk1.6.0_064
    ps=/
    ...
    worker.list=ajp12, ajp13
    ...
    worker.ajp13.port=8009
    worker.ajp13.host=localhost
    worker.ajp13.type=ajp13
    worker.ajp13.lbfactor=1
    worker.loadbalancer.type=lb
    worker.loadbalancer.balance_workers=ajp12, ajp13
    worker.inprocess.type=jni
    worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)parallel_charting.jar
    worker.inprocess.cmd_line=start
    Voila...
    J'espère avoir mis toute les informations qu'il vous faut pour m'aider, sinon n'hesitez pas a me demander.
    Merci beaucoup,
    Saita

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Y a deux choses qui ne vont pas : la valeur de DocumentRoot et surtout les JkMount. Ce qu'il se passe c'est qu'Apache ne comprend pas que tu demandes un truc à Tomcat, donc il sert ce qu'il a dans son document root qui correspond au répertoire de l'appli Tomcat et donc te renvoie le code JSP.

    Il faut donc avant tout t'assurer des valeurs des JkMount : le premier paramètre correspond au chemin qui doit déclencher Tomcat. Tu as :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    JkMount /servlet/* ajp13
    JkMount /usr/local/tomcat/webapps/ROOT/*.jsp ajp13
    ce qui signifie qu'Apache va aller interroger Tomcat uniquement si tu demandes un truc du genre http://.../servlet/xyz ou http://...//usr/local/tomcat/webapps...mportequoi.jsp. Ce n'est pas tellement ce que tu veux, j'imagine.

    Si tu veux absolument tout (mais vraiment absolument tout) renvoyer sur Tomcat, mets simplement ceci à la place de tes 2 JkMount actuels :

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2009
    Messages : 176
    Par défaut
    Merci beaucoup Mac de me prêter assistance
    Alors j'ai change le JkMount en ca :
    parce qu'il me semblait que c'etait plus ce qui correspondait a ce que je voulais faire mais..ca ne marche pas.
    Donc j'ai mis ce que tu as dit
    Mais sans succes non plus.
    Par ailleurs j'ai aussi verifier avec un script perl..Je ne sais pas si c'est lie mais meme resultat : je n'obtiens que le code source..
    Tu m'as dit que quelquechose n'allait pas avec Mon DocumentRoot, peut me dire quoi plus en detail ? Le chemin que j'ai mis correspond au dossier ou sont ranges les scripts que j'essaie d'afficher.
    Merci

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2009
    Messages : 176
    Par défaut
    Si ca peut aider quand je vais voir dans mod_jk.log j'ai ces erreurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     tail mod_jk.log
    [Thu Jul 09 11:21:31 2009][29421:2934478176] [warn] jk_map_validate_property::jk_map.c (411): The attribute 'worker.inprocess.jvm_lib' is deprecated - please check the documentation for the correct replacement.
    [Thu Jul 09 11:21:31 2009][29421:2934478176] [warn] jk_map_validate_property::jk_map.c (411): The attribute 'worker.inprocess.stdout' is deprecated - please check the documentation for the correct replacement.
    [Thu Jul 09 11:21:31 2009][29421:2934478176] [warn] jk_map_validate_property::jk_map.c (411): The attribute 'worker.inprocess.stderr' is deprecated - please check the documentation for the correct replacement.
    [Thu Jul 09 11:21:31 2009][29421:2934478176] [info] init_jk::mod_jk.c (3183): mod_jk/1.2.28 initialized
    [Thu Jul 09 11:21:31 2009][29422:2934478176] [warn] jk_map_validate_property::jk_map.c (411): The attribute 'worker.inprocess.class_path' is deprecated - please check the documentation for the correct replacement.
    [Thu Jul 09 11:21:31 2009][29422:2934478176] [warn] jk_map_validate_property::jk_map.c (411): The attribute 'worker.inprocess.cmd_line' is deprecated - please check the documentation for the correct replacement.
    [Thu Jul 09 11:21:31 2009][29422:2934478176] [warn] jk_map_validate_property::jk_map.c (411): The attribute 'worker.inprocess.jvm_lib' is deprecated - please check the documentation for the correct replacement.
    [Thu Jul 09 11:21:31 2009][29422:2934478176] [warn] jk_map_validate_property::jk_map.c (411): The attribute 'worker.inprocess.stdout' is deprecated - please check the documentation for the correct replacement.
    [Thu Jul 09 11:21:31 2009][29422:2934478176] [warn] jk_map_validate_property::jk_map.c (411): The attribute 'worker.inprocess.stderr' is deprecated - please check the documentation for the correct replacement.
    [Thu Jul 09 11:21:31 2009][29422:2934478176] [info] init_jk::mod_jk.c (3183): mod_jk/1.2.28 initialized
    Je ne suis pas vraiment sure que ca ait un rapport mais apparement il n'aime pas ce que j'ai mis dans workers.propertie

  5. #5
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Je disais que le document root n'était pas correct dans le sens où il pointe sur le répertoire de Tomcat et c'est ce qui cause le problème a priori. Le plus simple c'est quand même de le faire pointer sur un autre répertoire, ça éliminera au moins cette piste.

    Pour les warnings, c'est parce que ton worker.properties est trop "vieux" : il faut le corriger pour y mettre des paramètres qui correspondent avec ta version de mod_jk. Ca peut aussi être ça, le problème : la conf est incomplète pour mod_jk, il ne sait pas quoi faire et donc il ne se passe rien.

  6. #6
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2009
    Messages : 176
    Par défaut
    Ok.... C'est le bazar dans ma tete !
    Mon fichier workers.properties est trop vieux...Je viens de le faire hier XD Mais je suppose que ce n'est pas le sens de cette phrase (je veux dire pas le sens creation mais une histoire de version peut etre..)Pourtant il est issue du fichier exemple fournit avec JK-connector qui est il me semble une des versions les plus recente.
    Quand au DocumentRoot..Je suis vraiment dslee Tu m'excuseras Mac mais je ne vois pas ou le faire pointer a part sur ce dossier.
    Ne faut-il pas qu'il pointe la ou les scripts html, jsp ...sont ?
    En faisant d'autre recherche cette apres midi je suis tombee sur un livre disant que pour Apache 2.2.x il vaut mieux utiliser mod_proxy.. Peut etre cette piste est-elle a etudier.
    Merci beaucoup d'essayer de m'aider. D'apres ce que tu me dis, j'ai l'impression que quasiment tout ce que j'ai fait est faux et/ou a (re)faire.. C'est un peu décourageant.. Mais bon en persistant je suis sure d'y arriver...un jour ! lol

  7. #7
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Citation Envoyé par Saita Voir le message
    Ok.... C'est le bazar dans ma tete !
    Mon fichier workers.properties est trop vieux...Je viens de le faire hier XD Mais je suppose que ce n'est pas le sens de cette phrase (je veux dire pas le sens creation mais une histoire de version peut etre..)Pourtant il est issue du fichier exemple fournit avec JK-connector qui est il me semble une des versions les plus recente.
    Vieux dans le sens de ce qui est écrit à l'intérieur : les paramètres ne sont pas ou plus reconnus par mod_jk. Evidemment, la date de création du fichier, on s'en moque.

    Citation Envoyé par Saita Voir le message
    Quand au DocumentRoot..Je suis vraiment dslee Tu m'excuseras Mac mais je ne vois pas ou le faire pointer a part sur ce dossier.
    Le répertoire htdocs standard d'Apache, par exemple.

    Citation Envoyé par Saita Voir le message
    Ne faut-il pas qu'il pointe la ou les scripts html, jsp ...sont ?
    Justement non : tu veux que ce soit Tomcat qui interprète ces fichiers, pas Apache. Apache sert juste de relais pour Tomcat.

    Citation Envoyé par Saita Voir le message
    D'apres ce que tu me dis, j'ai l'impression que quasiment tout ce que j'ai fait est faux et/ou a (re)faire.. C'est un peu décourageant.. Mais bon en persistant je suis sure d'y arriver...un jour ! lol
    Non, ce n'est pas faux, c'est comme ça qu'on apprend. C'est comme tout, il faut arriver à bien faire la part des choses. Tomcat s'occupe des JSP, pas Apache. Tu veux seulement qu'Apache fasse le relais, c'est ton seul objectif. Donc corrige le document root, ça évitera les confusion. Ensuite, il faut essayer de trouver les bons paramètres pour ta version de mod_jk (et là, je ne sais pas comment faire désolé).

  8. #8
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2009
    Messages : 176
    Par défaut
    Me revoila ! Pas encore folle lol mais pas loin..
    C'est dur de configurer quelquechose quand on comprend pas tout ce qu'on fait et qu'on a pas fait le debut de l'installation.. Bref assez de lamentation.. De l'action
    Donc selon un super livre qui a l'air bien fait (Professional Apache Tomcat 6) et qui contient un chapitre
    Tomcat and Apache HTTP Server
    Voici ce qu'il faut faire avec Tomcat 6 et une version de Apache 2.2.x :
    The $CATALINA_HOME/conf/server.xml configuration file contains the following entry for the Connector :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    You need to create a configuration file called workers.properties. This file is placed in the conf directory of your Apache Web server.
    Petite question : Ce fichier n'est-il pas propre au mod_jk ?
    Bon je continue : voila le nouveau fichier workers.properties.
    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
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
     
    # workers.tomcat_home should point to the location where you
    # installed tomcat. This is where you have your conf, webapps and lib
    # directories.
    #
    workers.tomcat_home=/usr/local/tomcat
     
    #
    # workers.java_home should point to your Java installation. Normally
    # you should have a bin and lib directories beneath it.
     
    workers.java_home=/usr/java/jdk1.6.0_064
     
     
     
    #------ DEFAULT worker list ------------------------------------------
    #---------------------------------------------------------------------
    #
    #
    # The workers that your plugins should create and work with
    #
    # Add 'inprocess' if you want JNI connector 
    worker.list=ajp12, ajp13
    # , inprocess
     
    #
    #------ DEFAULT ajp12 WORKER DEFINITION ------------------------------
    #---------------------------------------------------------------------
    #
     
    #
    # Defining a worker named ajp12 and of type ajp12
    # Note that the name and the type do not have to match.
    #
    worker.ajp12.port=8007
    worker.ajp12.host=localhost
    worker.ajp12.type=ajp12
    #
    # Specifies the load balance factor when used with
    # a load balancing worker.
    # Note:
    #  ----> lbfactor must be > 0
    #  ----> Low lbfactor means less work done by the worker.
    worker.ajp12.lbfactor=1
     
    #------ DEFAULT ajp13 WORKER DEFINITION ------------------------------
    #---------------------------------------------------------------------
    #
     
    #
    # Defining a worker named ajp13 and of type ajp13
    # Note that the name and the type do not have to match.
    #
    worker.ajp13.port=8009
    worker.ajp13.host=localhost
    worker.ajp13.type=ajp13
    #
    # Specifies the load balance factor when used with
    # a load balancing worker.
    # Note:
    #  ----> lbfactor must be > 0
    #  ----> Low lbfactor means less work done by the worker.
    worker.ajp13.lbfactor=1
     
    #
    #------ DEFAULT LOAD BALANCER WORKER DEFINITION ----------------------
    #---------------------------------------------------------------------
    #
     
    #
    # The loadbalancer (type lb) workers perform wighted round-robin
    # load balancing with sticky sessions.
    # Note:
    #  ----> If a worker dies, the load balancer will check its state
    #        once in a while. Until then all work is redirected to peer
    #        workers.
    worker.loadbalancer.type=lb
    worker.loadbalancer.balance_workers=ajp12, ajp13
     
     
    worker.ajp13.connection_pool_size=25
    worker.ajp13.connection_pool_minsize=13
    Suis l'installation de mod_proxy (je n'avais rien de special a faire.)
    To add mod_proxy for your server, edit the file httpd.conf and uncomment the following three lines :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
    LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
    After restarting the server if you try httpd -D DUMP_MODULES you should see the new modules loaded
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    proxy_module
    proxy_ajp_module
    proxy_balancer_module
    To tell mod_proxy to forward requests for certain URI to the tomcat server, you need to add the following segment to the httpd.conf file:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <IfModule mod_proxy.c>
    ProxyRequests On
     
    <Proxy *>
        Order deny,allow
        Allow from all 
    </Proxy>
    ProxyPass / ajp://localhost:8009/
    ProxyPassReverse /usr/local/tomcat/webapps/ROOT ajp://localhost:8009/
    Ok. Bon toujours le meme probleme de savoir si j'ai bien adapte l'exemple a ma comfiguration ou pas...J'en suis toujours pas sur.. Sachant donc que les fichiers que je veux afficher sont dans /usr/local/tomcat/ROOT/ pour les .jsp
    ..Et normalement la config est finie et on peut tester..
    Toujours le meme resultat : ca s'affiche mais en code source..

    Edit : je viens de lire ce que tu m'a mis...Je postais en meme temps. Je crois que j'ai compris ce que tu m'a dit a propos de DocumentRoot..Donc pour l'instant si j'ai bien compris, le but est de le faire pointer sur un dossier bidon, pour qu'il n'essaie pas de faire les .jsp a la place d'Apache ?
    En tout cas je vais changer ca.
    C'est bon c'est fait j'ai mis /opt/otrs/var/httpd/htdocs a la place (c'est le repertoire qui s'en rapprochait le plus)

  9. #9
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2009
    Messages : 176
    Par défaut
    Bon alors...J'ai quand meme un gros probleme (hormis le fait que ca ne marche toujours pas) c'est que avec mod_jk je savais ou regarder pour les erreurs (je veux dire les fichiers log) mais maintenant je n'en ai aucune idee..
    Mon fichier /etc/httpd/logs/error_log donne ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    [root@satm-dev1-sonia1 conf]# tail /etc/httpd/logs/error_log
    [Thu Jul 09 15:17:09 2009] [warn] module proxy_ajp_module is already loaded, skipping
    [Thu Jul 09 15:17:09 2009] [notice] Digest: generating secret for digest authentication ...
    [Thu Jul 09 15:17:09 2009] [notice] Digest: done
    [Thu Jul 09 15:17:10 2009] [notice] Apache/2.2.3 (CentOS) configured -- resuming normal operations
    [Thu Jul 09 16:18:38 2009] [notice] caught SIGTERM, shutting down
    [Thu Jul 09 16:18:38 2009] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
    [Thu Jul 09 16:18:38 2009] [warn] module proxy_ajp_module is already loaded, skipping
    [Thu Jul 09 16:18:39 2009] [notice] Digest: generating secret for digest authentication ...
    [Thu Jul 09 16:18:39 2009] [notice] Digest: done
    [Thu Jul 09 16:18:39 2009] [notice] Apache/2.2.3 (CentOS) configured -- resuming normal operations
    [root@satm-dev1-sonia1 conf]#
    Donc a prioris rien de suspect
    et access.log donne qqch que je ne comprend absolument pas..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [09/Jul/2009:16:18:46 +0000] "GET /%22+ti.offIcon+%22 HTTP/1.1" 404 1024 "http://10.1.9.50/generate_top_nav.jsp?parent=%3C%%20out.print(parent);%20%%3E" "Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11 (.NET CLR 3.5.30729)"
    [root@satm-dev1-sonia1 conf]#
    Peux-tu m'eguiller (ca s'ecrit comme ca ??) pour savoir ou regarder ?

    Edit : ma question tient toujours mais j'ai une bonne nouvelle (plusieurs en fait ):
    1) ma journee est finie pour aujourd'hui....Je verrais la suite demain
    2) apres avoir teste plusieurs fichiers certains .jsp marchent et d'autres non ! Les .pl ne marchent toujours pas
    Donc merci pour ton aide et a demain si tu veux bien. Bonne soiree

  10. #10
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Avec toutes tes modifs, est-ce que tu peux nous redonner ta configuration Apache (là où il y a les ProxyXxx) ?

    Quelles sont les JSP qui marchent et celles qui ne marchent (URL et chemins) ?

    Où se trouvent tes .pl (répertoire) ?

    Et enfin, et surtout (limite, on aurait dû commencer par là) : quel context root/chemin veux-tu utiliser pour exécuter ton appli Tomcat et tes .pl ?

  11. #11
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2009
    Messages : 176
    Par défaut
    Bonjour
    Alors la configuration Apache : Je vais resumer le principal
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ServerRoot "/etc/httpd"
    Listen 80
    LoadModule proxy_module modules/mod_proxy.so
    LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
    (j'ai enleve le chargement de mod_jk)
    Ca c'est important car par defaut les modules que j'ai rajoute ont un fichier de config dans ce dossier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ServerAdmin root@localhost
    ServerName 127.0.0.1:80
    UseCanonicalName Off
    DocumentRoot "/opt/otrs/var/httpd/htdocs"
    Ca donc c'est le changement que tu m'as demande de faire hier.
    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
    <Directory /usr/local/tomcat/webapps/ROOT>
    Options FollowSymlinks Includes
    DirectoryIndex index.jsp index.html index.html.var
    AddHandler server-parsed shtml
    Order allow,deny
    Allow from all
    </Directory>
    <Location /usr/local/tomcat/lib>
    #I'm not sure about that..
    <Limit POST>
    Order deny,allow
    Deny from all
    Allow from localhost
    Satisfy any
    </Limit>
    </Location>
    A ce propose d'ailleurs j'ai une question : je n'etais pas sure de ce que signifiait exactement l'instruction Location par rapport a Directory
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ScriptAlias /cgi-bin/ "/usr/local/tomcat/webapps/ROOT/WEB-INF/cgi-bin/"
    <Directory "/usr/local/tomcat/webapps/ROOT/WEB-INF/cgi-bin/">
        AllowOverride None
        Options None
        Order allow,deny
        Allow from all
    </Directory>
    Question/Remarque : Ici Je devrais peut etre mettre /cgi-bin/ dans Directory au lieu de toute l'adresse..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <IfModule mod_proxy.c>
    ProxyRequests On
     
    <Proxy *>
        Order deny,allow
    #    Deny from all
        Allow from all 
    </Proxy>
    Dans conf.d j'ai les fichiers perl.conf proxy_ajp.conf ssl.conf et welcome.conf
    Dans proxy_ajp.conf j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
    ProxyPass / ajp://localhost:8009/
    ProxyPassReverse /usr/local/tomcat/webapps/ROOT ajp://localhost:8009/
    Dans perl.conf j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    LoadModule perl_module /etc/httpd/modules/mod_perl.so
    <Directory /usr/local/tomcat/webapps/ROOT/WEB-INF/cgi-bin>
        SetHandler perl-script
        PerlResponseHandler ModPerl::Registry
        PerlOptions +ParseHeaders
        Options +ExecCGI
    </Directory>
    <Location /usr/local/tomcat/webapps/ROOT/WEB-INF/cgi-bin>
        SetHandler perl-script
        PerlResponseHandler Apache2::Status
        Order deny,allow
    #    Deny from all
        Allow from all 
    </Location>
    Et enfin j'ai le fichier workers.properties dont je ne sais pas si il est necessaire ou pas pour ce mode proxy..(Question)
    Et pour finir avec les questions que j'avais pose la derniere fois :
    avec mod_jk je savais ou regarder pour les erreurs (je veux dire les fichiers log) mais maintenant je n'en ai aucune idee..
    Alors maintenant je vais essayer de repondre a tes questions mais je pense avoir des problemes de vocabulaire..
    quel context root/chemin veux-tu utiliser pour exécuter ton appli Tomcat et tes .pl ?
    Donc je travaille sur une machine virtuelle dont l'ip est 10.1.9.50.
    Les fichiers qui doivent passer par Tomcat sont normalement tous dans le dossier /usr/local/tomcat/webapps/ROOT ou dans un sous dossier de celui-ci.
    D'ailleurs question : est-ce que quand je lui indique de regarder dans un dossier c'est recursif ou pas ?
    Les fichiers perl sont tous dans le dossier /usr/local/tomcat/webapps/ROOT/WEB-INF/cgi-bin
    Donc ca c'est pour le chemin. Je ne comprend pas ce que tu entend par contexte. Toutes les manip et les droits sont ROOT.
    Les JSP qui marchent et pas sont dans le meme dossier que j'ai indique ci dessus. J'en ai discute un peu aec mon chef de projet et il m'a dit qu'il soupçonnait que c'etait parce que le fichier qui ne veut pas s'afficher contient des iframes (encore un mot que je ne connaissais pas). Alors que les autres non. Donc il aimerait que je creuse cette piste aujourd'hui..

  12. #12
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Citation Envoyé par Saita Voir le message
    A ce propose d'ailleurs j'ai une question : je n'etais pas sure de ce que signifiait exactement l'instruction Location par rapport a Directory
    Location, c'est par rapport à un chemin d'URL : http://serveur.com/toto/titi, alors que Directory ben c'est un répertoire, comme son nom l'indique en anglais. Tout dépend donc de ce qu'on regarde : l'URL ou le répertoire cible.

    Il y a du coup une confusion entre les deux dans ta conf.

    Citation Envoyé par Saita Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ScriptAlias /cgi-bin/ "/usr/local/tomcat/webapps/ROOT/WEB-INF/cgi-bin/"
    <Directory "/usr/local/tomcat/webapps/ROOT/WEB-INF/cgi-bin/">
        AllowOverride None
        Options None
        Order allow,deny
        Allow from all
    </Directory>
    Question/Remarque : Ici Je devrais peut etre mettre /cgi-bin/ dans Directory au lieu de toute l'adresse..
    Justement non, il faut garder <Directory> vu que /usr/local/tomcat/webapps/ROOT/WEB-INF/cgi-bin/ est un répertoire (ça n'apparaît dans aucune URL, si tu préfères).


    Quelques corrections (en rouge) :
    Citation Envoyé par Saita Voir le message
    Dans proxy_ajp.conf j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
    ProxyPass / ajp://localhost:8009/
    ProxyPassReverse / ajp://localhost:8009/
    Généralement, le premier membre le ProxyPass et ProxyPassReverse valent la même chose.

    Citation Envoyé par Saita Voir le message
    Dans perl.conf j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    LoadModule perl_module /etc/httpd/modules/mod_perl.so
    <Directory /usr/local/tomcat/webapps/ROOT/WEB-INF/cgi-bin>
        SetHandler perl-script
        PerlResponseHandler ModPerl::Registry
        PerlOptions +ParseHeaders
        Options +ExecCGI
    </Directory>
    <Location /cgi-bin>
        SetHandler perl-script
        PerlResponseHandler Apache2::Status
        Order deny,allow
    #    Deny from all
        Allow from all 
    </Location>
    Là, je suis moins sûr de moi : je ne vois pas trop pourquoi mettre un Location (ou un Directory) : pourquoi ne pas rassembler les deux blocs dans un seul et même <Directory> vu que c'est pour la même chose ? Si ça ne marche pas, on verra plus tard.

    Citation Envoyé par Saita Voir le message
    Et enfin j'ai le fichier workers.properties dont je ne sais pas si il est necessaire ou pas pour ce mode proxy..(Question)
    Honnêtement, je ne pense plus qu'il serve.

    Citation Envoyé par Saita Voir le message
    Et pour finir avec les questions que j'avais pose la derniere fois :
    Aucune idée. error_log, c'est certain, mais je ne sais pas si tu auras tout dedans.

    Citation Envoyé par Saita Voir le message
    D'ailleurs question : est-ce que quand je lui indique de regarder dans un dossier c'est recursif ou pas ?
    Tu veux dire quoi par "récursif" ? Dans Tomcat, Apache ou d'autres serveurs d'appli, quand tu demandes un URL (http://serveur.com/titi/toto), le serveur essaie de comprendre ce que signifie ce /titi/toto. Si on fait exclusion des trucs genre réécriture d'URL ou mapping de servlet, le cas simple c'est que dans la conf de ce serveur, on a indiqué dans quel le répertoire où le serveur trouvera tout ce qu'on lui demande. C'est ce qu'on appelle le document root. Du coup, quand on demande /titi/toto, le serveur va voir dans ce répertoire et cherche un truc qui pourrait correspondre à ce /titi/toto, donc sûrement un premier répertoire appelé titi puis un fichier ou un sous-répertoire appelé toto. Que ce soit Apache ou Tomcat c'est pareil, tant qu'on n'entre pas dans des mécanismes de réécriture ou de mapping de servlet.

    Citation Envoyé par Saita Voir le message
    Je ne comprend pas ce que tu entend par contexte. Toutes les manip et les droits sont ROOT.
    En J2EE, le context root est la première partie de l'URL (le chemin) qui indiquera au serveur quelle application (EAR) est demandée. Par exemple, sur un même serveur d'appli, tu as déployé tagada.ear et titi.ear : quand on va demander qqch au serveur, comment ce dernier va savoir qu'il faut qu'il exécute plutôt tagada ou titi ? En regardant le context root : dans sa conf, on dit quelque part "quand l'URL commence par tagada, c'est qu'on demande tagada.ear, et quand c'est bidule (pourquoi pas !!! pas d'obligation que ce soit le nom de l'EAR a priori), c'est plutôt titi.ear qu'il faut exécuter". En langage Apache, cela pourrait correspondre à un Location, un Alias ou un ScriptAlias.

    Le sens de la question c'est de savoir que chemin initial permettra à Apache et à Tomcat de déterminer ce qu'on demande vraiment : comment repérer qu'on veut un truc venant de Tomcat ou plutôt un script Perl ? Dans ton cas, y a un problème (mais on va le résoudre) : on dit
    Cela signifie que tout (toute les URL commencent par /, donc tout) est redirigé sur Tomcat, y compris donc a priori /cgi-bin (un ScriptAlias) qui doit déclencher les Perl.

    Citation Envoyé par Saita Voir le message
    Les JSP qui marchent et pas sont dans le meme dossier que j'ai indique ci dessus. J'en ai discute un peu aec mon chef de projet et il m'a dit qu'il soupçonnait que c'etait parce que le fichier qui ne veut pas s'afficher contient des iframes (encore un mot que je ne connaissais pas). Alors que les autres non. Donc il aimerait que je creuse cette piste aujourd'hui..
    C'est possible, aucune idée. Il faut détailler ce que tu entends par "ça marche pas". Si ton navigateur n'affiche pas de message d'erreur, c'est sûrement qu'il reçoit du code HTML. Il faut alors regarder ce code HTML et repérer ce qui ne va pas. Pour les IFRAME c'est sûrement qu'elles pointent sur une mauvaise URL.

  13. #13
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2009
    Messages : 176
    Par défaut
    Super ta reponse Je pense avoir compris plein de truc qui me manquait..
    Notamment le coup de l'URL.
    Donc j'ai eu une petite discussion avec mon boss
    Donc pour resumer : le dossier principal ou se trouve les .jsp "..../webapps/ROOT" doivent etre accessible en tapant http://serveur.com/monfichier.jsp
    Code :
    ProxyPass / ajp://...
    Cela signifie que tout (toute les URL commencent par /, donc tout) est redirigé sur Tomcat, y compris donc a priori /cgi-bin (un ScriptAlias) qui doit déclencher les Perl.
    Si je mettais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ProxyPass /*jsp ajp://...
    Ca marcherait ?
    Ma question sur la recursivite..
    Ca concerne perl en fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <Directory /usr/local/tomcat/webapps/ROOT/WEB-INF/cgi-bin>
        SetHandler perl-script
        PerlResponseHandler ModPerl::Registry
        PerlOptions +ParseHeaders
        Options +ExecCGI
    </Directory>
    Quand je met ca, je lui dit d'aller regarder dans le dossier /usr/local/tomcat/webapps/ROOT/WEB-INF/cgi-bin pour trouver mes scripts perl, exact ?
    Or ce dossier est le dossier "principal" : il contient des sous-dossiers par exemple /usr/local/tomcat/webapps/ROOT/WEB-INF/cgi-bin/saita qui contient aussi des srcipts perl. Pour l'URL il faudrait que je puisse y acceder en tapant http://serveur.com/saita/monfichier.pl et qu'il sache qu'il faut qu'il interprete ce fichier meme s'il n'est pas directement dans le dossier /usr/local/tomcat/webapps/ROOT/WEB-INF/cgi-bin

    Ce que j'entend par marche pas (ou la mauvaise habitude de dire ca a tord et a travers..), c'est juste comme le titre l'indique : je vois le code source de mon fichier au lieu de son resultat. Mais pas de message d'erreur.

    Je teste les config que tu m'as conseille et je reviens avec des questions a propos de mod_perl
    A toute.

  14. #14
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2009
    Messages : 176
    Par défaut

    It almost works !!!
    Pardon.. Hourra ! Mes fichiers .pl sont affiches correctement !! Ca marche donc presque !
    Bon, la petite question que je voulais poser tout a l'heure c'est un truc bizarre qui s'est passe ce matin..
    Je post dans sur le forum..et je me rend compte de ce que je tape...A savoir que les .pl sont cences etre dans le dossier cgi-bin et que celui que je test depuis le debut est dans ROOT..
    Donc je deplace mon fichier me rendant compte de mon erreur..Mais le resultat reste le meme (code source).. Suspicieuse, je change le nom de mon fichier en rajoutant un 2 a la fin, et je tape dans firefox le fichier sans le 2..Exactement le meme resultat ! (j'ai bien sur entre temps redemare tomcat, apache). Conclusion : "la base de donnes" qui lui dit ou sont les fichiers ne doit pas se mettre a jour car normalement, il aurait du me dire qu'il ne trouvait plus mon fichier..
    j'ai fait plusieurs test du meme genre et il ne prenait absolument pas en consideration que le fichier qu'il m'affichait en code source sur internet n'existait pas (soit parce que je l'avais change de nom ou de dossier)
    Donc j'ai ete perplexe..

    Mais bon, pour perl, ca marche et je suis contente !
    Reste donc a savoir si ce que j'ai propose au post precedent est envisageable (*.jsp) pour que tout ne sois pas redirige vers Tomcat, et enfin voir ce probleme d'Iframe mais la je pense que je vais demander a qq1 d'autre de la boite parce que j'ai jamais fait de java alors...Ca va etre dur de comprendre ce qui va pas !

    Edit : apres essaie, le coup de mettre du *.jsp ne marche pas. Il ne reconnait pas le chemin.

  15. #15
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Le ProxyPass /*.jsp ne marchera pas. Quel est le besoin exactement ? Pourquoi tu ne veux pas mettre un simple ProxyPass / ? Tu peux toujours le faire à titre de test pour t'assurer que globalement ça marche ; après on verra pour faire fonctionner les JSP et les CGI.

  16. #16
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2009
    Messages : 176
    Par défaut
    Tu as dit :
    ProxyPass / ajp://...
    Cela signifie que tout (toute les URL commencent par /, donc tout) est redirigé sur Tomcat, y compris donc a priori /cgi-bin (un ScriptAlias) qui doit déclencher les Perl.
    C'etait pour essayer de remedier a ca.. Car si effectivement je fais tout passer par Tomcat..Aucune raison d'avoir installe Apache !
    Les seuls fichiers que je veux faire passer par Tomcat etant a prioris les servlets et les jsp.

    Alors une bonne nouvelle..J'ai oublie de vider mon cache >< et donc en fait le fichier index.jsp a l'air de marcher apres vidage du cache...

    Reste donc plus que cette histoire de Proxy a regler et ca devrait etre bon ! (je croise les doigts..)

  17. #17
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Bonne nouvelle. Essaie voir en remplace l'actuel ProxyPass par ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ProxyPassMatch !^(/cgi-bin.*)$ ajp://localhost:8009$1
    Cela signifierait : "tout ce qui ne commence pas par /cgi-bin est renvoyé sur Tomcat".

    Garde le reste, change seulement le ProxyPass /... Je n'ai jamais utiliser cette directive, donc je ne sais pas si ça marche, on verra bien

  18. #18
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2009
    Messages : 176
    Par défaut
    Non.. J'ai cette erreur quand je relance Apache :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Starting httpd: Syntax error on line 19 of /etc/httpd/conf.d/proxy_ajp.conf:
    ProxyPass Unable to parse URL
    Mais ne faudrait-il pas plutot lui dire ne redirige QUE ce qui finit par .jsp ?

    Le $1 a la fin de la ligne correspond a quoi ?

    Edit : je viens de jetter un oeil a cette adresse http://www.mail-archive.com/ubuntu-b...sg1553738.html et ca pourrait correspondre exactement a ce que je veux faire.. sauf que je ne comprend pas la partie <Location .+\.jsp$>

  19. #19
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Tu as mis quoi dans ta conf ? Tu ne devrais plus avoir de ProxyPass

    Comme tu parlais de servlet, j'en déduis qu'il n'y a pas que les URL finissant en .jsp qu'il faut rediriger sur Tomcat mais je peux me tromper. S'il ne faut rediriger que les .jsp sur Tomcat, mets ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ProxyPassMatch ^(.*\.jsp)$ ajp://localhost:8009$1

  20. #20
    Membre confirmé
    Inscrit en
    Juillet 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juillet 2009
    Messages : 176
    Par défaut
    Oui j'ai reverifie apres avoir lu le message..A prioris plus de ProxyPass en vue (je l'ai commente ) a part le Reverse..(fallait-il que je le commente celui la aussi ?)
    Edit : Voila le resultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Starting httpd: Syntax error on line 19 of /etc/httpd/conf.d/proxy_ajp.conf:
    ProxyPass Unable to parse URL
    J'ai verifie la ligne 19 correspond a la ligne que je viens juste de rajouter

    Edit : Je m'en vais.. Bon week end

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 6 12345 ... DernièreDernière

Discussions similaires

  1. Code C# qui affiche son code source
    Par Zechiron dans le forum C#
    Réponses: 7
    Dernier message: 22/04/2008, 19h13
  2. Réponses: 9
    Dernier message: 04/03/2008, 11h04
  3. Safari affiche le code source de ma page html
    Par yep007 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 13/10/2007, 11h12
  4. afficher son code source
    Par blackbird1 dans le forum Delphi
    Réponses: 3
    Dernier message: 21/08/2006, 10h57
  5. [Sécurité] Afficher le code source PHP
    Par tigzirt dans le forum Langage
    Réponses: 2
    Dernier message: 12/05/2006, 08h42

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