2009-03-10 9 views
10

Tôi đang cố gắng cài đặt PEAR để có thể dễ dàng cài đặt PHPUnit. Tôi muốn thiết lập một môi trường phát triển Mac, Apache, MySQL, PHP, PHPUnit để tôi có thể thử nghiệm cục bộ. Tôi đã có Apach, MySQL và PHP làm việc. Bây giờ tất cả những gì tôi cần là PHPUnit, có nghĩa là tôi cần PEAR để cài đặt nó.Cách thiết lập PEAR trên Mac OS X 10.5 Leopard

Tôi đã tìm kiếm trên tất cả, và có một vài biến thể của "hướng dẫn" về cách cài đặt PEAR trên Mac OS X 10.5. Tuy nhiên, tôi dường như không thể khiến bất kỳ ai trong số họ làm việc! Có ai đã thành công với điều này không? Tôi không hoàn toàn tự tin rằng tôi có mọi thứ được thiết lập, vì vậy nếu bạn có thể bao gồm "mặc định" Mac OS X 10.5 bao gồm đường dẫn hoặc giải thích đơn giản về mọi thứ nên đi, tôi sẽ đánh giá cao nó.

Sau this hướng dẫn tôi làm như sau:

curl http://pear.php.net/go-pear > go-pear.php 
sudo php -q go-pear.php 

Tôi nhấn Enter cho đến khi tôi nhận được một danh sách với 7 bao gồm đường dẫn:

1. Installation prefix ($prefix) : /Users/andrew 
2. Temporary files directory  : $prefix/temp 
3. Binaries directory   : $prefix/bin 
4. PHP code directory ($php_dir) : $prefix/PEAR 
5. Documentation base directory : $php_dir/docs 
6. Data base directory   : $php_dir/data 
7. Tests base directory   : $php_dir/tests 

tôi thay đổi Installation prefix/usr/local, nhấn Enter để tiếp tục, hãy nhập Y cũng để cài đặt PEAR_Frontend_Web-beta, PEAR_Frontend_Gtk2, MDB2. Cuối cùng, mọi thứ đã được cài đặt.

Tiếp ...

Trên thử đầu tiên, tôi nghĩ rằng include_path được nhận xét ra của file php.ini, nhưng kể từ khi tôi đã thay đổi dòng này, và đây không phải là lần đầu tiên tôi đã cố gắng cài đặt, tôi nhận được thông báo sau:

WARNING! The include_path defined in the currently used php.ini does not 
contain the PEAR PHP directory you just specified: 
</usr/local/PEAR> 
If the specified directory is also not in the include_path used by 
your scripts, you will have problems getting any PEAR packages working. 

Would you like to alter php.ini </private/etc/php.ini>? [Y/n] : 

tôi gõ Y và để lê tự động cập nhật của tôi bao gồm đường dẫn:

php.ini </private/etc/php.ini> include_path updated. 

Current include path   : .:/usr/share/pear 
Configured directory   : /usr/local/PEAR 
Currently used php.ini (guess) : /private/etc/php.ini 

tôi nhấn ent er tiếp tục, và nhận được thông báo sau:

The 'pear' command is now at your service at /usr/local/bin/pear 

** The 'pear' command is not currently in your PATH, so you need to 
** use '/usr/local/bin/pear' until you have added 
** '/usr/local/bin' to your PATH environment variable. 

Run it without parameters to see the available actions, try 'pear list' 
to see what packages are installed, or 'pear help' for help. 

For more information about PEAR, see: 

    http://pear.php.net/faq.php 
    http://pear.php.net/manual/ 

Thanks for using go-pear! 

PHP Warning: rmdir(/usr/local/temp): Not a directory in /Users/andrew/go-pear.php on line 1237 

Warning: rmdir(/usr/local/temp): Not a directory in /Users/andrew/go-pear.php on line 1237 

Cập nhật: Tôi nghĩ rằng tôi biết lý do tại sao hai cảnh báo cuối cùng này đã đưa ra. Trước đây, tôi đã cố gắng khắc phục vấn đề thư mục tạm thời bằng cách tạo liên kết tượng trưng đến/tmp nhưng nếu tôi hiểu chính xác, PEAR đang cố gắng tạo thư mục tạm thời để cài đặt, sau đó nó sẽ xóa nó khi nó kết thúc. Vì vậy, tôi không nên tạo liên kết tượng trưng này vì nó sẽ cố xóa thư mục tạm thời khi quá trình cài đặt kết thúc.

+0

Ông có thể mô tả các vấn đề bạn đang gặp? – hhafez

Trả lời

16

Có một vài điều có thể xảy ra ở đây, đây chỉ là những dự đoán.

Trước tiên, có hai bao gồm các đường dẫn bạn sẽ cần phải lo lắng. Đầu tiên là đường dẫn PHP của bạn. Thư viện PEAR (chủ yếu) chỉ là mã PHP, được đóng gói đặc biệt. Khi bạn cài đặt một mô-đun PEAR bạn đang tải xuống tất cả mã PHP cần thiết cho thư viện đó và bất kỳ thư viện PEAR nào khác mà thư viện bạn đang cài đặt dựa vào (xin lỗi về câu đó, nhưng tôi không chắc chắn có cách nào tốt hơn để nói cái đó). Điều này bao gồm đường dẫn được thiết lập trong tập tin php.ini của bạn (một tập tin cho php dòng lệnh của bạn, một cho yoru web php máy chủ, thường cùng một tập tin).

