[Resolu][Mandrake] Problème de droit sur le dossier tmp de apache...

Problème de droit sur le dossier tmp de apache... [Resolu][Mandrake] - Linux et OS Alternatifs

Marsh Posté le 24-01-2005 à 11:02:56    

Bonjour,
 
J'ai installé Apache 2 sur une Mandrake 10.1...
 
Tout marche super bien...a part qu' Apache se sert d'un dossier temp sur lequel il n'a pas les droits qui se situe dans /root/tmp...
 
Pour l'instant la seule soluce que j'ai trouve est de foutre un chmod 777 sur root...
 
Mais ca ne peut etre qu'une solution temporaire...car en plus les droits reviennent regulierement a ce d'origine...comme si linux verifiait les droits sur /root
 
Y a t 'il une solution pour changer le repertoire tmp dont se sert Apache??
 
Merci


Message édité par kissskoool le 25-01-2005 à 15:06:29
Reply

Marsh Posté le 24-01-2005 à 11:02:56   

Reply

Marsh Posté le 24-01-2005 à 11:11:41    

Tu as installé comment ?

Reply

Marsh Posté le 24-01-2005 à 11:19:19    

j'ai telecharge les sources...et j'ai compilé..

Reply

Marsh Posté le 24-01-2005 à 11:24:02    

diverses solutions:
- chmod +t /root/tmp
- rmdir /root/tmp && ln -s /tmp /root/tmp
- configurer correctement apache pour qu'il mette ses fichiers dans /tmp

Reply

Marsh Posté le 24-01-2005 à 11:24:28    

J'aurais plutot fait un urpmi apache2 ou je sais pas quoi, mais bon....
Ben épluche les fichiers de conf pour modifier la variable ou mieux, désinstalle ton bordel pour mettre le package.
Au pire un chown apache:apache /root/tmp ca devrait etre mieux.

Reply

Marsh Posté le 24-01-2005 à 11:32:39    

ahh oui je viens de matter le man de chmod...et effectivement le chmod +t /root/tmp est pas mal...
 
Mais le probleme est que cela ne suffit pas de mettre les droits sur /root/tmp/ puisque les droits de /root sont deja insuffisants pour que apache aille jusqu'a /tmp.
J'ai deja essaye et cela ne marche que si je mets des droits aussi sur /root...mais c'est droits ne sont pas persistants.
 
sinon la solution du chown me plait bien...mais je ne comprend pas tres bien la syntaxe...
c'est koi le ...apache:apache...??

Reply

Marsh Posté le 24-01-2005 à 11:38:06    

Hey si tu peux faire un man chmod tu dois réussir un man chown ;)
 
chown user:group fichier donne la propriété de fichier à l'utilisateur user et au groupe groupe.


Message édité par AirbaT le 24-01-2005 à 11:38:23
Reply

Marsh Posté le 24-01-2005 à 13:31:55    

je me doutais que c'etait une histoire de group et de user...mais ce que je ne comprend pas c'est d'ou tu tires apache:apache....cad pkoi apache???
 
si moi mon executable se nomme httpd et se trouve ds /etc/rc.d/init.d/ dois je faire :
 
- addgroup httpd
- adduser httpd
- chown httpd:httpd /root/tmp
 
???

Reply

Marsh Posté le 24-01-2005 à 14:20:03    

up please...
 
je galere avec ce pb...les droits sur root se reinitialisent toutes les 10 min...je ne peux pas travailler...help!!!
 
je suis oblige de faire toutes les 10 min un chmod 777 /root

Reply

Marsh Posté le 24-01-2005 à 14:22:42    

Tu peux pas laisser à Apache l'accés au répertoire root. Donc faut changer la conf.

Reply

Marsh Posté le 24-01-2005 à 14:22:42   

Reply

Marsh Posté le 24-01-2005 à 14:28:01    

mais ca se change ou???
j'ai regarde dans httpd.conf
 
et nulle part il parle de /tmp ou equivalent...
 
je ne sais pas du tout ou ca se config

