it-swarm-vi.tech

Bắt PEAR để hoạt động trên XAMPP (ngăn xếp Apache/MySQL trên Windows)

Tôi đang cố gắng cài đặt Laconica , một ứng dụng Micro nguồn mở trên máy chủ phát triển Windows của tôi bằng XAMPP theo hướng dẫn được cung cấp .

Trang web không thể tìm thấy PEAR và đưa ra các lỗi dưới đây:

Cảnh báo: allow_once (PEAR.php) [function.require-once]: không thể mở luồng: Không có tệp hoặc thư mục như vậy trong C:\xampplite\htdocs\laconica\lib\common.php trên dòng 31

Lỗi nghiêm trọng: Yêu cầu php trên dòng 31

  1. PEAR nằm trong C:\xampplite\php\pear
  2. phpinfo() cho tôi thấy rằng đường dẫn bao gồm là .;\xampplite\php\pear

Tôi đang làm gì sai? Tại sao không bao gồm thư mục PEAR?

9
Donnie Thomas

Bạn cần sửa biến hệ thống include_path của mình để trỏ đến đúng vị trí. 

Để sửa lỗi, hãy chỉnh sửa tệp php.ini. Trong tệp đó, bạn sẽ tìm thấy một dòng có nội dung "include_path = ...". (Bạn có thể tìm hiểu vị trí của php.ini bằng cách chạy phpinfo() trên một trang.) Khắc phục phần của dòng có nội dung "\xampplite\php\pear\PEAR" để đọc "C:\xampplite\php\pear". Hãy chắc chắn để lại dấu chấm phẩy trước và/hoặc sau dòng tại chỗ.

Khởi động lại PHP và bạn nên đi. Để khởi động lại PHP in IIS bạn có thể khởi động lại nhóm ứng dụng được gán cho trang web của mình hoặc tốt hơn là khởi động lại IIS tất cả cùng nhau.

21
user7075

Nếu bạn đang sử dụng cài đặt XAMPP di động và Windows 7, và như tôi có phiên bản sau khi họ gỡ XAMPP Shell khỏi bảng điều khiển, không có câu trả lời nào được đề xuất ở đây sẽ giúp bạn rất nhiều vì các gói sẽ không cài đặt.

Vấn đề là với tập tin cấu hình. Tôi tìm thấy các cài đặt chính xác sau rất nhiều thử nghiệm và lỗi.

Chỉ cần kéo lên một cửa sổ lệnh trong thư mục\xampp\php và chạy

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

bạn sẽ muốn thay thế ':' bằng ký tự ổ đĩa thực tế mà ổ đĩa di động của bạn đang chạy vào lúc này. Thật không may, điều này cần phải được thực hiện bất cứ khi nào ký tự ổ đĩa này thay đổi, nhưng nó đã nhận được mô-đun tôi cần cài đặt.

8
Reid Johnson

Tôi đã thử tất cả các câu trả lời khác trước nhưng dường như không có câu trả lời nào hoạt động nên tôi đặt đường dẫn lê tĩnh trong tệp cấu hình quả lê

C:\xampp\php\lê\Config.php

tìm mã này:

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

và chỉ cần thay thế nó bằng cái này:

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

Tôi đã khởi động lại Apache và sử dụng lệnh:

pear config-all 

đảm bảo tất cả các đường dẫn không còn bắt đầu với C:\php\pear

4
Alex Rapso

NHƯ mỗi điểm 1, đường dẫn PEAR của bạn là c:\xampplite\php\pear \

Tuy nhiên, đường dẫn của bạn đang trỏ đến\xampplite\php\pear\PEAR

Đặt hai cái này lên trên cái kia bạn có thể thấy rõ một cái quá dài:

c:\xampplite\php\lê \

\ xampplite\php\lê\PEAR

Đường dẫn bao gồm của bạn được đặt để đi một PEAR quá sâu vào cây lê. Thư mục con PEAR của thư mục lê bao gồm thành phần PEAR. Bạn cần điều chỉnh đường dẫn bao gồm lên một cấp.

(bạn không cần c: nhân tiện, đường đi của bạn vẫn ổn, chỉ là quá sâu)

1
THEMike

Một vấn đề khác về loại vấn đề này: tránh chạy lê trong Unix Shell (ví dụ: Git Bash hoặc Cygwin) trên máy Windows. Tôi đã có cùng một vấn đề và cách khắc phục đường dẫn được đề xuất ở trên không giúp được gì. Chuyển sang Windows Shell và lệnh lê hoạt động như mong đợi.

0
bluestraggler

Tôi sửa rồi

avast xóa server.php của bạn trong thư mục của bạn để vô hiệu hóa phần mềm chống vi-rút

kiểm tra tệp (server.php) trên thư mục laravel của bạn

máy chủ.php

<?php

/**
 * Laravel - A PHP Framework For Web Artisans
 *
 * @package  Laravel
 * @author   Taylor Otwell <[email protected]>
 */

$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
Musab ibnu Siraj

Hãy thử thêm ký tự ổ đĩa:

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

cũng xác minh rằng PEAR.php thực sự ở đó, nó có thể nằm trong\php \

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

Trên Windows sử dụng Xampp Shell (có nút 'Shell' trong bảng điều khiển XAMPP của bạn)

sau đó

cd php\pear

để đi đến 'C:\xampp\php\lê'

sau đó gõ

pear
0
mpalencia