Apache sous linux

Résolu
Comment voir la configuration de Apache sur mon ordinateur (distribution linux fedora core 2) et visualiser l'endroit ou il est installé ?

j'ai trouvé un éxécutif httpd ds usr/sbin mais je ne sais pa si cela fait bien reference a apache.

Si de plus qqn saurait après cela comment le redemarrer en utilisant uniquement un terminal je suis preneur... :)
merci d'avance

33 réponses

Résumé de la discussion

Ce fil aborde la visualisation de la configuration d'Apache sur Fedora Core 2 et l'emplacement des fichiers d'installation, notamment le fichier httpd.conf et le script de démarrage. Plusieurs réponses précisent que le démon s'appelle httpd (et non apache) et se lance via /etc/init.d/httpd, tandis que la configuration réside principalement dans /etc/httpd et /etc/httpd/conf/httpd.conf, avec des équivalents selon la distribution. Pour redémarrer, les commandes courantes incluent /etc/init.d/httpd restart ou apachectl, et il faut vérifier le fichier httpd.conf (et php.ini si PHP est installé) pour assurer le chargement des modules et l'indexation PHP. En cas d’installation personnalisée, les chemins peuvent différer (par exemple /usr/apache ou /usr/local/apache/bin), et il est utile d’indiquer que la localisation peut varier selon la méthode d’installation.