Reply

Marsh Posté le 24-01-2005 à 14:48:29    

bon alors a titre informatif, pour les prochains qui auront mon pb, je crois avoir trouve la soluce...
 
tout se passe dans le php.ini :
 
il faut definir les repertoires temp :
 
session.save_path = "/tmp"
session.cookie_path = "/tmp"
 
ou autre chose...
 
bon j'espere que c est bien la soluce definitive...
 
en tout cas merci bcp

Reply

Marsh Posté le 24-01-2005 à 15:43:43    

tu aurais installé les packages mdk, tu n'aurais pas eus tout ces pbs :
urpmi apache2 apache2-mod_php


---------------
Mandriva : parce que nous le valons bien ! http://linux-wizard.net/index.php
Reply

Marsh Posté le 24-01-2005 à 16:02:10    

oui mais je voulais php5...

Reply

Marsh Posté le 24-01-2005 à 16:02:22    

et ca y avait un pb

Reply

Marsh Posté le 24-01-2005 à 16:29:06    

ftp://ftp.proxad.net/pub/Distribu [...] k.i586.rpm
 
PHP5 existe pour la Mandrake 10.1 dans les média contrib


---------------
Mandriva : parce que nous le valons bien ! http://linux-wizard.net/index.php
Reply

Marsh Posté le 24-01-2005 à 18:28:33    

...en fait j'ai suivi un tutoriel sur le net qui expliquait comment installer Apache 2 + PHP 5.0.3 + MySQL 4.1.8 ....
 
et pour toutes les etapes il fallait compiler les sources...
cela permet d'activer des options que tu n'as pas si tu installe les packages...
 
par exemple le plus important pour moi etait de prendre en compte l'extension mysqli dispo depuis la version 4.1 de MySQL.
 
et pour ca il fallait...compiler PHP5 en indiquant l'option --with mysqli lors du ./configure...
 
enfin voila...
 
 
Sinon ca ne regle tjs pas mon GROS problème...qui est surement tres simple à régler pour un adepte confirmé de ce merveilleux systeme que l'on nomme Linux.
 
Je redecris donc mon petit soucis pour ceux qui n'ont pas suivi ;) :
 
Apache utilise un repertoire temp a l'emplacement /root/tmp
hors il n'a pas les droits sur ce repertoire
Donc quand je fais un chmod 777 /root tout marche nikel...mais ce n'est que temporaire car au bout d'un moment les droits reviennent a 700 sur root...
 
Donc je cherche vraiment une solution definitive a ce pb...

Reply

Marsh Posté le 24-01-2005 à 18:29:52    

kissskoool a écrit :


Donc quand je fais un chmod 777 /root tout marche nikel...mais ce n'est que temporaire car au bout d'un moment les droits reviennent a 700 sur root...
 
Donc je cherche vraiment une solution definitive a ce pb...


Là tu tends le bâton...  [:lorill]


Message édité par mirtouf le 24-01-2005 à 18:30:12

---------------
-~- Libérez Datoune ! -~- Camarade, toi aussi rejoins le FLD pour que la flamme de la Révolution ne s'éteigne pas ! -~- A VENDRE
Reply

Marsh Posté le 24-01-2005 à 18:33:43    

je trouvais l'idee du chown pas mal...pour que apache puisse utiliser ce repertoire...hors l'executable n'appartient a aucun groupe ou user.
 
qd je fais un ps aux il me met ds le colonne user : nobody
alors que mysql par ex correspond au user mysql...
 
mais en fait j'ai un repertoire /tmp en racine qui a les droits 777 tout le temps...il est par ex utilise par mysql et kde...
 
j'aimerais bien que ce rep soit aussi utillise par apache...
 
mais je ne trouve pas ou changer ce path...
 
au debut je pensais que ca se passait dans php.ini...et j'ai alors ecris :
 
session.save_path = "/tmp"
session.cookie_path = "/tmp"
 
et redemarre apache...
 
mais rien n'y fait...
 
