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. slt je me suis chargé d'expliquer en partique à mes collégeus de classe ce que ça veut dire un serveur web sous lunix
      ( apache )
      et j'ai trouvé que ca est un peu dificil svp aidez moi ....!!!
      je veux un cours concernat ma charge svp !!! svp !!!
      0
      1. Contributeur
        Bonjour,

        Je viens d'installer les dernières versions de Apache et PHP sous Linux, mais aucun service n'est activé:

        --> Apache
        /usr/local/apache

        ./ bin/ cgi-bin/ error/ icons/ lib/ man/ modules/
        ../ build/ conf/ htdocs/ include/ logs/ manual/

        --> PHP
        ./ ../ bin/ etc/ include/ lib/ man/

        Comment activé les services ?

        De plus lors de l'ouverture d'un fichier PHP sous les navigateurs Web FireFox & Konqueror mais ceux-ci me propse de les enregistrer sur le disque dur ??

        0
        1. je suis un etudiant en réseaux ey je cherche a faire un mini projet sur le réseaux sous linux.
          donc si vous avez des idée vous pouvez l'envoyez sur mon compte.merci
          0
          1. Bonjour, je souhaite installer PHP4 et PHP5 sur la même machine (Fedora core 4, plateforme 64 bits) comme indiqué dans ce tuto.
            Je n'installe donc que PHP4 puisque PHP5 est installé par défaut.
            Cependant, il me manque le fichier libphp4.so.

            Quelqu'un saurait-il comment je peux procéder ou bien m'aider à trouver le fichier adapté à ma machine x86_64 ?
            0
            1. Tout marche désormais bien ... :D

              merci bcp pour votre patience a tous les deux même si ça fait une grosse discussion pr une erreur aussi énervante
              0
              1. Dal,

                j'ai expliqué cette histoire de numérotation au poste 40 (je ne sais pas a quoi cela est du). dsl j'essaye d'etre aussi clair que possible :)

                jai effacé les deux lignes vides en fin de programme
                lorsque les erreurs s'affichent de headers je viens de m'apercevoir que si je fais actualiser il m'envoit la popup d'identification. Cependant si la pop up s'affiche pourtant l'identification n'est pa réalisée correctement. (mais ça peut etre lié au reste du code )
                0
                1. Contributeur
                  Le message d'erreur que tu as copié-collé en post <38> ne faisait pas référence à 105, mais à 5... hmmf, encore une fois tout celà est confus. Admettons que ce que tu dis maintenant c'est que le message d'erreur mentionne "output started at /Data/pub/intranet.iso.autoliv.int/web/auth.php:105" au lieu de "output started at /Data/pub/intranet.iso.autoliv.int/web/auth.php:5".

                  head -n 105 auth.php | tail -n 2
                  ?>


                  C'est la balise fermante du code php et je comprend que c'est la fin de ton code. Si tu as quoi que ce soit après, efface le (même des lignes "vides"). Fais-en la dernière ligne de ton code. Utilise un éditeur sous linux pour ce faire, plutôt que de passer par macromedia studio MX sous Windows, qui risque de te rajouter des choses pour "faire joli".

                  Dal
                  0
                  1. je suppose que c'est juste pr voir a quelles lignes cela correspond ds l'éditeur de texte linux.

                    :)

                    [root@iso-ww02 charles]# head -n 6 auth.php | tail -n 2
                    header('WWW-Authenticate: Basic realm="Test Authentication System"');
                    header('HTTP/1.0 401 Unauthorized');
                    [root@iso-ww02 charles]# head -n 105 auth.php | tail -n 2
                    ?>

                    donc la ligne 105 est bien la fin de mon fichier php et les lignes 5 et 6 sont bien les lignes relatives aux headers
                    0
                    1. Contributeur
                      C'est le fichier auth.php stocké sur ton serveur Linux que tu dois aller voir.

                      Dans le répertoire contenant le fichier auth.php, fais :

                      head -n 5 auth.php | tail -n 1

                      Pour afficher la ligne 5

                      head -n 10 auth.php | tail -n 2

                      Pour afficher les lignes 9 et 10

                      Dal
                      0
                      1. j'ai des petits soucis de numérotation de ligne avec macromedia studio MX et qd j'ai fermé puis relancé celui ci ss changer de code je trouve que les erreurs sont ligne 5 et 6 (a la place de 9et 10 ) et que le problème se situait ligne 105 (au lieu de 5) ce qui correspond a 2 lignes après la fin de mon programme (ligne 103).

                        Cela reprensente il une indication pr toi?

                        PS: oui les lignes 5 et 6 correspondent a mes headers
                        0
                        1. Contributeur
                          output started at /Data/pub/intranet.iso.autoliv.int/web/auth.php:5

                          et ligne 5 de ton auth.php, tu as quelque chose en particulier ?

                          9 et 10, je suppose que c'est tes 2 instructions "header".

                          Dal
                          0
                          1. en affichant le code source de la page je trouve :

                            <br />
                            <b>Warning</b>: Cannot modify header information - headers already sent by (output started at /Data/pub/intranet.iso.autoliv.int/web/auth.php:5) in <b>/Data/pub/intranet.iso.autoliv.int/web/auth.php</b> on line <b>9</b><br />
                            <br />
                            <b>Warning</b>: Cannot modify header information - headers already sent by (output started at /Data/pub/intranet.iso.autoliv.int/web/auth.php:5) in <b>/Data/pub/intranet.iso.autoliv.int/web/auth.php</b> on line <b>10</b><br />

                            Vous devez entrer un identifiant et un mot de passe valide pour accèder à cette ressource.


                            cela fait reférence aux lignes auxquelles se trouvent mes 2 headers ds auth.php. je n'ai rien vu qui faisait référence a des lignes qui seraient a l'origine du problème :'(
                            0
                            1. Contributeur
                              Salut Charly,

                              Effectivement, c'est une piste. Si dans ton "auth.php" tu as une partie en dehors des balises php, ce contenu est adressé à la sortie sortie standard, Apache considérant celà comme du code html.

                              Il ne doit donc rien y avoir en dehors des balises <?php (...) ?>.

                              Regarde aussi le code source de la page générée sur laquelle figure l'erreur des "headers already sent" (avec ton navigateur, affiche le code source), tu devrais y voir le code html "coupable", avant le message "headers already sent" lui-même.

                              Dal
                              0
                              1. 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. 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. 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
                                    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. 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
                                    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
                                    • 1
                                    • 2