Bobot (l’IA à votre service)
  1. Webmaster
    Salut,

    Alors, la configuration:
    le fichier /etc/httpd/conf/httpd.conf qui est la base de la configuration d'apache, et d'une maniere générale, tout ce qui se trouve dans /etc/httpd/ (toute la configuration de la machine a de rare exception se trouve dans /etc/)

    Pour les script de lancement, sous fedora c'est le script /etc/init.d/httpd (démon http)
    Pour d'autre distrib (debian par exemple) le script se nomme /etc/init.d/apache.
    Tout ces script prennent plusieures arguments variables:
    Debian:
    gts@tsINT:~$ /etc/init.d/apache
    Usage: /etc/init.d/apache {start|stop|reload|reload-modules|force-reload|restart}
    
    Fedora:
    [root@machine ~]# /etc/init.d/httpd
    Usage: httpd {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}
    

    (sans arguement la liste des argument possible est en générale affichée à l'écran)

    Ceci dit, tu as une autre solution, la commande apachectl
    usage: /usr/local/apache/bin/apachectl (start|stop|restart|fullstatus|status|graceful|configtest|help)
    
    start      - start httpd
    stop       - stop httpd
    restart    - restart httpd if running by sending a SIGHUP or start if
                 not running
    fullstatus - dump a full status screen; requires lynx and mod_status enabled
    status     - dump a short status screen; requires lynx and mod_status enabled
    graceful   - do a graceful restart by sending a SIGUSR1 or start if not running
    configtest - do a configuration syntax test
    help       - this screen
    Donc apachectl graceful, relis la configuration (à faire aprés modification des fichiers de configuration.)
    Cette commande se trouve toujours dans <APACHE_ROOT>/bin/
    avec <APACHE_ROOT> le dossier ou apache est installé /usr/apache, /usr/local/apache, etc. (utile à savoir quand l'installation n'est pas celle par défaut /usr/local/apache/bin, peut ne pas etre dans le path, et donc la commande appel soit le serveur apache installé par défaut (apache2 sous fedora core) soit ne retourne rien du tout.)

    ++
    17
    1. /etc/init.d/apache* start
      /etc/init.d/apache* stop
      -1
      1. je n'ai pa de fichier /etc/init.d/apache :'(
        -1
        1. Contributeur
          Salut Charly,

          Le script de lancement doit s'appeler "httpd" (sur FC2 au lieu de "apache"). Essaye :

          /etc/init.d/httpd restart

          En fait init.d est un lien symbolique vers rc.d/init.d (donc tu peux y accéder en faisant /etc/init.d/httpd ou /etc/rc.d/init.d/httpd indifféremment).

          S'agissant du fichier de configuration de Apache, tu devrais le trouver sous /etc/httpd (éventuellement dans un sous répertoire "conf"). Il est dénommé "httpd.conf".

          Si tu utilises php en tant que module Apache, tu dois vérifier que le module y est bien chargé (ligne du type "LoadModule php4_module"). Le fichier httpd.conf doit aussi comporter un "AddModule mod_php4.c" et une entrée "DirectoryIndex" mentionnant "index.php" en plus de "index.html" et d'autres qui peuvent être définies. Tu doit aussi include une entrée "AddType application/x-httpd-php .php" correspondante.

          Tu dois ensuite également paramétrer le fichier "php.ini", qui réside, en principe sous /etc.

          Dal
          2
          1. Dal,

            (toujours la qd j'ai besoin d'aide ) :)

            j'ai regardé ds httpd.conf et il ya beaucoup de lignes load ... etc
            mais aucune ne fait référence a un module de chargement de php.
            Comment faire pour permettre le chargement des modules nécessaires?
            -1
            1. merci bcp asevere je garde tout ça bien au chaud ( ça pourrait me servir)
              :p
              -1
              1. Contributeur
                Salut Charly,

                Tu dois t'assurer que le module pour php a bien été installé sur ta machine.

                Tape "locate libphp" à la ligne de commande.

                Si tu as une réponse du type :

                /usr/lib/httpd/modules/libphp4.so

                Le module est installé sur le disque. Il te faut alors simplement le référencer dans httpd.conf :

                LoadModule php4_module modules/libphp4.so

                Tu devras aussi intégrer les autres lignes mentionnées dans mon post, si elles n'y sont pas déjà.

                Si tu n'as pas un module du type "libphp4.so" sur ta machine, il faut l'installer.

                Sur http://download.fedora.redhat.com/pub/fedora/linux/core/2/i386/os/Fedora/RPMS/ ...

                ... tu trouveras le module pour ta FC2 (si tu as une installation par défaut) dans le package php-4.3.4-11.i386.rpm.

                Par ailleurs, si ton site sous php utilise mysql, ldap, etc. tu peux avoir des .rpm supplémentaires à installer. Consulte la liste des .rpm additionnels pour php. A toi de jouer.

                Après avoir modifié ton httpd.conf, relance Apache.

                Tu peux te faire une page simple avec php pour vérifier que tout est bien installé. Tu y intègres la commande "phpinfo();", utilisée sans arguments, cette fonction t'affichera l'intégralité des caractéristiques de ton installation de php.

                Voir http://fr.php.net/manual/fr/function.phpinfo.php

                Dal
                0
                1. J'ai ajouté le chargement du module php comme tu me l'as indiqué en ayant vérifié que ce module n'était pa préalablement ds le fichier httpd.conf :( et pourtant lorsque je redemarre apache avec /etc/httpd restart j'obtiens :

                  [root@iso-ww02 root]# /etc/init.d/httpd restart
                  *Stopping httpd: [ OK ]
                  Starting httpd: [Wed Jul 27 13:37:55 2005] [warn] module php4_module is already loaded, skipping
                  [ OK ]

                  les pop up qui marchient quand je les testais depuis ma station windows de developpement ne s'affichent toujours pas et les variables php associées a ces popup sont remplies par du vide. A savoir login/pwd
                  -1
                  1. Webmaster
                    Voilà pourquoi il faut bien regarder tout le fichier de config :)

                    A un moment donné, tu as une ligne:
                    Include conf.d/*.conf

                    Donc, faut voir ce qu'il y a dedans:
                    # ls -l conf.d/*.conf
                    -rw-r--r--    1 root     root          814 Sep  3  2002 conf.d/perl.conf
                    -rw-r--r--    1 root     root          454 Feb 16 17:44 conf.d/php.conf
                    -rw-r--r--    1 root     root          988 Sep  2  2002 conf.d/python.conf
                    Ensuite tu visualises le fichier qui te plait:
                    # cat conf.d/php.conf
                    #
                    # PHP is an HTML-embedded scripting language which attempts to make it
                    # easy for developers to write dynamically generated webpages.
                    #
                    
                    LoadModule php4_module modules/libphp4.so
                    
                    #
                    # Cause the PHP interpreter handle files with a .php extension.
                    #
                    <Files *.php>
                        SetOutputFilter PHP
                        SetInputFilter PHP
                        LimitRequestBody 0
                    </Files>
                    
                    #
                    # Add index.php to the list of files that will be served as directory
                    # indexes.
                    #
                    DirectoryIndex index.php

                    Et là, tu vois que tout est normalement chargé.

                    Ton soucis avec php, il est où exactement ?
                    Les pages sont interprétées ? ou bien le texte qui s'affiche est du style:
                    <?php
                    echo "machin";
                    ...
                    ?>

                    0
                  2. Webmaster
                    éventuellement donnes nous un bout de code qui passe mal si le php est correctement interprété dans certains cas.
                    0
                2. Contributeur
                  Salut Charly,

                  Si php est en place, que phpinfo() confirme que tu as tout ce dont tu as besoin, et que tu utilises le même navigateur pour afficher tes pages, c'est que ton code est bogué ou qu'il utilise une ressource, un répertoire, un fichier qui n'existe pas sous Linux (ou pas au même endroit ou avec le même nom, ou avec de mauvaises permissions), etc.

                  Débogues ton code :)

                  ... qu'il s'agisse de php, html ou javascript d'ailleurs.

                  Comme asevere le suggère, tu pourrais poster les passages concernés.

                  Dal
                  -1
                  1. merci du coup de main donc mon problème ne viendrait pas de là.
                    malgré tout, j'ai l'impression que le php est en partie interprété... (il effectue des boucles, éxécute des programmes externes) mais toutes les saisies "utilisateur" ne sont pas interprétées. Comme je l'ai précisé avant les variables qui étaient sensées etre complétées par l' utilisateur sont vides.
                    Ce code a été testé sur 3 navigateurs explorer firefox et netscape sur ma machine windows de developpement avec succès.

                    chose très amusante pas moyen de trouver un navigateur sur ma station linux. pas d'explorer, ni mozilla ni netscape ni meme avec 3 autres navigateurs un poil + exotiques .

                    Pourquoi en informatique tout est tjrs si compliqué ? Résoudre un problème c'est souvent en prendre consience de 2 nouveaux :p
                    -1
                    1. Webmaster
                      Ca vient de ton code,

                      Comment accedes tu aux variables qui sont normalement remplies par l'utilisateur ?
                      0
                  2. les variables utilisateurs sont rentrées par une pop up gérée par le navigateur.

                    ds les pages que je veux protéger je mets

                    <?php
                    include "auth.php";
                    requiert_authentification ('Groupe_autorisé');
                    ?>

                    ds auth.php

                    j'ai une fonction qui permet de déterminer si la personne s'est déjà authentifiée et si ds ce cas son groupe d'utilisateur appartient a la liste des groupes autorisés a la page

                    function requiert_authentification ($groupe_autorisé) {

                    $Groupe='PA_TEST_GROUPE';
                    $Groupe=recherche_groupe($Groupe);

                    $commande= "echo -e ".$_SERVER['PHP_AUTH_USER'].' '.$_SERVER['PHP_AUTH_PW']."|
                    /usr/lib/squid/smb_auth -W isodelta -U 10.63.250.11 -S /netlogon/".$Groupe;

                    if (!isset ($_SERVER['PHP_AUTH_USER'])|| (strcmp(exec ($commande),"ERR\n")==0) || (recherche_groupe($Groupe) != 'WEB_IT')) {

                    /* cas d'erreur ou d'absence d'authentification */

                    erreur_authentification (); }else{
                    /* cas ss erreur d'authentification */
                    echo "<p> Bonjour, {$_SERVER['PHP_AUTH_USER']}.</p>";
                    }
                    echo("REQUIERT AUTH ");
                    }

                    sinon
                    il y erreur d'authentification et on appelle la fonction

                    function erreur_authentification () {

                    header('WWW-Authenticate: Basic realm="Test Authentication System"');
                    header('HTTP/1.0 401 Unauthorized');

                    echo "\n \n Vous devez entrer un identifiant et un mot de passe valide pour accèder à cette ressource.\n";
                    exit;
                    }

                    bon voilà je vous ai donc mis mon code (je me sens tout nu :p)
                    -1
                    1. Webmaster
                      On oublie tout ce que je viens de taper, ce n'est pas une authentification par formulaire :)

                      Je rejette un oeil.
                      -1
                      1. Webmaster
                        Quelle version de PHP a tu sur la fedora ?
                        (dans une console: php -v, sinon, dans le resultat de la fonction phpinfo())
                        -1
                        1. Contributeur
                          Charly, quelques remarques et questions :

                          function requiert_authentification ($groupe_autorisé) {

                          Je retirerai l'accent du nom de ta variable... (quoique c'est sensé fonctionner si on en croit http://fr2.php.net/manual/fr/language.variables.php) mais cette variable n'est pas utilisée dans la suite du code concernant la fonction "requiert_authentification" .. alors à quoi sert cet argument ?

                          Après la ligne suivante :

                          $commande= "echo -e ".$_SERVER['PHP_AUTH_USER'].' '.$_SERVER['PHP_AUTH_PW']."|
                          /usr/lib/squid/smb_auth -W isodelta -U 10.63.250.11 -S /netlogon/".$Groupe;


                          mets un :

                          echo "<p>commande = $commande";
                          exit;


                          et dis nous ce qui s'affiche.

                          Si ce que tu essayes de faire c'est quelque chose comme çà :

                          http://fr.php.net/features.http-auth

                          (cf. exemple 34-1)

                          Il faut que tes fonctions "header" soient appelées avant, comme dans l'exemple, pour espérer que les variables 'PHP_AUTH_USER' et 'PHP_AUTH_PW' soient initialisées.

                          Il semblerait donc que tu n'utilises pas un formulaire html (mais l'authentification http).

                          Si par ailleurs tu utilises des formulaires html pour collecter des données, note bien qu'à partir de la version 4.10 de php les variables "postées" ou en "get" ne sont pas importées automatiquement, il faut les appeler avec $st = $_POST[st] ou $st= $_GET[st] suivant la façon dont le formulaire <form> les conçoit.

                          Dal
                          -1
                          1. Webmaster
                            Le header est au bon endroit, il est renvoyé en cas d'echec, je ne pense pas que le probleme soit là, mais par contre, une version de PHP inferieur à 4.10 sur la Fedora core 2, c'est possible, et dans ce cas, pas de $_SERVER qui tienne, mais un bourrin
                            global $HTTP_SERVER_VARS :(
                            0
                          2. Contributeur
                            note bien qu'à partir de la version 4.10

                            Petite correction, il manque un point. C'est la version 4.1.0 :)

                            Dal
                            0
                          3. Contributeur
                            @asevereSinon...

                            Il me semble, sauf erreur, que

                            header('WWW-Authenticate: Basic realm="My Realm"');

                            est l'instruction qui provoque la demande d'authentification http.

                            Comme l'indique le manuel de php http://fr.php.net/features.http-auth :

                            il est possible d'utiliser la fonction header() pour demander une identification ("Authentication Required") au client, générant ainsi l'apparition d'une fenêtre de demande d'utilisateur et de mot de passe. Une fois que les champs ont été remplis, l'URL sera de nouveau appelée, avec les variables PHP_AUTH_USER, PHP_AUTH_PW et AUTH_TYPE contenant respectivement le nom d'utilisateur, le mot de passe et le type d'identification. Ces variables prédéfinies sont trouvées dans les tableaux $_SERVER et $HTTP_SERVER_VARS.

                            Donc, ce n'est qu'après avoir rencontré l'instruction header que la demande d'authentification est faite. Si l'utilisateur presse OK, la même page php est ensuite rechargée, avec les valeurs PHP_AUTH_USER, PHP_AUTH_PW et AUTH_TYPE initialisées.

                            .. d'où la boucle if - then - else proposée dans l'exemple 34-1 du manuel.

                            La gestion d'erreur de l'authenification devrait se faire une fois les variables PHP_AUTH_USER, PHP_AUTH_PW et AUTH_TYPE initialisées. Dans la fonction "erreur_authentification" les deux lignes de "header" seraient donc inutiles. Ces lignes devraient être placées en début de la page php (avec un if détectant si les informations n'ont pas déjà été envoyées) pour déclencher l'affichage de la boite.

                            En l'état, si la boite s'affiche chez Charly, c'est simplement parce que le test "!isset ($_SERVER['PHP_AUTH_USER'])" dans la fonction "requiert_authentification" est toujours faux... au premier chargement de la page.

                            Il est vrai qu'après une première validation cependant, les variables devraient être initialisées lors du rechargement. Mais il n'en demeure pas moins qu'il n'est pas logique de placer "header" à cet endroit.

                            Charly :

                            - peux tu répondre à la question d'asevere sur la version de ton php (est-ce bien le php-4.3.4 proposé sur FC2 ?)
                            - retirer les deux lignes "header" de ta fonction "erreur_authentification"
                            - dans les pages que tu veux protéger, mettre :
                            <?php 
                            include "auth.php"; 
                            if (!isset($_SERVER['PHP_AUTH_USER'])) {
                              header('WWW-Authenticate: Basic realm="Test Authentication System"'); 
                              header('HTTP/1.0 401 Unauthorized');
                              echo "\n \n Vous avez pressé le bouton 'annulation'. Vous devez entrer un identifiant et un mot de passe pour accéder à cette ressource.\n"; 
                              exit;
                            } else {
                               requiert_authentification ('Groupe_autorisé'); 
                            }
                            ?>

                            - donner le résultat du test de la variable $commande proposé dans mon post <17> avant et après cette modification

                            Garde des copies de tes sources avant modifications, on ne sais jamais :)

                            Dal
                            0
                          4. Webmaster
                            @[Dal]Pas logique, je te l'accorde tout a fait, mais chacun gere ça comme il l'entend, j'aurais aussi tendance a voir ça en premier, mais en l'occurence, ces bouts de code ont déjà fonctionnés, donc avant de toucher a ce qui fonctionne autant voir ce qui plante :)
                            0
                          5. Webmaster
                            @[Dal]Le reste de la conf ressemblait beaucoup a du standard Fedora, donc soit doit bien etre PHP 4.3.4 :-/
                            0
                        2. 1) la version de mon php est 4.3.8

                          2)
                          il s'agit bien d'une identification http. Autant je suis d'accord pr dire qu'il faut chanG le code php des pages a protéger de façon a tester le cas ou l'utilisateur tape sur annuler. Autant je ne pense pas qu'il faille éliminer les 2 lignes header de la fonction erreur_authentification qui correspondent a l'appel de la popup d'identification.

                          En effet, si je les enlève (je l'ai vérifié en testant depuis une station windows) lorsqu'un utilisateur rentre un mauvais login/pwd on a bien un message d'erreur mais qd il fait "actualiser" ce la ne lui renvoie pa la pop up d'identification.

                          3) depuis ma station windows
                          en faisant les modifications que tu m'as données j'obtiens
                          pour echo(" commande : ".$commande) je trouve (en rentrant sur la pop up d'identification login =gggg et password=fffff)

                          echo -e gggg fffff| /usr/lib/squid/smb_auth -W isodelta -U 10.63.250.11 -S /netlogon/RIEN

                          en consultant une station linux depuis un poste client je trouve
                          des erreurs :(
                          Warning: Cannot modify header information - headers already sent by (output started at /Data/pub/intranet.iso.autoliv.int/web/test_exec.php:4) in /Data/pub/intranet.iso.autoliv.int/web/test_exec.php on line 9

                          Warning: Cannot modify header information - headers already sent by (output started at /Data/pub/intranet.iso.autoliv.int/web/test_exec.php:4) in /Data/pub/intranet.iso.autoliv.int/web/test_exec.php on line 10
                          Vous avez pressé le bouton 'annulation'. Vous devez entrer un identifiant et un mot de passe pour accéder à cette ressource.

                          sérieusement il y a un truc qui ne passe pas sur mon serveur linux :( et je commence a désespérer
                          -1
                          1. Webmaster
                            Salut charly, les erreurs viennent uniquement du echo que tu as ajouté. en effet, tu tentes d'envoyer tes header alors qu'une sortie a déjà commencée avec le echo.
                            0
                        3. re,

                          asevere pourrais tu me dire de quel echo parles tu ?
                          0
                          1. Contributeur
                            du "echo" sur la variable $commande, qui est exécuté avant l'instruction header, étant donné que tu n'as pas mis cette instruction au tout début (comme dans mon exemple).

                            Dal
                            0
                          2. Webmaster
                            de celui là:
                            echo "<p>commande = $commande"; Ou c'était sans avoir touché au code que tu avait ces message ?
                            0
                        4. Contributeur
                          Charly,

                          Les headers de demande d'authentification doivent être envoyés :

                          - avant de contrôler les variables entrées par l'utilisateur
                          - avant toute sortie de texte

                          En effet, si je les enlève (je l'ai vérifié en testant depuis une station windows) lorsqu'un utilisateur rentre un mauvais login/pwd on a bien un message d'erreur mais qd il fait "actualiser" ce la ne lui renvoie pa la pop up d'identification.

                          Un "unset" pour détruire les variables initialisées (si le mot de passe est erroné) ne résoud pas le problème ?

                          Accessoirement, si tu faisais tes tests depuis ta station Linux, il me semble que celà serait plus judicieux... c'est même le but de la manoeuvre.

                          Dal
                          0
                          1. j'ai enlevé tous les "echo" du programme ... j'ai malgré tjrs la meme erreur qd mon site est sous linux :(

                            concernant mes essais depuis une station client windows avec le site sur un serveur linux. 2 raisons :
                            -je n'ai pa de navigateur sur mon environemment linux
                            -je préfère tester le site ds l'environnement ds lequel il sera utilisé par la suite cad clients windows ouvrant le site situé sur le serveur linux.

                            j'ai comparé les fichiers php.ini sous linux et sous windows en reopinat sur le fichier linux les champs différents qui me sembaient utiles. rien n'y fait

                            help ;)
                            0
                            1. Contributeur
                              Salut Charly,

                              j'ai enlevé tous les "echo" du programme

                              Ce n'est pas ce qu'on t'a demandé de faire... Mais tu es maître de ta destinée, tu fais comme tu veux. Je constate que tu ne veux donc pas déboguer ton code.

                              j'ai malgré tjrs la meme erreur

                              Si tu te réfères à l'erreur "headers already sent", celà signifie que quelque part dans l'exécution séquentielle de ton code tu as déjà envoyé des "headers" avant l'instruction "header" générant l'erreur, soit avec une autre instruction "header", soit par défaut en envoyant quelque chose sur la sortie standard avec un "echo", un "print", ou autre chose.

                              concernant mes essais depuis une station client windows avec le site sur un serveur linux.

                              Tes tests (et tant qu'à faire le développement) doivent effectivement être faits dans la situation où le site sera exploité.

                              qd mon site est sous linux :( (...)
                              j'ai comparé les fichiers php.ini sous linux et sous windows

                              ... maintenant... je suis très perplexe en te lisant (et j'ai relu tout le thread). Si tu pouvais clarifier un peu, je serai moins perdu :

                              1. lorsque celà "marche" tu testes quel code php sur quel serveur (Linux ou Windows + nom et version du serveur) et avec quel client (Linux ou Windows + nom et version du client) + qu'est-ce qui "marche" ?

                              2. lorsque celà ne "marche pas" :
                              - qu'est-ce qui "marchait" avant (et comment) et qui ne "marche plus" (et comment),
                              - dans quelle configuration client/serveur (mêmes précisions que ci-dessus en 1.)
                              - quels sont les messages d'erreurs,
                              - quelles sont les lignes de ton code qui provoquent l'erreur (elles sont mentionnées dans le message d'erreur)
                              - quel est le contexte du code

                              Limite toi au code simple que tu as déjà posté. On verra après pour le reste.

                              3. Relis ce thread. Je suis persuadé que tu disposes de toutes les informations pour t'orienter vers la résolution de ton problème.

                              4. Si tu te décides enfin à déboguer ton code, tu me fais signe. Peut-être même te décideras-tu à contrôler le contenu de la variable $commande.

                              Dal
                              2
                              1. Webmaster
                                Salut Dal,

                                Il a enlevé l'echo pour verifier que le problème du Header venait de là, ce qui visiblement, n'est pas le cas.

                                Ceci dit, il a dit aussi que que echo $commande renvoyait:
                                echo -e gggg fffff| /usr/lib/squid/smb_auth -W isodelta -U 10.63.250.11 -S /netlogon/RIEN 


                                Donc ce n'est pas un problème de variable.
                                Peut-etre un probléme de droits simplement.

                                Que donne la commande
                                echo -e gggg fffff| /usr/lib/squid/smb_auth -W isodelta -U 10.63.250.11 -S /netlogon/RIEN
                                lancé par l'utilisateur apache (enfin celui du serveur web.)
                                0
                              2. Contributeur
                                @asevereSalut asevere,

                                il a dit aussi que que echo $commande renvoyait:
                                echo -e gggg fffff| /usr/lib/squid/smb_auth -W isodelta -U 10.63.250.11 -S /netlogon/RIEN


                                Ce n'est pas ce que j'ai compris en lisant ce passage de son post <23> :

                                3) depuis ma station windows
                                en faisant les modifications que tu m'as données j'obtiens
                                pour echo(" commande : ".$commande) je trouve (en rentrant sur la pop up d'identification login =gggg et password=fffff)

                                echo -e gggg fffff| /usr/lib/squid/smb_auth -W isodelta -U 10.63.250.11 -S /netlogon/RIEN

                                en consultant une station linux depuis un poste client je trouve
                                des erreurs
                                :(
                                Warning: Cannot modify header information - headers already sent by (output started at /Data/pub/intranet.iso.autoliv.int/web/test_exec.php:4) in /Data/pub/intranet.iso.autoliv.int/web/test_exec.php on line 9


                                J'ai donc compris qu'il n'a pas pu tester le contenu de la variable $commande lorsque son code php est installé sur le serveur Linux (il n'a le résultat que lorsque les pages php sont sur son serveur de développement Windows)... mais j'ai demandé à Charly de s'expliquer là dessus, car c'est loin d'être clair.

                                une fois que celà a été testé, on pourra s'interroger sur le résultat de cette commande exécutée par le démon httpd sur le serveur Linux.

                                Dal
                                0
                              3. Webmaster
                                @[Dal]Ok j'ai rien, dit. :)
                                0
                              4. Contributeur
                                @aseverelol :D

                                Charly a aussi posté ceci dans son message http://www.commentcamarche.net/forum/affich-1697228

                                Après avoir developpé mon site web dynamique sur une station windows en utilisant esay php. J'ai migré mes fichiers vers un serveur web avec une distribution fedora core2 (avec uniquement un terminal). Il semble que Apache soit installé et le module php a l'air installé (je peux faire de l'interprétation de code php en faisant php fichier.php).

                                Cependant j'ai un petit problème qd je teste mon site depuis une station client il ne fonctinne pa de la meme façon que depuis mon serveur de developpement.


                                Voilà... mais maintenant, je ne suis plus sûr de rien :)

                                Dal
                                0
                            2. 1° ) je suis reparti de la version initiale du code a savoir celle que j'ai donné au post 14 de ce sujet. j'ai simplement enlevé comme le suggérait Dal la variable passée en parametre ds recherche_groupe($Groupe1) devient recherche_groupe() ds l'ensemble de auth.php

                              le parametre $groupe_autorise me permettra plus tard de rentrer une liste de groupes en paramètres et de tester si le groupe que j'ai trouvé en faisant recherche-groupe appartient a cette liste -> pr l'instant je ne test que si ce groupe est WEB_IT
                              donc cette var est bien inutile pr l'instant. (j'ai enlevé l'accent )

                              2°) pr répondre a ta question Dal du post 33 J'ai donc compris qu'il n'a pas pu tester le contenu de la variable $commande lorsque son code php est installé sur le serveur Linux

                              pr tester la commande j'ai rentré une commande avec un mot de passe et un login intégrés plutot que celle avec la saisie utilisateur a savoir :
                              $commande= "echo -e toto pass_toto|/usr/lib/squid/smb_auth -W isodelta -U 10.63.250.11 -S /netlogon/WEB_IT"

                              j'ai donc testé le retour de l'éxécution de cette commande qui renvoyait le bon résultat suivant que le login et le pass que je mettais ds la commande

                              3°) est ce que l'erreur que me renvoie le navigateur Cannot modify header information - headers already sent by (out
                              put started at /Data/pub/intranet.iso.autoliv.int/web/auth.php


                              pourrait venir de "include auth.php" situé avant l'appel du header qui "écrirait " ce qui provoquerait une mauvaise interpretation du headers. cf php.net

                              N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé, soit par des lignes HTML habituelles dans le fichier, soit par des affichges PHP. Une erreur très classique est de lire un fichier avec include() ou require(), et de laisser des espaces ou des lignes vides, qui génèreront un affichage avant que la fonction header() ne soit appelée. Le même problème existe avec les fichiers PHP/HTML standards.

                              4)

                              précision j'ai enlevé tous les echo de mon programme appelés avant le header

                              Si vous pensez que le "include" pourrait etre a l'origine de mes soucis sauriez vous comment contourner ce problème (ss trop changer de code :) ) ?

                              Enfin pour clore ce magnifique post 36 la principale difficulté pour mes tests est que je ne peux executer smbauth que depuis le serveur linux donc je ne peux tester sur windows que le chemin "suivi" a savoir les passages ds les boucles, les commandes qui vont etre éxécutées.

                              J'espère que le manque de clarté dont j'ai surement fait preuve ds les posts précédents ne vous a pas dégouté de ce topic :p
                              1
                              • 1
                              • 2