il utilise tjs /root/tmp...  ;(

Reply

Marsh Posté le 24-01-2005 à 18:36:47    

mirtouf a écrit :

Là tu tends le bâton...  [:lorill]


 
oui je sais que c'est pas une soluce propre ...mais en attendant je ne sais pas quoi faire ...et il faut absolument que le serveur soit en prod.
 
je suis meme preneur si qqun sait comment faire un script qui fout les droits 777 en permanence sur /root en attendant que je trouve une vraie solution
 
parce que la je dois faire ca tout le temps a la main...c la galere...

Reply

Marsh Posté le 24-01-2005 à 18:46:28    

si ca peut aider voila les messages d'erreur que j'ai :
 
Warning: session_start() [function.session-start]: open(/root/tmp/sess_dcd1dc30c62a61001567c91d977b0f85, O_RDWR) failed: Permission denied (13) in /usr/local/apache2/htdocs/agat_sr/accueil_final.php on line 4
 
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /usr/local/apache2/htdocs/agat_sr/accueil_final.php:4) in /usr/local/apache2/htdocs/agat_sr/accueil_final.php on line 4
 
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /usr/local/apache2/htdocs/agat_sr/accueil_final.php:4) in /usr/local/apache2/htdocs/agat_sr/accueil_final.php on line 4
 
Warning: Cannot modify header information - headers already sent by (output started at /usr/local/apache2/htdocs/agat_sr/accueil_final.php:4) in /usr/local/apache2/htdocs/agat_sr/accueil_final.php on line 9

Reply

Marsh Posté le 24-01-2005 à 19:05:55    

bon je viens de trouver une soluce qui marche aussi qui me semble plus propre et moins penible pour moi :
 
taper export TMP=/tmp et export TMPDIR=/tmp avant de lancer le serveur apache

Reply

Marsh Posté le 24-01-2005 à 19:07:49    

mais a propos de cette soluce j'ai qd meme deux questions :  
 
- cela va t il poser des problemes pour les autres applications ???
- cette solution est elle persistante au moins si je ne redemarre pas la machine??
 
Merci

Reply

Marsh Posté le 24-01-2005 à 19:11:26    

Citation :


[root@info1 ~]# cat /etc/profile.d/tmpdir.sh
#!/bin/sh
# $Id: tmpdir.sh,v 1.12 2003/09/02 09:37:49 flepied Exp $
# Set TMPDIR to ~/tmp and create it if directory not exist.
 
if [ -f /etc/sysconfig/system ];then
    . /etc/sysconfig/system
fi
 
if [ -f /etc/sysconfig/msec ];then
    eval `grep ^SECURE_LEVEL= /etc/sysconfig/msec | head -1`
fi
 
if [[ "$SECURE_TMP" = "yes" || "$SECURE_TMP" = "1" || "$SECURE_TMP" = "YES" || "$SECURE_LEVEL" -ge 2 ]];then
    if [ -d ${HOME}/tmp -a -w ${HOME}/tmp ];then
        export TMPDIR=${HOME}/tmp
        export TMP=${HOME}/tmp
    elif mkdir -p ${HOME}/tmp >/dev/null 2>&1;then
        chmod 700 ${HOME}/tmp
        export TMPDIR=${HOME}/tmp
        export TMP=${HOME}/tmp
    else
        export TMPDIR=/tmp/
        export TMP=/tmp/
    fi
fi


---------------
Mandriva : parce que nous le valons bien ! http://linux-wizard.net/index.php
Reply

Marsh Posté le 24-01-2005 à 19:35:50    

pas mal...un script shell qui fait ca au demarrage de la machine.
 
mais alors ma derniere question est la suivante :
 
cela va t il poser des pb pour les autres applications???ou je ne sais quel autre pb...que je change ce tmpdir.sh definitivement??

Reply

Marsh Posté le 24-01-2005 à 20:22:17    

regarde le script ..
par défaut TMPDIR et TMP valent /tmp sauf lorsque l'on est dans un niveau de sécurité élevé sous mdk.
 
