Que signifie.: Dans php include_path?

10

J'essaie d'installer Zend sur une machine exécutant xampp. Le fichier d'aide de Zend dit que pour configurer les outils de ligne de commande, je dois m'assurer que le contenu du répertoire / library est placé dans mon répertoire spécifié php include_path.

Quand je regarde mon php.ini, include_path est commenté, mais la valeur ressemble à ceci:

; UNIX: "/path1:/path2"
;include_path = ".:/php/includes"

Où pointe exactement le chemin_include? Je suis assez nouveau sur Linux et je n'ai jamais vu.: Dans le cadre d'un chemin de fichier.

EmmyS
la source
2
Vous avez mentionné "une machine exécutant xampp". Vous voudrez peut-être le supprimer et installer plutôt lamp-server qui est un paquet dans Ubuntu
Marco Ceppi
1
Pourquoi? xampp fonctionne parfaitement bien.
EmmyS
2
Le méta-paquet lampe-serveur d' Ubuntu (tasksel → LAMP Server) est une distribution de la pile de lampes qui est conçue pour fonctionner particulièrement bien avec ubuntu . Vous pouvez bien sûr utiliser xampp - et cela fonctionnera très bien, mais la distribution (version) d'Ubuntu est recommandée (et requise si vous souhaitez utiliser le support d'entreprise canonique).
Stefano Palazzo

Réponses:

4

: est un séparateur dans la liste des répertoires.

. signifie le répertoire courant

Ainsi, lorsqu'un script php recherche un fichier include, il le recherchera dans le même répertoire que le fichier php et / php / includes.

misterben
la source
Donc, le chemin inclut actuellement deux répertoires - celui en cours (par lequel je suppose que vous voulez dire le répertoire qui contient réellement php.ini) et / php / includes? Où est / php / includes (en ce qui concerne ce chemin)? Dans le répertoire actuel? Ou ailleurs?
EmmyS
Presque, . est le répertoire courant relatif à chaque fichier php particulier, pas le php.ini. / php / includes est un chemin absolu, attendant un dossier 'php' de niveau supérieur dans votre système de fichiers (au même niveau que / usr, / etc)
misterben
7

.:est en fait juste .(puisque :c'est le mot-clé qui sépare plusieurs chemins), ce qui signifie que le dossier actuel dans lequel le script est exécuté est inclus dans le cadre du chemin d'inclusion. De cette façon, lorsque vous avez deux fichiers dans le même répertoire:

index.php
include-me.php

Vous pouvez inclure le second en PHP avec include('include-me.php');. Sans .être sur le chemin, vous ne pourriez pas le faire.

Donc, pour terminer l'installation comme mentionné, vous devez soit placer le contenu du /librarymême dossier dans lequel se trouve le script sur lequel vous travaillez - soit /php/includes(vous avez supprimé le ;fichier ini). Vous pouvez également créer un autre répertoire - comme /opt/Zend/libraryet ajouter /opt/Zend/libraryà votre instruction include path:include_path = ".:/php/includes:/opt/Zend/library"

Enfin - puisque vous exécutez Ubuntu, il est recommandé d'utiliser à la place la configuration LAMP d'Ubuntu (la plupart des documentations supposent que vous utilisez). Cela peut être installé en supprimant XAMPP et en effectuant sudo tasksel install lamp-serverqui installera Apache 2.2, MySQL, PHP 5.3 sur le système. Comme indiqué dans Quelle est la façon la plus simple de configurer une pile LAMP?

Marco Ceppi
la source
1
Je suis parfaitement satisfait de xampp. J'apprécie cependant les autres informations.
EmmyS
@EmmyS C'est bien: D - Je viens d'inclure ma réponse à votre commentaire "Pourquoi" dans ma réponse. Je veux juste m'assurer que vous êtes informé.
Marco Ceppi