Résolution du bug de FCKEditor - internal server error 500

Appréciation moyenne:  / 1
Très mauvaisTrès bien 

FCKEditor: Le bug de l'internal server error 500

lorsqu'on souhaite "parcourir les serveur" pour insérer un lien, une image etc, avec FCKEditor, on a une belle "internal error 500":



The server didn't send back a proper XML response. Please contact your system administrator.

XML request error: Internal Server Error (500)

Requested URL:

http://www.tranquille-informatique.fr/plugins/editors/fckeditor/editor/filemanager/connectors/php/connector.php

Command=GetFoldersAndFiles&Type=File-Media&CurrentFolder=%2F&uuid=1244245074312

Response text:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">

<html><head>

<title>500 Internal Server Error</title>

</head><body>

<h1>Internal Server Error</h1>

<p>The server encountered an internal error or

misconfiguration and was unable to complete

your request.</p>

<p>Please contact the server administrator,

xxxx-arobase-www.tranquille-informatique.fr and inform them of the time the error occurred,

and anything you might have done that may have

caused the error.</p>

<p>More information about this error may be available

in the server error log.</p>

</body></html


c'est un problème de droit d'accès, notamment chez ovh où les 777 sont interdits et provoquent justement ces error 500.

malheureusement, FCKEditor, lorsqu'il se charge, modifie ces droits pour remettre du 777 sur les dossiers, c'est chiant.

Il faut donc trouver le fichier qui fait ça et virer ou modifier les instructions. Il s'agit de:
/plugins/editors/fckeditor.class.php


on y trouve une belle fonction changeChmod() et un seul appel à cette fonction:



//check to see if we have to change the install chmod settings
   $this->changeChmod();

 je réapplique mes permissions sur dossiers (705) et fichiers (604) puis je commente cet appel à la fonction:



//check to see if we have to change the install chmod settings
    //$this->changeChmod();

je ferme puis réouvre mon éditeur préféré, et c'est ok, les permissions ne bougent plus, j'espère que ça ne va pas déclencher d'autres bugs ailleurs...

 

je vérifie que cette fois l'option "parcourir le serveur" fonctionne, et elle fonctionne.

Content d'avoir corrigé chez moi cette internal server error 500.

Sauf que, malgré tout, les permissions sur le dossier racine de FCKEditor ont encore changé, merde!

on cherche un peu et on trouve cette chaine: JFCK_BASE qui sent bon 

on regarde si elle est accrochée à un chmod quelque part, et on trouve:



@chmod(JFCK_BASE,0777);

qu'on s'empresse de commenter aussi.

Retests et... ça bouge encore!!!

cette fois, ça se passe dans le fichier:
 /plugins/editors/fckeditor.legacy.php

même manipulation que dans le fichier précédent...

même punition, mais c'est logique, après étude ce fichier sert pour joomla 1.0.xxx
il faut aller plus loin:

/plugins/editors/fckeditor/editor/filemanager/connectors/php/commands.php

chercher une ligne contenant 777 et la modifier comme suit:



$permissions = 0705; //$permissions = 0777; /** modif **/

pas mieux, alors là, j'abandonne, je laisse ce dossier en 777, je n'ai pas d'erreur de toute façon maintenant, on verra plus tard...

Il faudrait que les développeurs de FCKEditor proposent un lot de permissions par défaut qu'on devrait pouvoir paramétrer, parce que là c'était galère..

Le lendemain soir...

je repasse tous les fichiers php du plugin, je cherche les 777 et les remplace tous par des 705, ah mais!

Donc, il y en a dans:

/plugins/editors/fckeditor/editor/filemanager/connectors/php/io.php

ligne 128: $permissions = 0777 ;
remplacé par 0705
c'était apparemment la création de dossier via le filemanager, et hop.

on revient dans le fichier:
/plugins/editors/fckeditor.class.php

ligne 400, transformée comme ça:



case 666: $perms = 705; //777; /** modif **/

ligne 416, commentée puis modifiée, comme ça:



//@chmod( $dir, 0777);
 @chmod( $dir, 0705); /** modif xav **/

ligne 986, même modif que ligne 400

ligne 1014:



$default_dperms = '0705'; //'0777'; /** modif**/

 

lignes 1015, 1016 et 1017:



//@chmod(JFCK_BASE,0777); /** modif **/

celle-là, je l'avais commentée, je change mon fusil d'épaule, je la modifie avec mes permissions:

 



@chmod(JFCK_BASE,0705); /** modif **/

@chmod( $dir, 0777); modifiée en @chmod( $dir, 0705);

JPath::setPermissions($dir,'0666', '0777'); modifiée en JPath::setPermissions($dir,'0666', '0705');

pour le moment je ne m'occupe pas des permissions sur les fichiers, bien que celles-ci soient trop élevées..

Pour être propre, il faudrait faire les mêmes modifs dans le legacy, mais comme il sert à joomla 1.0.xxx, heu...

Bon, je teste les modifs par la création d'un dossier via le bouton "insérer une image" puis parcourir le serveur etc etc, je vérifie, les dossier est créé en 705, c'est déjà ça.

Je vérifie au passage que le dossier racien de fckeditor n'a pas été modifié... non, ça a l'air d'être bon maintenant.