La plupart des hébergeurs offrant des solutions basées sur PHP fournissent une installation de PEAR. Toutefois, il peut s'avérer utile d'avoir une copie locale de PEAR afin d'utiliser des paquets non fournis par votre hébergeur. Une installation locale de PEAR est possible via telnet/ssh ou FTP.
Pour installer une copie locale de PEAR via ssh, vous pouvez utiliser cette commande :
PEAR 1.3.5 et précédent
$ pear -s -c ~/.pearrc -d doc_dir=~/pear/docs \ -d ext_dir=~/pear/ext -d php_dir=~/pear/lib \ -d data_dir=~/pear/data -d test_dir=~/pear/tests \ -d cache_dir=~/pear/cache -d bin_dir=~/pear/bin |
PEAR 1.4+
$ pear config-create /home/user/pear .pearrc |
Cela va créer un fichier de configuration local appelé .pearrc dans votre répertoire racine local. local.
Si vous ajoutez ~/pear/bin à votre path dans votre fichier de configuration shell .bashrc (ou quel que soit son nom) et lancez la commande :
PEAR 1.3.2 et précédent
$ pear -c ~/.pearrc install Archive_Tar PEAR Console_Getopt XML_RPC |
PEAR 1.3.3+
$ pear install -o PEAR |
Ceci va créer une structure basée sur les dossiers dans un sous dossier de votre dossier utilisateur, nommé pear qui contiendra tous les paquets vous aurez installé. Votre version locale de PEAR doit se substituer la version du système. Pour utiliser les fichiers que vous venez d'installer, il vous faudra soit modifier votre include_path PHP dans tous les codes qui utilisent PEAR :
<?php ini_set('include_path', '~/pear/lib' . PATH_SEPARATOR . ini_get('include_path')); // Depuis PHP 4.3.0, vous pouvez utiliser ce qui suit, // qui est tout spécialement utile pour les hôtes partagés : set_include_path('~/pear/lib' . PATH_SEPARATOR . get_include_path()); ?> |
Soit utiliser un fichier apache .htaccess utilisant php_value.
Il y a deux façon d'installer une copie locale de PEAR via FTP : l'ancienne, la plus difficile, et la nouvelle, la plus facile. La nouvelle, nécessite une mise à jour vers la version 1.4.3 ou plus récent de PEAR.
L'installation d'une copie locale de PEAR via FTP est devenue vraiement simple depuis 1.4.3+.
Un des calvaires des utilisateurs est d'essayer d'installer PEAR sur un hôte distant sans avoir d'accès shell. De ce fait, la seule solution est d'utiliser FTP, mais c'est un problème pour des paqets complexes qui tirent avantages des fonctionnalités de l'installeur.
Voici les séquences nécessiare pour que cela fonctionne :
Assurez-vous d'utiliser PHP 5.0 ou plus récent sur votre ordinateur local
Si vous voulez utiliser ftps, assurez-vous d'avoir activé l'extension openssl sur votre ordinateur local dans votre php.ini.
Si vous voulez utiliser sftp, assurez-vous d'avoir activé l'extension ssh2 sur votre ordinateur local dans votre php.ini.
Assurez-vous d'avoir une copie fonctionnelle de la version CLI de PEAR sur votre ordinateur local (la commande PEAR, non l'interface web)
Assurez-vous d'avoir les accès FTP sur l'hôte distant ainsi que l'accès en écriture via FTP. (L'utilisation de sftp ou de ftps est fortement recommandé pour des raisons de sécurité).
Notez le chemin complet vers votre dossier utilisateur
Créé un fichier de configuration personnalisé pour l'hôte local ainsi que pour l'hôte distant
Téléchargez le fichier de configuration distant sur l'hôte distant
En utilisant le fichier de configuration local, définissez la valeur de remote_config à l'emplacement du fichier de configuration sur l'hôte distant
Gérer vos paquets en utilisant les commandes remote-install, remote-uninstall, remote-upgrade et remote-upgrade-all.
1. Assurez-vous d'avoir une copie fonctionnelle de la version CLI de PEAR (la commande PEAR, non l'interface web)
Lisez les instructions d'installation.
2. Assurez-vous d'avoir un accès FTP sur l'hôte distant, ainsi qu'un accès en écriture via FTP
Si vous pouvez vous identifier en utilisant la commande ftp dans un prompt DOS ou depuis un shell Unix, vous avez un accès FTP.
Notez l'utilisateur et le mot de passe nécessaire à l'identification.
Le test d'accès en écriture est simple. Si vous pouvez télécharger un fichier vers l'hôte distant, vous avez un accès en écriture.
3. Notez le chemon complet vers votre dossier utilisateur
C'est simple. Télécharger ce script vers le dossier racine de votre hôte web pour connaître ce chemin :
<?php echo dirname(__FILE__); ?> |
Il doit ressembler à ceci : /home/username/htdocs ou /home/username/public_html. Lorsque vous vous identifiez avec FTP, si vous pouvez changer le dossier courant vers /home/username, c'est parfait.
4. créez un fichier de configuration personnalisé pour l'hôte local ainsi que pour l'hôte distant
C'est très simple. Voici comment le créer, sous Windows et sous Unix.
Windows d'abord :
Placez-vous dans un dossier pour y stocker la copie locale du code distant. Par exemple, C:\remote\pear. Depuis un prompt de commande, (cliquez sur Démarrer => Programmes et cherchez le prompt de commande), tapez :
C:\> mkdir remote C:\> cd remote C:\remote\> mkdir pear C:\remote\> cd pear C:\remote\pear> pear config-create -w C:\remote\pear remote.ini C:\remote\pear> pear config-create /home/username/pear .pearrc |
Sous Unix, suivez un processus similaire :
$ cd $ mkdir remote $ cd remote $ mkdir pear $ cd pear $ pear config-create /home/mylocaluser remote.conf $ pear config-create /home/username/pear .pearrc |
5. télécharger le fichier de configuration distant sur l'hôte distant
C'est simple ; sous les deux environnements, utilisez FTP pour télécharger .pearrc vers /home/username/pear/.pearrc
6. en utilisant le fichier de configuration local, définissez la vaeur de remote_config à l'emplacement du fichier de configuration sur l'hôte distant
Si vous décidez d'utiliser le protocole non sécurisé ftp (souvenez-vous : c'est une méthode non sécuritsée), alors, utilisez ftp:// en tant que flux. Si vous décidez d'utiliser ftps, utilisez ftps:// en tant que flux. Si vous décidez d'utiliser sftp, alors, utilisez ssh2.sftp en tant que flux.
Le chemin à utiliser pour la variable remote_config doit être un chemin complet, comme ceci :
ssh2.sftp://user:pass@myremotehost.com/home/username/.pearrc |
Si la connexion initiale échoue, essayez avec un chemin relatif, comme ceci :
ftps://user:pass@myremotehost.com/.pearrc |
Pour définir la valeur de la variable de configuration remote_config, utilisez cette synthaxe :
Sous Windows :
C:\remote\pear\> pear -c remote.ini config-set remote_config \ ftp://user:pass@myremotehost.com/.pearrc |
Sous Unix :
$ pear -c remote.conf config-set remote_config \ ftp://user:pass@myremotehost.com/.pearrc |
7. Gérer vos paquets en utilisant les commandes remote-install, remote-uninstall, remote-upgrade et remote-upgrade-all.
À partir de là, vous pouvez synchroniser les dépôts local et distant.
Comment cela fonctionne-t-il ? How does it work?
L'installeur installe les paquets en local, puis, utilise le flux ftp pour télécharger un copie de chaque fichier local sur l'hôte distant. Toutes les commandes affectant l'installation (install, uninstall, upgrade, upgrade-all) ont leurs équivalents distants (remote-install, remote-uninstall, remote-upgrade, remote-upgrade-all). L'option "remote_config" indique à l'installeur comment récupérer le fichier de configuration distant contenant les chemins absolus vers les emplacements d'installation des paquets.
Le fichier de configuration distant est utilisé pour toutes les tâches comme les remplacements. En d'autres mots, si un fichier demande à récupérer le chemin vers les fichiers de données, la directive de configuration data_dir, alors, il obtiendra le chemin sur l'hôte distant (/home/username/pear/data) plutôt que celui de la copie locale (C:\remote\pear\data). Notez queles paquets installés de cette façon ne fonctionneront pas sur l'ordinateur local et serviront comme copie de sauvegarde. En cas d'urgence, vous pouvez juste télécharger le contenu entier sur l'hôte distant en utilisant ftp ou scp.
Il est important de noter que quelques paquets s'installent différemment sous Windows et sous Unix. Assurez-vous si c'est le cas ou pas avant de commencer l'installation, ou assurez-vous que vos systèmes local et distant sont les mêmes. De plus, vos paquets locaux dépendent des extensions PHP. Pour s'assurer qu'ils sont disponibles sur le serveur distant, utilisez la sortie de la fonction phpinfo(); pour déterminer quelles sont les extensions disponibles.
Pour pouvoir installer une copie locale de PEAR via FTP, vous devez avoir un client FTP qui peut définir des permissions lors du téléchargement. Tout d'abord, créez un dossier qui ne se trouve PAS dans un espace accessible depuis le web, et nommez-le comme vous le voulez. Faîtes en sorte qu'il soit accessible en écriture par tous les utilisateurs (permissions 0777). Puis, téléchargez une copie de http://go-pear.org/ et sauvegardez-la en tant que go-pear.php. Téléchargez go-pear.php dans un sous dossier de l'espace publiement accessible de votre espace web. C'est une bonne idée de protéger par mot de passe le dossier contenant go-pear.php avec un fichier .htaccess.
Puis, exécutez le fichier go-pear.php avec votre navigateur. Si votre adresse web est http://www.example.com/, vous devez placer go-pear.php dans public_html/install/go-pear.php, et http://www.example.com/ devra aller dans le répertoire public_html/, puis, naviguez jusqu'à http://www.example.com/install/go-pear.php. Suivez les instructions d'installation. Lorsque l'on vous demande où installer PEAR, choisissez le dossier que vous avez créé de tel sorte à ce qu'il soit accessible en lecture et écriutre par tous les utilisateurs. Vous devez connaître l'emplacement de la version CLI de PHP. Pour le trouver, naviguez sur ce script et copiez l'affichage :
<?php echo `which php`; // si cela ne marche pas, essayez echo PHP_BIN; ?> |
Une fois PEAR installé, vous pouvez utiliser l'installeur web pour installer et mettre à jour les paquets tout comme vous le feriez avec une autre installatio de PEAR. Pour utiliser les fichiers, vous devez définir le chemin d'inclusion dans les scripts de votre site web.
<?php ini_set('include_path', '~/pear/lib' . PATH_SEPARATOR . ini_get('include_path')); // Depuis PHP 4.3.0, vous pouvez utiliser ce qui suit, // qui est particulièrement utile sur les hôtes partagés : set_include_path('~/pear/lib' . PATH_SEPARATOR . get_include_path()); ?> |
Précédent | Sommaire | Suivant |
Installation par ligne de commande | Niveau supérieur | Installation manuelle |