Apache sous linux [Résolu/Fermé]

Messages postés
123
Date d'inscription
vendredi 8 juillet 2005
Statut
Membre
Dernière intervention
14 septembre 2006
- - Dernière réponse : souamzohir
Messages postés
161
Date d'inscription
samedi 4 octobre 2008
Statut
Membre
Dernière intervention
16 avril 2010
- 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
Afficher la suite 

13/33 réponses

Messages postés
161
Date d'inscription
samedi 4 octobre 2008
Statut
Membre
Dernière intervention
16 avril 2010
27
0
Merci
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 !!!
-1
Merci
/etc/init.d/apache* start
/etc/init.d/apache* stop
Messages postés
123
Date d'inscription
vendredi 8 juillet 2005
Statut
Membre
Dernière intervention
14 septembre 2006
21
-1
Merci
je n'ai pa de fichier /etc/init.d/apache :'(
Messages postés
123
Date d'inscription
vendredi 8 juillet 2005
Statut
Membre
Dernière intervention
14 septembre 2006
21
-1
Merci
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?
Messages postés
123
Date d'inscription
vendredi 8 juillet 2005
Statut
Membre
Dernière intervention
14 septembre 2006
21
-1
Merci
merci bcp asevere je garde tout ça bien au chaud ( ça pourrait me servir)
:p
Messages postés
123
Date d'inscription
vendredi 8 juillet 2005
Statut
Membre
Dernière intervention
14 septembre 2006
21
-1
Merci
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
asevere
Messages postés
13096
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
12 septembre 2019
371 -
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";
...
?>

asevere
Messages postés
13096
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
12 septembre 2019
371 -
éventuellement donnes nous un bout de code qui passe mal si le php est correctement interprété dans certains cas.
Messages postés
5208
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 septembre 2019
800
-1
Merci
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
Messages postés
123
Date d'inscription
vendredi 8 juillet 2005
Statut
Membre
Dernière intervention
14 septembre 2006
21
-1
Merci
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
asevere
Messages postés
13096
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
12 septembre 2019
371 -
Ca vient de ton code,

Comment accedes tu aux variables qui sont normalement remplies par l'utilisateur ?
Messages postés
123
Date d'inscription
vendredi 8 juillet 2005
Statut
Membre
Dernière intervention
14 septembre 2006
21
-1
Merci
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)
Messages postés
13096
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
12 septembre 2019
371
-1
Merci
On oublie tout ce que je viens de taper, ce n'est pas une authentification par formulaire :)

Je rejette un oeil.
Messages postés
13096
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
12 septembre 2019
371
-1
Merci
Quelle version de PHP a tu sur la fedora ?
(dans une console: php -v, sinon, dans le resultat de la fonction phpinfo())
Messages postés
5208
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 septembre 2019
800
-1
Merci
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
asevere
Messages postés
13096
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
12 septembre 2019
371 -
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 :(
[Dal]
Messages postés
5208
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 septembre 2019
800 > asevere
Messages postés
13096
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
12 septembre 2019
-
Sinon...

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
asevere
Messages postés
13096
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
12 septembre 2019
371 > [Dal]
Messages postés
5208
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 septembre 2019
-
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 :)
asevere
Messages postés
13096
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
12 septembre 2019
371 > [Dal]
Messages postés
5208
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 septembre 2019
-
Le reste de la conf ressemblait beaucoup a du standard Fedora, donc soit doit bien etre PHP 4.3.4 :-/
[Dal]
Messages postés
5208
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 septembre 2019
800 -
note bien qu'à partir de la version 4.10

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


Dal
Messages postés
123
Date d'inscription
vendredi 8 juillet 2005
Statut
Membre
Dernière intervention
14 septembre 2006
21
-1
Merci
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
asevere
Messages postés
13096
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
12 septembre 2019
371 -
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.