donc cela ne devrait pas poser pb.
 


---------------
Mandriva : parce que nous le valons bien ! http://linux-wizard.net/index.php
Reply

Marsh Posté le 25-01-2005 à 08:53:25    

kissskoool a écrit :

si ca peut aider voila les messages d'erreur que j'ai :
 
Warning: session_start() [function.session-start]: open(/root/tmp/sess_dcd1dc30c62a61001567c91d977b0f85, O_RDWR) failed: Permission denied (13) in /usr/local/apache2/htdocs/agat_sr/accueil_final.php on line 4
 
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /usr/local/apache2/htdocs/agat_sr/accueil_final.php:4) in /usr/local/apache2/htdocs/agat_sr/accueil_final.php on line 4
 
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /usr/local/apache2/htdocs/agat_sr/accueil_final.php:4) in /usr/local/apache2/htdocs/agat_sr/accueil_final.php on line 4
 
Warning: Cannot modify header information - headers already sent by (output started at /usr/local/apache2/htdocs/agat_sr/accueil_final.php:4) in /usr/local/apache2/htdocs/agat_sr/accueil_final.php on line 9


 
Bein c'est bizarre ça, php veut écrire dans /root/tmp ... tu as bien modifié les valeurs "upload_tmp_dir = /tmp" et "session.save_path = /tmp" dans le bon php.ini. Tu as redémarré Apache ? Ou alors y'a autre chose ... :/


Message édité par Cruchot le 25-01-2005 à 08:57:24
Reply

Marsh Posté le 25-01-2005 à 09:57:10    

oui j'ai fait tout ca...je ne comprend vraiment pas...
mais qu'est ce que ca veut dire : TMPDIR=${HOME}/tmp ???
si l'utilisateur est root : TMPDIR = root/tmp ??

Reply

Marsh Posté le 25-01-2005 à 10:00:20    

${HOME}=/root si tu es root donc si TMPDIR=${HOME}/tmp alors TMPDIR=/root/tmp


Message édité par Cruchot le 25-01-2005 à 10:00:42
Reply

Marsh Posté le 25-01-2005 à 10:05:32    

kissskoool a écrit :

j'ai telecharge les sources...et j'ai compilé..


 
Tu as pris quelle version et tu as compilé comment ? Tu as aussi installé MySQL ?


Message édité par Cruchot le 25-01-2005 à 10:08:29
Reply

Marsh Posté le 25-01-2005 à 10:12:02    

oui j'ai installe mysql 4.1.9 et apache 2.0.52...
J'ai telecharge les sources sur leur sites respectifs...et j'ai compile...

Reply

Marsh Posté le 25-01-2005 à 10:16:42    

mais en fait j'ai trouve une solution temporaire, mais je ne sais pas comment la rendre definitive...
avant de lancer le serveur apache...je tape export TMPDIR=/tmp et export TMP=/tmp.
ensuite je tape env | grep tmp...et ca a bien fixe mes TMPDIR et TMP a /tmp.
 
Sauf qu'au bout d'un certain temps ...meme sans rebooter...ils reviennent a :
TMPDIR = /root/tmp
TMP = /root/tmp
 
Au secours...c un serveur en prod dans une entreprise...j'ai des erreurs tout le temps dessus a cause de ca...je vais devenir fou...!!!!

Reply

Marsh Posté le 25-01-2005 à 10:18:04    

On te l'a deja dit: utilise les packages.

Reply

Marsh Posté le 25-01-2005 à 10:21:59    

oui je sais...mais qd meme ...y a bien une autre soluce...je veux juste que TMPDIR et TMP restent a /tmp...ca doit pas etre complique qd meme...! non??
 
J'ai mis trop de temps a installer ce serveur Web ...et la il tourne mis a part ce petit pb...

Reply

Marsh Posté le 25-01-2005 à 10:25:46    

Le temps que tu perds à résoudre ce "petit" problème, tu aurais pu installer le bon apache/php via rpm, avec la conf-qui-va-bien et le confort des updates en cas de faille.

