|
|
|
|
/etc/init.d/apache* start
/etc/init.d/apache* stop |
je n'ai pa de fichier /etc/init.d/apache :'( |
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 |
|
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 screenDonc 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.) ++ Une belette, un lapin !? C'est pas normal! |
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? |
merci bcp asevere je garde tout ça bien au chaud ( ça pourrait me servir)
:p |
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 |
|
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
|
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 |
|
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
|
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) |
On oublie tout ce que je viens de taper, ce n'est pas une authentification par formulaire :)
Je rejette un oeil. Une belette, un lapin !? C'est pas normal! |
Quelle version de PHP a tu sur la fedora ?
(dans une console: php -v, sinon, dans le resultat de la fonction phpinfo()) Une belette, un lapin !? C'est pas normal! |
|
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) 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
|
|
re,
asevere pourrais tu me dire de quel echo parles tu ?
|
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 |
|
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 ;) |