Heeey les linuxiens,

en suivant la doc sur le site j'ai installé et démarrer sans problème Apache, Mysql, Php, et Phpmyadmin (content déjà 🙂), par contre je n'ai pas trouvé comment avoir les droits pour pouvoir éditer les fichiers dans /var/www/... j'ai éssayé de créer un fichier php, mais j'ai du d'abord l'enregistrer sur le bureau puis le déplacer dans mon dossier www, et lorsque j'essaie de d'y accéder par http://localhost j'ai ce message Selinux:

"SELinux is preventing the httpd from using potentially mislabeled files (/var/www/html/works/test1.php). "

Là je suis très beaucoup paumé!

Donc comment corriger cela d'une part, et d'autre part comment édite-t-on des fichiers (par ex. avec BlueFish) destinés à des dossiers qui demandent des droits d'admin pour sauvegarder (j'ai chercher, peut-être mal, mais n'ai pas trouvé), par ex. si je crée un nouveau fichier dans BlueFish et que je veuille l'enregistrer dans var/www/... ça me retourne cette erreur:

"Impossible d'écrire le fichier sur le disque"
Salut,

Il faut que tu donne les droits d'utilisateur à ton dossier /var/www (ou le sous dossier que tu utilise dedans si tu veux).
su -
[tapes ton mot de passe administrateur + ENTREE]
cd /var
chown -R nom_d_utilisateur www


voilà, pour vérifier les droits :
ls -al

Jette un oeil sur la commande chmod pour changer précisement les droits de lecture, écriture et execution
man chmod

Mais bon, je pense que donner les droits utilisateur à ce dossier n'est bon que si tu reste avec des accès locaux (interne) à tes sites.
Si tu mets en ligne ça ne doit pas être conseillé du tout, moi je ne le fais que pour mes dossiers situés dans /var/www/html.

Les "Pros" vont surement confirmer...
non c'est juste pour le développement, ensuite j'envoie mes fichiers par ftp chez mon hébergeur... ça s'rait bon comme ça?
Selinux attribut à chaque processus et fichier un label particulier. Tu peut utiliser la commande ls -aZ pour voir les labels.
Par exemple, les labels attribués aux répertoires présents dans /var/www/
[guillaume@Palladium www]$ ls -aZ
drwxr-xr-x root root system_u:object_r:httpd_sys_content_t:s0 .
drwxr-xr-x root root system_u:object_r:var_t:s0 ..
drwxr-xr-x root root system_u:object_r:httpd_sys_script_exec_t:s0 cgi-bin
drwxr-xr-x root root system_u:object_r:httpd_sys_content_t:s0 error
drwxr-xr-x root root system_u:object_r:httpd_sys_content_t:s0 html
drwxr-xr-x root root system_u:object_r:httpd_sys_content_t:s0 icons
Lorsque tu crées un fichier dans le répertoire /var/www/ il hérite du label de ce dernier. Cependant, si tu crées ce fichier ailleurs et que tu le déplaces, ce dernier hérite du label du répertoire de création. Il a donc un label qui ne correspond pas à sa nouvelle location. Pour cette raison Selinux empêche l'accès à ce fichier.

Pour remédier à ce problème, tu peut éditer le label du dit fichier afin qu'il soit conforme à sa location par l'intermédiaire de la commande suivante :
restorecon -R -v /var/www/
Tu as plus d'infos ici

Pour enregistrer tes fichiers directement dans /var/www/ il te faut changer les permissions afin d'avoir le droit d'y écrire.
Pour changer les permissions regarde du côté de chmod.
Pour avoir des infos :
man chmod
Je ne sais pas si cela est très prudent au niveau de la sécurité, mais tu peut faire en root un :
chmod -R ugo+rwx /var/www/
Après cette modification, l'utilisateur, le groupe et le reste du mode pourrons écrire dans tous les répertoires présent dans /var/www/
C'est à toi de voir.

Guillaume
Je viens d'éditer mon 1er message avec d'autres infos...

Avec la réponse de Guillema tu as tout ce qu'il faut désormais 😉

Au passage, j'utilise Quanta+ pour mes sites internet... excellent 😉
Guillema wrote:Je ne sais pas si cela est très prudent au niveau de la sécurité, mais tu peut faire en root un :
chmod -R ugo+rwx /var/www/
Après cette modification, l'utilisateur, le groupe et le reste du mode pourrons écrire dans tous les répertoires présent dans /var/www/
C'est à toi de voir.

Guillaume
Alors là, chu scié... svp expliquez moi comment vous faites pour créer et éditer vos fichiers...
Did wrote:Au passage, j'utilise Quanta+ pour mes sites internet... excellent 😉
Ok, super, merci pour l'info, me plait bien quanta+
Dans le cas d'un serveur de test et non de production j'aurai changé les droits pour pouvoir écrire dans le répertoire. Mais bon, c'est un peu le dirty tricks !

Sinon, tu peut créer et éditer tes fichiers dans un de tes répertoires perso puis tu déplaces le fichier et tu rétablis le contexte Selinux.
Tu peut faire un script bash qui automatise cette procédure.

Guillaume
mazette, mais c'est la galère...

donnez moi un ex. svp: vous voulez créer un site tout simple (destiné à être uploadé chez votre hébergeur), dans /var/www/html/... un dossier contenant un index.html et un style .css... vous êtes obligés de vous tapez toutes ces manips juste pour créer un dossier et 2 fichiers?

