Topic: [OK] PHP - Bibliothèques et autres frameworks

Après avoir spammé les demandes de créations de services sur le panel, j'innaugure maintenant mon compte forum :o

Fier utilisateur du Zend Framework que je suis, j'ai commencé par uploader ma bibliothèque préférée dans le dossier php-include/ de mon webspace et testé un bout de code de 3 lignes, et là... oh! rage, oh! désespoir, j'avais oublié de vérifier l'include_path :

Warning: main() [function.include]: Failed opening 'Zend/Loader.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in [...]/seadragon.tuxfamily.org/htdocs/testZend.php on line 4

es-ce qu'il serait possible d'ajouter à l'include_path le répertoire php-include/ du vhost? (simplement hein! je demande pas non plus de refaire toute la config ;) )

Re: [OK] PHP - Bibliothèques et autres frameworks

Humm t'as l'air de bien connaitre... tu saurais comment ajouter dans l'include_path du php.ini une variable d'environnement ?, pour avoir ça en gros:

include_path = ".:$DOCUMENT_ROOT_HASH/php-include:/usr/share/php:/usr/share/pear"

Sauf que ça doit pas être ça vu que ça marche pas vraiment :-)

J'avoue avoir rien trouvé sur nos chers moteurs de recherches (je dirais comme d'hab, l'information doit être noyée dans une quantité folle de non réponses ou à coté de la plaque)

Sylvain

Re: [OK] PHP - Bibliothèques et autres frameworks

De mémoire, il faut utiliser la directive apache php_value dans la config du vhost pour définir un include_path local :)

Re: [OK] PHP - Bibliothèques et autres frameworks

Salut,

Bonne mémoire ;)

Effectivement, on a la possibilité en utilisant la directive apache php_value de modifier des valeurs php

php_value include_path "ton chemin"

D'ailleurs tu peux également te créer un php.ini dans un répertoire (par exemple config) de ton site web et, dans un fichier .htaccess, tu utilises la directive SetEnv PHPRC (je l'utilise pour magic_quotes_gpc).

SetEnv PHPRC "/ton chemin absolu/config/"

5 (edited by gplanchat 2007-11-27 23:43:55)

Re: [OK] PHP - Bibliothèques et autres frameworks

Après avoir replongé dans la doc, j'ai retrouvé la courte page qui l'explique :

http://fr.php.net/manual/fr/configuration.changes.php

Je ne sais pas comment vous gérez vos vhosts (avec une db, je suppose), mais dans un fichier vhost.conf, ca ressemblerait à:

<VirtualHost *:80>
    DocumentRoot /usr/var/vhosts/projet/exemple.tuxfamily.org/htdocs/
    ServerName exemple.tuxfamily.org

    php_var include_path ".:/usr/share/php:/usr/share/pear:/usr/var/vhosts/projet/exemple.tuxfamily.org/php-include/"
</VirtualHost>

sinon, on peut toujours jouer avec les ini_get/ini_set, mais je pense que c'est pas terrible niveau charge :/ :

ini_set('include_path', sprintf('%s:%s', ini_get('include_path'), '/usr/var/vhosts/projet/exemple.tuxfamily.org/php-include/'));

edit: grillé :(
je conaissais pas cette histoire de config perso, je prends note :)

Re: [OK] PHP - Bibliothèques et autres frameworks

Oui mais tout ça je sais bien, mais sur TuxFamily il n'y a pas de vhost, le virtual hosting est fait autrement.

Le but serait d'avoir une configuration de php qui soit dynamique en fonction du site web demandé, et donc de l'environement qui est transmis a php (dispo dans le tableau Environment de phpinfo(); ).

Il faut juste savoir comment inclure des variables d'environement dans le php.ini, rien de plus, du moins commencer par chercher si c'est possible.

Sylvain

Re: [OK] PHP - Bibliothèques et autres frameworks

fvpat wrote:

Effectivement, on a la possibilité en utilisant la directive apache php_value de modifier des valeurs php

Sur TuxFamily, t'es sûr ?


fvpat wrote:

D'ailleurs tu peux également te créer un php.ini dans un répertoire (par exemple config) de ton site web et, dans un fichier .htaccess, tu utilises la directive SetEnv PHPRC (je l'utilise pour magic_quotes_gpc).

Tu le fais sur TuxFamily aussi ?


Théoriquement avec le safe mode ainsi que le php en CGI tu ne peux faire ça, mais si ça marche cela permettra de compléter la FAQ à ce sujet :)

Re: [OK] PHP - Bibliothèques et autres frameworks

gradator wrote:
fvpat wrote:

Effectivement, on a la possibilité en utilisant la directive apache php_value de modifier des valeurs php