Đường dẫn thứ hai bao gồm bạn sẽ cần phải lo lắng về là đường dẫn UNIX/shell của bạn. Đây là đường dẫn mà máy tính của bạn sẽ tìm kiếm các lệnh khi bạn nhập một lệnh từ một thiết bị đầu cuối. Lệnh 'lê' là lệnh dòng lệnh.

Vì vậy, chúng ta cần phải đảm bảo rằng

  1. Các tập tin php.ini cho trang web của bạn có thư mục PEAR trong của nó bao gồm đường dẫn
  2. Các tập tin php.ini cho lệnh ứng dụng dòng php của bạn có thư mục PEAR trong của nó bao gồm đường dẫn
  3. ứng dụng vỏ của bạn (thiết bị đầu cuối, khả năng BASH trong bạn đang ở trên OS X) có thư mục PEAR trong đường dẫn bao gồm nó

vì vậy, đối với số 1, đặt một trang PHP trên y máy chủ của chúng tôi bao gồm chức năng gọi

phpinfo(); 

Điều này sẽ liệt kê một loạt thông tin về máy chủ của bạn. Hãy tìm vị trí của php.ini. Mở tệp này trong trình soạn thảo văn bản, tìm biến include_path và thêm đường dẫn vào thư mục PEAR của bạn (không xóa các đường dẫn khác, chỉ cần thêm đường dẫn của bạn).

Đối số 2, chạy sau từ dòng lệnh của bạn

php -r "phpinfo();" | grep '.ini' 

Một loạt các dòng sẽ in ra, hãy tìm một mà đọc cái gì đó như "Configuration File Loaded". Mở tệp này trong trình soạn thảo văn bản, tìm biến include_path và thêm đường dẫn vào thư mục PEAR của bạn (không xóa các đường dẫn khác, chỉ cần thêm đường dẫn của bạn).

Cuối cùng, và đây là những gì tôi nghĩ rằng vấn đề của bạn là, chúng tôi cần đảm bảo rằng lệnh dòng lệnh lê nằm trong đường dẫn shell/bash của bạn. Đó là những gì lỗi này đề cập đến

** The 'pear' command is not currently in your PATH, so you need to 

Nên có tệp trong thư mục chính có tên '.bash_profile'. Đó là một tệp ẩn, vì vậy nó sẽ không hiển thị trong Trình tìm kiếm. Mở nó bằng trình soạn thảo văn bản. Nếu bạn gặp sự cố vì đây là tệp ẩn, hãy sử dụng trình chỉnh sửa dòng lệnh pico. Ctrl-X sẽ lưu từ pico

cd ~ 
pico .bash_profile 

Tệp này được thực thi bởi vỏ của bạn mỗi lần bạn mở cửa sổ đầu cuối. Chúng ta sẽ thêm/usr/local/bin vào PATH của bạn, có nghĩa là khi bạn cố gắng chạy một lệnh, máy tính yoru sẽ tìm kiếm lệnh trong thư mục này. Thêm dòng sau vào dưới cùng của .bash_profile

export PATH=/usr/local/bin:$PATH 

Đây là, nhiều hơn hoặc ít hơn, equivilant vào mã PHP sau

$PATH = '/usr/local/bin:'.$PATH 

Bạn đang thêm/usr/local/bin là người đầu tiên vị trí được phân cách bằng dấu hai chấm để tìm lệnh và sau đó thêm phần còn lại của đường dẫn hiện có vào nó. Một khi bạn đã thêm dòng đó, đóng terminal của bạn, mở lại nó, và sau đó gõ

pear 

này sẽ cung cấp cho bạn một danh sách các lệnh lê hợp lệ, nhưng quan trọng hơn sẽ cho bạn biết quả lê là trong đường dẫn của bạn .

Chúc may mắn!

+0

Tôi nhận được "lệnh không tìm thấy". Tôi đã bỏ qua một bước? – Andrew

+0

Điều gì sẽ xảy ra khi bạn gõ '/ usr/local/bin/pear'? –

+0

Nó sẽ là tuyệt vời nếu bạn có thể thêm cú pháp include.path php.ini của bạn. Tôi đã nhận được phân loại này làm việc, nhưng vẫn còn có một số vấn đề với bao gồm phá vỡ. –

2

Tôi đã tìm ra. Bạn "CÓ" chạy quả lê.php tại nơi bạn muốn lê cài đặt, do đó bạn cần phải chạy nó dưới/usr/local nếu bạn muốn lê nhị phân phải được cài đặt dưới/usr/local/bin

:-)

0

người dùng "bryan kennedy" (ở trên) muốn biết cú pháp cho thay đổi "include_path" cần thiết trong "php.ini"

(Tôi đã gặp sự cố tương tự với OP và tôi vừa khắc phục sự cố với sự trợ giúp của bài đăng này.)

thay đổi đối với php.ini sẽ trông giống như ...

include_path=".:/path_to_pear_dir/PEAR" 

đây là cách có vẻ khi bạn cho phép "đi-pear.php" để thực hiện thay đổi ....

;***** Added by go-pear 
include_path=".:/usr/local/bin/PEAR" 
;*****