y a un truc qui m'échappe là...
Y a pas de développeur php qui pourrait m'expliquer brièvement comment s'y prendre? :-P
salut,

dans mon cas, j'utilise mon éditeur favori pour coder mes pages, j'ai toujours un terminal à portée de main, et quand j'ai fini mon coding, je copie les fichiers sur le site web local "su -c "cp mon rep ou mon fichier.php /var/www/..."). D'ailleurs avec un hébergeur c'est similaire sauf que le site web fait aussi ftp et il suffit d'uploader ses fichiers par ftp sur le site (avec authentification) et c'est bon. Pour résumé, il existe des tas de solutions différentes , par exemple tu peux aussi choisir comme racine du site web un autre rep que /var/www et auquel tu as accès en écriture, ce que je fais avec mon mac: la racine du site web est /Users/moi/Sites/www/ et j'ai accès en écriture, tu peux aussi uploader tes fichiers par ssh.
Hello Tuxy, merci pour ces infos!!

En copiant tes tes fichiers vers ton site local tu n'as pas de problème avec Selinux ("SELinux is preventing the httpd from using potentially mislabeled files (/var/www/html/works/test1.php)")?
non, pas quand je travaille directement sur le site (par ssh ou en root) sinon, je met souvent SELinux en mode permissif , je trouve SELinux trés contraignant pour une utilisation personnel, mais sur mes serveurs je le laisse en "strict" pour une sécurité optimal.
ok, moi j'veux juste utiliser lampp en local pour tester mes sites, puis ensuite envoyer par ftp les fichiers chez mon hébergeur, quel procédé me recommandes-tu?
en local, d'abord tu install les composants nécessaires:

- par défaut, le serveur web apache (httpd) est installé sur fedora, si ce n'est pas le cas, dans un terminal en root : "yum install httpd"

- ensuite tu installe les autres composants : "yum install php" pour activer php, "yum install mysql-server" si tu veux utiliser une base mysql, "yum install postgresql-server" pour une base postgres, etc .. tu peux aussi installer d'autre composants selon tes besoins web.

- pour démarrer/arrêter/re-démarrer le serveur web: dans un terminal en root: "service httpd start|stop|restart"

- dans le cas de mysql tu peux aussi installer l'interface web de config "yum install phpMyAdmin" (attention à la casse des lettres!)

et c'est tout, ensuite les fichiers de conf de apache sont dans "/etc/httpd/..." le fichier php.ini est dans "/etc/php.ini" , la racine du serveur web est par défaut "/var/www/html", tu peux alors faire péter ton site (par exemple en ouvrant le rep /var/www/html en root et en créant directement tes fichiers, ou une autre méthode cité plus haut)
- pour éditer les fichier, de nombreux éditeur existe, par exemple gedit (inclus dans gnome et plus puissant qu'on pense) ou geany (pour faire des pages web, c'est mieux d'éviter les usines à gaz)
- pour ensuite uploader chez l'hébergeur, tu peux utiliser gftp ou filezilla comme client ftp .

Si tu as d'autre question n'hésite pas ...
Yes, pour ce qui est de lampp c'est déjà tout installé, j'ai également filezilla, quant à l'éditeur j'utilise bluefish mais j'aimerais beaucoup utiliser quanta+ (je butte juste sur l'install, je n'ai pas compris comment faire... si tu pouvais m'expliquer ça simplement (hé oui je débarque j'arrive de windows où tout est facile (y a juste à cliquer sur des boutons et à glisser-déposer des fichiers/dossiers sans besoin de droits :-D (et je suis pas en mode "super-admin de vista" quand j'fais ça)) je t'en serais très reconnaissant!
Autre question, quelles sont les commandes pour, comme tu le dis, "ouvri r/var/www/html en root et créer directement les fichiers"? Ensuite si j'ai un fichier fichier.php dans /var/www/etc. que je veuille reéditer, puis-je "l'ouvrir en tant que root dans un éditeur quelconque"?
j'ai pas bien compris le début de ta dernière question: tu n'arrive pas à installer quanta+?
Normalement, dans un terminal, tu passe en root: "su -" puis tu lance une commande "yum install quelque chose" pour quanta, ce serait "yum install quanta+" mais si c'est qu'il te trouve pas le paquet c'est peut être la syntaxe. Désolé je peux pas vérifier je suis sous leopard et pas sous fedora pour l'instant. Et puis pour l'éditeur php, quanta+ ou un autre .. mis a part pour les symboles et fonctions et l'aperçu web rapide.

pour naviguer en root dans l'arborescence, tu lance un terminal, tu passe en root (su -) et tu tape nautilus, tu pourra alors naviguer jusqu'à /var/www/html, mais ATTENTION quand tu navigue en root tu es dieu, une mauvaise manip peut se révéler CATASTROPHIQUE, mais si c'est juste pour aller dans /var/www/html, je vois pas de soucis, et c'est moins emmerdant de cette manière.
sinon pour plus de sécurité, il faudrait créer un hôte virtuel apache avec un DocumentRoot dans un dossier ou tu as les droits, mais si tu connais pas trop apache, t'embête pas non plus.
Pour quanta+ j'ai avec une archive dont je ne sais pas quoi faire... je dois juste l'extraire à l'endroit voulu pour l'utiliser où l'install est plus complexe?