Как заставить PEAR работать на XAMPP (стек Apache/MySQL в Windows)
Я пытаюсь установить 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
- PEAR находится в
C:\xampplite\php\pear
phpinfo()
показывает мне, что путь включения.;\xampplite\php\pear
Что я делаю неправильно? Почему папка PEAR не включена?
7 ответов
Вам нужно исправить include_path
системная переменная, указывающая на правильное местоположение.
Чтобы исправить это, отредактируйте php.ini
файл. В этом файле вы найдете строку "include_path = ...
Msgstr "(Вы можете узнать, где находится php.ini, запустив phpinfo()
на странице.) Исправьте часть строки, которая говорит: "\xampplite\php\pear\PEAR
" читать "C:\xampplite\php\pear
Msgstr "Обязательно оставляйте точки с запятой до и / или после строки на месте.
Перезапустите PHP, и у вас все получится. Чтобы перезапустить PHP в IIS, вы можете перезапустить пул приложений, назначенный вашему сайту, или, что еще лучше, перезапустить IIS все вместе.
Если вы используете переносную установку 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
вам нужно заменить ":" на фактическую букву диска, на котором в данный момент работает ваш портативный диск. К сожалению, это нужно делать каждый раз, когда меняется буква диска, но он установил нужный мне модуль.
Сначала я попробовал все остальные ответы, но ни один из них, похоже, не работал, поэтому я статически установил путь груши в конфигурационном файле груши
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
Я исправил
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';
КАК в точке 1, ваш путь PEAR - c:\xampplite\php\pear\
Тем не менее, ваш путь указывает на \xampplite\php\pear\PEAR
Поместив два над другим, вы ясно увидите, что одно слишком длинное:
C: \ xampplite \ PHP \ груша \
\ Xampplite \ PHP \ груша \ PEAR
Ваш включаемый путь настроен на то, чтобы проникнуть на одну грушу слишком глубоко в грушевое дерево. Подпапка PEAR папки pear включает компонент PEAR. Вам нужно настроить путь включения на один уровень вверх.
(кстати, вам не нужен c: ваш путь в порядке, слишком глубокий)
В Windows используйте оболочку Xampp (на панели управления XAMPP есть кнопка "Shell")
затем
cd php\pear
перейти к 'C:\xampp\php\pear'
затем введите
pear
Попробуйте добавить букву диска:
include_path='.;c:\xampplite\php\pear\PEAR'
также убедитесь, что PEAR.php действительно есть, он может быть в \php\:
include_path='.;c:\xampplite\php'
Другая проблема для такого рода проблем: избегайте запуска pear внутри оболочки Unix (например, Git Bash или Cygwin) на компьютере с Windows. У меня была та же проблема, и предложенное выше исправление пути не помогло. Переключился на оболочку Windows, и команда pear работает как положено.