Pour continuer là-dessus, le chemin que tu mentionnes dans les configurations Apache pour ce genre de variables n'est en rien relatif au "document root", mais en absolu sur le fs.
Les seules limitations rencontrées sont alors les droits en lecture sur ce fichier et/ou les éventuelles restrictions de répertoires dans ta configuration PHP (open_basedir par exemple). -----Message d'origine----- De : dev-boun...@list.dotclear.org [mailto:dev-boun...@list.dotclear.org] De la part de Christopher Crouzet Envoyé : dimanche 1 septembre 2013 14:27 À : dev@list.dotclear.org Objet : [Dotclear Dev] REDIRECT_DC_RC_PATH Hello! Est-ce que quelqu'un s'est deja servi de cette variable ? Mon but serait de mettre le dossier `dotclear` quelque part sous mon www/ et de faire en sorte de le laisser intact, comme un vrai clone de ce qu'il y a sur le repo mercurial. C'est facile de definir de nouveaux chemins externes de plugins et cache grace a `DC_PLUGINS_ROOT` et `DC_TPL_CACHE`, ainsi que les chemins public et themes directement dans l'admin de Dotclear, mais par contre pour le `config.php`, c'est moins evident. J'ai vu que la variable `$_SERVER['REDIRECT_DC_RC_PATH']` semblait justement faire ca, donc je suis alle voir mon fichier .htaccess et y ai rajoute : SetEnv REDIRECT_DC_RC_PATH /config.php Le truc c'est qu'ensuite Dotclear va faire un `require` la-dessus, et donc ca va marcher seulement si le fichier .php qui est appele se trouve sur le document root. Donc ca marche bien quand on ouvre le fichier `index.php`du blog, mais ca ne marche plus quand on essaye d'ouvrir l'admin. Il y a 2 solutions : - soit je me demerde dans le .htaccess a faire un truc du genre `SetEnv REDIRECT_DC_RC_PATH %{DOCUMENT_ROOT}/config.php`, mais non seulement ca me semble etre un peu du hack parceque `/config.php` devrait justement deja representer un chemin relatif depuis le root, mais surtout j'arrive pas a le faire marcher... la valeur %{DOCUMENT_ROOT} (et une autre infinite de variations que j'ai teste) ne sont pas converties en chemin, et PHP recoit le string %{DOCUMENT_ROOT} tel quel. - soit dans le code de Dotclear on rajoute manuellement le DocumentRoot, ce qui me semble etre mieux. Et pour pas casser l'ancien comportement, le fichier prepend.php serait modifie dans ce genre la : if (isset($_SERVER['DC_RC_PATH'])) { define('DC_RC_PATH',$_SERVER['DC_RC_PATH']); } elseif (isset($_SERVER['REDIRECT_DC_RC_PATH']) && isfile($_SERVER['REDIRECT_DC_RC_PATH'])) { define('DC_RC_PATH',$_SERVER['REDIRECT_DC_RC_PATH']); } elseif (isset($_SERVER['REDIRECT_DC_RC_PATH']) && isfile($_SERVER['DOCUMENT_ROOT'].$_SERVER['REDIRECT_DC_RC_PATH'])) { define('DC_RC_PATH',$_SERVER['DOCUMENT_ROOT'] . $_SERVER['REDIRECT_DC_RC_PATH']); } else { define('DC_RC_PATH',dirname(__FILE__).'/config.php'); } Des avis ? Christopher. -- Dev mailing list - Dev@list.dotclear.org - http://ml.dotclear.org/listinfo/dev
-- Dev mailing list - Dev@list.dotclear.org - http://ml.dotclear.org/listinfo/dev