Apache sous linux

Résolu/Fermé
magic charly Messages postés 122 Date d'inscription vendredi 8 juillet 2005 Statut Membre Dernière intervention 14 septembre 2006 - 27 juil. 2005 à 09:42
 souamzohir - 18 oct. 2008 à 01:49
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

asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426
27 juil. 2005 à 10:18
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
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
27 juil. 2005 à 10:15
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
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
29 juil. 2005 à 11:34
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
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426
29 juil. 2005 à 11:57
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
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083 > asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022
29 juil. 2005 à 12:03
Salut 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
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426 > [Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024
29 juil. 2005 à 12:15
Ok j'ai rien, dit. :)
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083 > asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022
29 juil. 2005 à 12:30
lol :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
magic charly Messages postés 122 Date d'inscription vendredi 8 juillet 2005 Statut Membre Dernière intervention 14 septembre 2006 22
1 août 2005 à 11:31
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
27 juil. 2005 à 12:49
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
magic charly Messages postés 122 Date d'inscription vendredi 8 juillet 2005 Statut Membre Dernière intervention 14 septembre 2006 22
28 juil. 2005 à 11:57
re,

asevere pourrais tu me dire de quel echo parles tu ?
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
28 juil. 2005 à 12:05
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
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426
28 juil. 2005 à 12:05
de celui là:
echo "<p>commande = $commande"; Ou c'était sans avoir touché au code que tu avait ces message ?
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
28 juil. 2005 à 12:03
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
magic charly Messages postés 122 Date d'inscription vendredi 8 juillet 2005 Statut Membre Dernière intervention 14 septembre 2006 22
29 juil. 2005 à 08:50
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
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
1 août 2005 à 13:14
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
magic charly Messages postés 122 Date d'inscription vendredi 8 juillet 2005 Statut Membre Dernière intervention 14 septembre 2006 22
1 août 2005 à 13:35
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
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
1 août 2005 à 13:52
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
magic charly Messages postés 122 Date d'inscription vendredi 8 juillet 2005 Statut Membre Dernière intervention 14 septembre 2006 22
1 août 2005 à 14:14
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
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
1 août 2005 à 14:24
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
magic charly Messages postés 122 Date d'inscription vendredi 8 juillet 2005 Statut Membre Dernière intervention 14 septembre 2006 22
1 août 2005 à 14:38
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
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
1 août 2005 à 14:49
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
magic charly Messages postés 122 Date d'inscription vendredi 8 juillet 2005 Statut Membre Dernière intervention 14 septembre 2006 22
1 août 2005 à 15:02
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
magic charly Messages postés 122 Date d'inscription vendredi 8 juillet 2005 Statut Membre Dernière intervention 14 septembre 2006 22
1 août 2005 à 15:26
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
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
zenzedoon Messages postés 20 Date d'inscription lundi 13 août 2007 Statut Membre Dernière intervention 4 octobre 2012
8 déc. 2007 à 16:16
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
Arno59 Messages postés 4600 Date d'inscription jeudi 23 octobre 2003 Statut Contributeur Dernière intervention 18 avril 2023 484
9 févr. 2008 à 21:53
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