OVH Community, votre nouvel espace communautaire.

php_value include_path dans le .htaccess est interdit


ingridt
08/10/2006, 15h12
Merci beaucoup pour cet excellent réponse! vite et claire.

oInOt
08/10/2006, 13h25
Le ini_set est à mettre avant de faire les include, par exemple dans un fichier de config qui est parcouru chaque fois.

pour le documentroot, c'est n'est à faire que si on a un minimum de connaissance linux, c'est une commande à exécuter en ligne de commande (connexion SSH avec putty par exemple)

Si on a par exemple une structure de rép
Code:
~/my_web_sites/my_domain.com/sub_domain_1
~/my_web_sites/my_domain.com/sub_domain_2
~/my_web_sites/my_domain.com/www/libs
~/my_web_sites/my_domain.com/www/html
~/www
et que l'on veut que le documentroot soit ~/my_web_sites/my_domain.com/www/html il faut
1) supprimer www (vérifier qu'il est bien vide avant de le faire !!!)
Code:
cd ~
rm www
2) créer un lien symbolique www qui pointe vers le root de son choix
Code:
ln -s my_web_sites/my_domain.com/www/html www
A utiliser à tes risques et périls, si ça ne marche pas tu peux toujours recréer le rep www (mkdir www)

Bonne chance

ingridt
07/10/2006, 14h40
Donc, je mets ce code-php (ini_set) n'importe où dans le script où je veux employer cet include_path (avant la commande "includes" ou "requires") ?

(mon site est un peu compliqué, car j'ai ajouté ma propre code dans quelques articles du site, qui est d'abord un système de CMS par SPIP)

En plus, je ne voix pas à quoi sert la partie du "documentroot" que le support avait introduit dans son commentaire? Et où mettre ce ln et pourquoi?

oInOt
06/10/2006, 22h45
avec ini_set il y a moyen:

Code PHP:
$delim = (PHP_OS == "WIN32" || PHP_OS == "WINNT") ? ';'':';
ini_set('include_path'".{$delim}".LIB_DIR); 
ou LIB_DIR et LIB_DIR_BIS seraient les chemins complet vers ton rep de libs
Comme ici on sait qu'on est sur du linux ça donne:
Code PHP:
ini_set('include_path'".:/chemin/vers/mes/libs:/chemin/vers/autres/libs"); 
Pour changer le documentroot il suffit de supprimer le rep www et de créer un lien symbolique www qui pointe sur le rep de son choix.

Code:
ln -s chemin_vers_mon_root www
et voila le travail

ingridt
06/10/2006, 22h05
J'ai un répertoire "library" avec des php-includes et les données pour la connection au serveur MySql. Pour raisons de sécurité il est advisé de ne pas les mettre dans le www, mais autrepart, par example dans cgi-bin.
Alors il faut faire savoir à l'exécuteur-php où il peut trouver les includes, par example par un "include_path" dans .htaccess; mais cela donne une erreur 500 chez ovh. Et le support me réponds "Vous ne pouvez pas changer le documentroot avec un .htaccess on interdit la manipulation je suis désolé. "
Alors, quoi faire?