Как заставить PEAR работать на XAMPP (стек Apache / MySQL в Windows)

StackOverflow https://stackoverflow.com/questions/62658

  •  09-06-2019
  •  | 
  •  

Вопрос

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

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

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

Фатальная ошибка:require_once() [функция.require]:Требуется неудачное открытие 'PEAR.php' (include_path='.;\xampplite\php\pear\груша') в C:\xampplite\htdocs\laconica\lib\common.php в строке 31

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

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

Это было полезно?

Решение

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

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

Перезапустите 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

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

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

C:\xampp\php\pear\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, ваш PEAR-путь равен c:\xampplite\php\pear\

Однако ваш путь указывает на \xampplite\php\pear\ГРУША

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

c:\xampplite\php\pear\

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

Ваш путь включения настроен так, чтобы загнать одну ГРУШУ слишком глубоко в грушевое дерево.Подпапка PEAR папки 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 работает так, как ожидалось.

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

тогда

cd php\pear

к к 'C:\xampp\php\pear'

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

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';

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top