Как заставить PEAR работать на XAMPP (стек Apache / MySQL в Windows) - PullRequest
9 голосов
/ 15 сентября 2008

Я пытаюсь установить Laconica , приложение микроблогов с открытым исходным кодом на моем сервере разработки Windows, используя XAMPP в соответствии с предоставленными инструкциями .

Веб-сайт не может найти PEAR и выдает следующие ошибки:

Предупреждение: require_once (PEAR.php) [function.require-Once]: не удалось открыть поток: нет такого файла или каталога в C: \ xampplite \ htdocs \ laconica \ lib \ common.php в строке 31

Неустранимая ошибка: require_once () [function.require]: Не удалось открыть обязательный файл 'PEAR.php' (include_path = '.; \ Xampplite \ php \ pear \ PEAR') в C: \ xampplite \ htdocs \ laconica \ lib \ common.php в строке 31

  1. Груша находится в C:\xampplite\php\pear
  2. phpinfo() показывает мне, что путь включения равен .;\xampplite\php\pear

Что я делаю не так? Почему папка PEAR не включена?

Ответы [ 8 ]

22 голосов
/ 15 сентября 2008

Вам необходимо исправить системную переменную include_path, чтобы она указывала на правильное местоположение.

Чтобы исправить это, отредактируйте файл php.ini. В этом файле вы найдете строку с надписью "include_path = ...". (Вы можете узнать, где находится php.ini, запустив phpinfo() на странице.) Исправьте часть строки, которая говорит "\xampplite\php\pear\PEAR", чтобы прочитать "C:\xampplite\php\pear". Обязательно оставляйте точки с запятой до и / или после строки.

Перезапустите PHP, и все будет хорошо. Чтобы перезапустить PHP в IIS, вы можете перезапустить пул приложений, назначенный вашему сайту, или, что еще лучше, перезапустить IIS все вместе.

8 голосов
/ 21 августа 2012

Если вы используете переносную установку XAMPP и Windows 7, и, как и у меня, есть версия после того, как они удалили оболочку XAMPP из панели управления, ни один из предложенных здесь ответов не принесет вам пользы, поскольку пакеты не будут установлены.

Проблема с файлом конфигурации. Я нашел правильные настройки после большого количества проб и ошибок.

Просто откройте командное окно в каталоге \ xampp \ php и запустите

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

вы захотите заменить «:» на фактическую букву диска, на котором в данный момент работает ваш портативный диск. К сожалению, это нужно делать каждый раз, когда меняется буква диска, но он действительно установил нужный мне модуль.

4 голосов
/ 03 июля 2015

Сначала я попробовал все остальные ответы, но ни один из них, похоже, не работал, поэтому я статически установил путь Pear в конфигурационном файле Pear *

C: \ XAMPP \ PHP \ груша \ config.php

найти этот код:

if (!defined('PEAR_INSTALL_DIR') || !PEAR_INSTALL_DIR) {
    $PEAR_INSTALL_DIR = PHP_LIBDIR . DIRECTORY_SEPARATOR . 'pear';
} 
else {
    $PEAR_INSTALL_DIR = PEAR_INSTALL_DIR;
}

и просто замените его следующим:

$PEAR_INSTALL_DIR = "C:\\xampp\\php\\pear";

Я перезапустил apache и использовал команду:

pear config-all 

убедитесь, что все пути больше не начинаются с C: \ php \ pear

1 голос
/ 15 сентября 2008

AS на точку 1, ваш путь PEAR - c: \ xampplite \ php \ pear \

Однако ваш путь указывает на \ xampplite \ php \ pear \ PEAR

Поместив два над другим, вы ясно увидите, что один слишком длинный:

C: \ xampplite \ PHP \ груша \

\ xampplite \ PHP \ груша \ PEAR

Ваш включаемый путь настроен так, чтобы одна Груша заходила слишком глубоко в грушевое дерево. Подпапка PEAR папки pear включает компонент PEAR. Вам нужно настроить путь включения на один уровень вверх.

(вам не нужна буква c: кстати, ваш путь в порядке, слишком глубокий)

0 голосов
/ 18 марта 2019

я исправил

avast удаляет ваш server.php в вашем каталоге поэтому отключите антивирус

проверьте файл (server.php) в папке laravel

server.php

<?php

/**
 * Laravel - A PHP Framework For Web Artisans
 *
 * @package  Laravel
 * @author   Taylor Otwell <taylor@laravel.com>
 */

$uri = urldecode(
    parse_url($_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';
0 голосов
/ 01 февраля 2017

В Windows используйте оболочку Xampp (на панели управления XAMPP есть кнопка «Оболочка»)

тогда

cd php\pear

чтобы перейти к 'C: \ xampp \ php \ pear'

затем введите

pear
0 голосов
/ 13 сентября 2013

Еще одна проблема для такого рода проблем: избегайте запуска pear внутри оболочки Unix (например, Git Bash или Cygwin) на компьютере с Windows. У меня была та же проблема, и предложенное выше исправление пути не помогло. Переключился на оболочку Windows, и команда pear работает как положено.

0 голосов
/ 15 сентября 2008

Попробуйте добавить букву диска:

include_path='.;c:\xampplite\php\pear\PEAR'

также убедитесь, что PEAR.php действительно существует, вместо этого он может находиться в \ php \:

include_path='.;c:\xampplite\php'
...