Comment faire fonctionner PEAR sur XAMPP (pile Apache / MySQL sous Windows)
Question
J'essaie d'installer Laconica , une application de micro-blogging open source sur mon serveur de développement Windows à l'aide de XAMPP Selon les instructions fournies .
Le site Web ne trouve pas PEAR et renvoie les erreurs ci-dessous:
Avertissement: require_once (PEAR.php) [function.require-once]: échec de l'ouverture du flux: Aucun fichier ni répertoire de ce type dans C: \ xampplite \ htdocs \ laconica \ lib \ common.php à la ligne 31
Erreur fatale: require_once () [function.require]: ouverture impossible: 'PEAR.php' (include_path = ';; \ xampplite \ php \ pear \ PEAR') dans C: \ xampplite \ htdocs \ laconica \ lib \ common.php à la ligne 31
- PEAR se trouve dans
C: \ xampplite \ php \ pear
-
phpinfo ()
me montre que le chemin d'inclusion est.; \ xampplite \ php \ pear
Qu'est-ce que je fais mal? Pourquoi le dossier PEAR n’est-il pas inclus?
La solution
Vous devez corriger votre variable système include_path
pour qu'elle pointe vers l'emplacement correct.
Pour résoudre ce problème, éditez le fichier php.ini
. Dans ce fichier, vous trouverez une ligne indiquant " include_path = ...
". (Vous pouvez connaître l'emplacement de php.ini en exécutant phpinfo ()
sur une page.) Corrigez la partie de la ligne qui dit: " \ xampplite \ php \ pear \ PEAR
" pour lire " C: \ xampplite \ php \ pear
". Assurez-vous de laisser les points-virgules avant et / ou après la ligne en place.
Redémarrez PHP et vous devriez être prêt à partir. Pour redémarrer PHP dans IIS, vous pouvez redémarrer le pool d'applications attribué à votre site ou, mieux encore, redémarrer IIS tous ensemble.
Autres conseils
Si vous utilisez l’installation portable XAMPP et Windows 7 et que, comme moi, ils ont la version après avoir retiré le shell XAMPP du panneau de configuration, aucune des réponses suggérées ne vous fera beaucoup de bien car les packages ne seront pas installés.
Le problème vient du fichier de configuration. J'ai trouvé les paramètres corrects après de nombreux essais et erreurs.
Ouvrez une fenêtre de commande dans le répertoire \ xampp \ php et exécutez
pear config-set doc_dir :\xampp\php\docs\PEAR
pear config-set cfg_dir :\xampp\php\cfg
pear config-set data_dir :\xampp\php\data\PEAR
pear config-set test_dir :\xampp\php\tests
pear config-set www_dir :\xampp\php\www
vous voudrez remplacer le ':' par la lettre de lecteur réelle sur laquelle votre lecteur portable est en cours d'exécution. Malheureusement, cela doit être fait chaque fois que cette lettre de lecteur change, mais le module dont j'avais besoin était installé.
J’ai essayé d’abord toutes les autres réponses, mais aucune d’entre elles ne semblant fonctionner, j’ai donc défini le chemin de poire de manière statique dans le fichier de configuration de poire
.C: \ xampp \ php \ pear \ Config.php
trouvez ce code:
if (!defined('PEAR_INSTALL_DIR') || !PEAR_INSTALL_DIR) {
$PEAR_INSTALL_DIR = PHP_LIBDIR . DIRECTORY_SEPARATOR . 'pear';
}
else {
$PEAR_INSTALL_DIR = PEAR_INSTALL_DIR;
}
et remplacez-le simplement par ceci:
$PEAR_INSTALL_DIR = "C:\\xampp\\php\\pear";
J'ai redémarré Apache et utilisé la commande suivante:
pear config-all
assurez-vous que tous les chemins ne commencent plus par C: \ php \ pear
Comme pour le point 1, votre chemin PEAR est c: \ xampplite \ php \ pear \
Cependant, votre chemin pointe vers \ xampplite \ php \ pear \ PEAR
En plaçant les deux l'un au-dessus de l'autre, vous voyez clairement que l'un est trop long:
c: \ xampplite \ php \ pear \
\ xampplite \ php \ pear \ PEAR
Votre chemin d’inclusion est configuré pour enfoncer une poire trop profondément dans le poirier. Le sous-dossier PEAR du dossier pear inclut le composant PEAR. Vous devez ajuster votre chemin d’inclusion jusqu’à un niveau.
(vous n'avez pas besoin du c: au fait, votre chemin est parfait tel quel, tout simplement trop profond)
Essayez d'ajouter la lettre de lecteur:
include_path='.;c:\xampplite\php\pear\PEAR'
vérifie également que PEAR.php est bien présent, il se peut qu'il se trouve dans \ php \ à la place:
include_path='.;c:\xampplite\php'
Autre problème de ce genre de problème: évitez de lancer pear dans un shell Unix (par exemple, Git Bash ou Cygwin) sur une machine Windows. J'ai eu le même problème et la solution proposée ci-dessus n'a pas aidé. Basculé vers un shell Windows, la commande pear fonctionne comme prévu.
Sous Windows, utilisez le shell Xampp (un bouton "Shell" apparaît dans votre panneau de configuration XAMPP)
.puis
cd php\pear
pour aller à 'C: \ xampp \ php \ pear'
puis tapez
pear
j'ai corrigé
avast supprime votre server.php dans votre répertoire alors désactivez l'antivirus
vérifiez le fichier (server.php) dans votre dossier laravel
server.php
<?php
/**
* Laravel - A PHP Framework For Web Artisans
*
* @package Laravel
* @author Taylor Otwell <taylor@laravel.com>
*/
$uri = urldecode(
parse_url( j'ai corrigé
avast supprime votre server.php dans votre répertoire
alors désactivez l'antivirus
vérifiez le fichier (server.php) dans votre dossier laravel
server.php
<*>
SERVER['REQUEST_URI'], PHP_URL_PATH)
);
// This file allows us to emulate Apache's "mod_rewrite" functionality from the
// built-in PHP web server. This provides a convenient way to test a Laravel
// application without having installed a "real" web server software here.
if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) {
return false;
}
require_once __DIR__.'/public/index.php';