Sur TuxFamily, t'es sûr ?

Ca j'ai pas testé !

gradator wrote:
fvpat wrote:

D'ailleurs tu peux également te créer un php.ini dans un répertoire (par exemple config) de ton site web et, dans un fichier .htaccess, tu utilises la directive SetEnv PHPRC (je l'utilise pour magic_quotes_gpc).

Tu le fais sur TuxFamily aussi ?

Je viens d'essayer pour un site web avec joomla. Mais ça marche mal. Je comprends pas tout. Je suis régulièrement déconnecté de mon interface d'admin joomla. A creuser...

gradator wrote:

Théoriquement avec le safe mode ainsi que le php en CGI tu ne peux faire ça, mais si ça marche cela permettra de compléter la FAQ à ce sujet :)

C'est vrai qu'avec le php en cgi cela ne devrait pas marcher. Au fait pourquoi php en mode cgi et pas en module apache ?

Re: [OK] PHP - Bibliothèques et autres frameworks

gplanchat wrote:

Je ne sais pas comment vous gérez vos vhosts (avec une db, je suppose), mais dans un fichier vhost.conf, ca ressemblerait à:

Pas de vhost, c'est l'organisation sur le système de fichier qui fait le virtual hosting :)
  http://packages.debian.org/unstable/web … hash-alias


gplanchat wrote:

sinon, on peut toujours jouer avec les ini_get/ini_set, mais je pense que c'est pas terrible niveau charge :/ :
<split>
je connaissais pas cette histoire de config perso, je prends note :)

Normalement tu ne peux pas les utiliser, ça viendra peut être un jour ;)


La seule vraie solution c'est que la conf soit dynamique en fonction du site demandé.

Re: [OK] PHP - Bibliothèques et autres frameworks

fvpat wrote:
gradator wrote:
fvpat wrote:

Effectivement, on a la possibilité en utilisant la directive apache php_value de modifier des valeurs php

Sur TuxFamily, t'es sûr ?

Ca j'ai pas testé !

Je comprend mieux :)


fvpat wrote:
gradator wrote:
fvpat wrote:

D'ailleurs tu peux également te créer un php.ini dans un répertoire (par exemple config) de ton site web et, dans un fichier .htaccess, tu utilises la directive SetEnv PHPRC (je l'utilise pour magic_quotes_gpc).

Tu le fais sur TuxFamily aussi ?

Je viens d'essayer pour un site web avec joomla. Mais ça marche mal. Je comprends pas tout. Je suis régulièrement déconnecté de mon interface d'admin joomla. A creuser...

Normalement ça ne peut pas marcher non plus.


fvpat wrote:
gradator wrote:

Théoriquement avec le safe mode ainsi que le php en CGI tu ne peux faire ça, mais si ça marche cela permettra de compléter la FAQ à ce sujet :)

C'est vrai qu'avec le php en cgi cela ne devrait pas marcher. Au fait pourquoi php en mode cgi et pas en module apache ?

Pour que les scripts soit executés avec vos UID et GID, comme ça vous vous marchez pas dessus.

Re: [OK] PHP - Bibliothèques et autres frameworks

et avec ca :

include_path = ".:/usr/share/php:/usr/share/pear:"${DOCUMENT_ROOT_HASH}"/php-include"

Re: [OK] PHP - Bibliothèques et autres frameworks

gradator wrote:
gplanchat wrote:

sinon, on peut toujours jouer avec les ini_get/ini_set, mais je pense que c'est pas terrible niveau charge :/ :
<split>
je connaissais pas cette histoire de config perso, je prends note :)

Normallement tu ne peux pas les utiliser, ça viendra peut être un jour ;)

ca marche plutôt bien pour des fonctions désactivées :P :

http://seadragon.tuxfamily.org/testIni.php

Re: [OK] PHP - Bibliothèques et autres frameworks

gplanchat wrote:

ca marche plutôt bien pour des fonctions désactivées :P :

Bah elles sont pas desactivées... mais tu ne peux pas changer toutes les valeurs.

Re: [OK] PHP - Bibliothèques et autres frameworks

gplanchat wrote:

et avec ca :

include_path = ".:/usr/share/php:/usr/share/pear:"${DOCUMENT_ROOT_HASH}"/php-include"

Ya une source quelconque ou c'est juste une idée en l'air ? :)

Re: [OK] PHP - Bibliothèques et autres frameworks

ca vient de la doc PHP, en rpincipe, il n'y a que les directives du php.ini qui passent, mais on sait jamais :

Depuis PHP 5.1.0, il est possible de se référer à des variables .ini depuis des fichiers .ini. Par exemple : open_basedir = ${open_basedir} ":/new/dir".

http://fr.php.net/manual/fr/configuration.php