Reply

Marsh Posté le 25-01-2005 à 10:27:29    

oui je sais mais...si j'ai un creneau...c'est sur que je fait ca...la j'ai vraiment trop de pb...!!! mais il faut que ca marche...
 
voila ce que j'ai tape pour configurer Apache...:
 
./configure --prefix=/usr/local/apache2 --enable-so

Reply

Marsh Posté le 25-01-2005 à 11:00:40    

bon une petite question :  
 
si je fais ca, est ce que ca marche :
 
[root@info1 ~]# cat /etc/profile.d/tmpdir.sh
#!/bin/sh
# $Id: tmpdir.sh,v 1.12 2003/09/02 09:37:49 flepied Exp $
# Set TMPDIR to ~/tmp and create it if directory not exist.
 
if [ -f /etc/sysconfig/system ];then
    . /etc/sysconfig/system
fi
 
if [ -f /etc/sysconfig/msec ];then
    eval `grep ^SECURE_LEVEL= /etc/sysconfig/msec | head -1`
fi
 
if [[ "$SECURE_TMP" = "yes" || "$SECURE_TMP" = "1" || "$SECURE_TMP" = "YES" || "$SECURE_LEVEL" -ge 2 ]];then
    if [ -d ${HOME}/tmp -a -w ${HOME}/tmp ];then
        export TMPDIR=/tmp
        export TMP=/tmp
    elif mkdir -p ${HOME}/tmp >/dev/null 2>&1;then
        chmod 700 ${HOME}/tmp
        export TMPDIR=/tmp
        export TMP=/tmp
    else
        export TMPDIR=/tmp/
        export TMP=/tmp/
    fi
fi
 
au lieu de ca :
 
[root@info1 ~]# cat /etc/profile.d/tmpdir.sh
#!/bin/sh
# $Id: tmpdir.sh,v 1.12 2003/09/02 09:37:49 flepied Exp $
# Set TMPDIR to ~/tmp and create it if directory not exist.
 
if [ -f /etc/sysconfig/system ];then
    . /etc/sysconfig/system
fi
 
if [ -f /etc/sysconfig/msec ];then
    eval `grep ^SECURE_LEVEL= /etc/sysconfig/msec | head -1`
fi
 
if [[ "$SECURE_TMP" = "yes" || "$SECURE_TMP" = "1" || "$SECURE_TMP" = "YES" || "$SECURE_LEVEL" -ge 2 ]];then
    if [ -d ${HOME}/tmp -a -w ${HOME}/tmp ];then
        export TMPDIR=${HOME}/tmp
        export TMP=${HOME}/tmp
    elif mkdir -p ${HOME}/tmp >/dev/null 2>&1;then
        chmod 700 ${HOME}/tmp
        export TMPDIR=${HOME}/tmp
        export TMP=${HOME}/tmp
    else
        export TMPDIR=/tmp/
        export TMP=/tmp/
    fi
fi  

Reply

Marsh Posté le 25-01-2005 à 11:01:53    

grep tmp /etc/php.ini
ça te donne quoi?


---------------
XBL : ESN3S | GGPO (3rd strike) : ESN | PSN : Huitxilopochti
Reply

Marsh Posté le 25-01-2005 à 11:06:31    

alors mon php.ini se trouve ds /usr/local/apache2/conf/
 
et qd je fais grep tmp php.ini j'obtiens :
 
upload_tmp_dir = /tmp
session.save_path = /tmp
session.cookie_path = /tmp
soap.wsdl_cache_dir="/tmp"

Reply

Marsh Posté le 25-01-2005 à 11:11:13    

et par hasard, t'aurais pas un autre fichier php.ini qq part dans etc?
 
find /etc -name php.ini (voire essaye sur toute ton arborescence)
 
edit: ça m était arrivé sur Solaris...


Message édité par En_Sabah_Nur le 25-01-2005 à 11:12:11

---------------
XBL : ESN3S | GGPO (3rd strike) : ESN | PSN : Huitxilopochti
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed