سؤال

أحاول في النهاية تثبيت PEAR حتى أتمكن من تثبيت PHPUnit بسهولة.أرغب في إعداد بيئة تطوير Mac وApache وMySQL وPHP وPHPUnit حتى أتمكن من الاختبار محليًا.لدي بالفعل Apach وMySQL وPHP تعمل.الآن كل ما أحتاجه هو PHPUnit، مما يعني أنني بحاجة إلى PEAR لتثبيته.

لقد بحثت في كل مكان، وهناك بعض الاختلافات في "البرنامج التعليمي" حول كيفية تثبيت PEAR على نظام التشغيل Mac OS X 10.5.ومع ذلك، يبدو أنني لا أستطيع أن أجعل أيًا منهم يعمل!أي شخص لديه النجاح مع هذا؟لست واثقًا تمامًا من إعداد كل شيء كما ينبغي، لذا إذا كان بإمكانك تضمين مسارات تضمين نظام التشغيل Mac OS X 10.5 "الافتراضي"، أو شرحًا بسيطًا للمكان الذي يجب أن يذهب إليه كل شيء، سأكون ممتنًا لذلك.

التالي هذا البرنامج التعليمي أفعل ما يلي:

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

أضغط على زر الإدخال حتى أصل إلى قائمة تحتوي على 7 مسارات:

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

قمت بتغيير Installation prefix يكون /usr/local, ، اضغط على زر الإدخال للمتابعة، اكتب Y لتثبيت أيضا PEAR_Frontend_Web-beta, PEAR_Frontend_Gtk2, MDB2.في النهاية، تم تثبيت كل شيء.

التالي...

في المحاولة الأولى، على ما أعتقد include_path تم التعليق عليه من ملف php.ini، ولكن بما أنني قمت بالفعل بتغيير هذا السطر، وهذه ليست المرة الأولى التي أحاول فيها التثبيت، فقد ظهرت لي الرسالة التالية:

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] : 

انا اطبع Y والسماح للكمثرى بتحديث مسار التضمين الخاص بي تلقائيًا:

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

أضغط على زر الإدخال للمتابعة، وتظهر لي الرسالة التالية:

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

تحديث: أعتقد أنني أعرف سبب ظهور هذين التحذيرين الأخيرين.في السابق، حاولت إصلاح مشكلة الدليل المؤقت عن طريق إنشاء رابط رمزي إلى /tmp ولكن إذا فهمت بشكل صحيح، فإن PEAR يحاول إنشاء دليل مؤقت خاص به للتثبيت، ثم سيقوم بحذفه عند الانتهاء.لذلك لم يكن من المفترض أن أقوم بإنشاء هذا الرابط الرمزي لأنه سيحاول حذف الدليل المؤقت عند انتهاء التثبيت.

هل كانت مفيدة؟

المحلول

هناك بعض الأشياء التي يمكن أن تسير بشكل خاطئ هنا، هذه مجرد تخمينات.

أولا، هناك اثنين قم بتضمين المسارات التي يجب أن تقلق بشأنها.الأول هو مسار تضمين PHP الخاص بك.مكتبات PEAR هي (في الغالب) مجرد كود PHP، تم تجميعها خصيصًا.عند تثبيت وحدة PEAR، فإنك تقوم بتنزيل جميع أكواد PHP اللازمة لتلك المكتبة، وتعتمد عليها أي مكتبات PEAR أخرى تقوم بتثبيتها (آسف بشأن هذه الجملة، لكنني لست متأكدًا من وجود طريقة أفضل للقول الذي - التي).يتم تعيين مسار التضمين هذا في ملفات php.ini الخاصة بك (ملف واحد لسطر الأوامر الخاص بك php، وآخر لخادم الويب الخاص بك php؛في كثير من الأحيان نفس الملف).

مسار التضمين الثاني الذي يجب أن تقلق بشأنه هو مسار تضمين UNIX/Shell الخاص بك.هذا هو المسار الذي سيبحث فيه جهاز الكمبيوتر الخاص بك عن الأوامر عندما تقوم بإدخال أمر من الوحدة الطرفية.الأمر "الكمثرى" هو أمر سطر الأوامر.

لذا، علينا أن نتأكد من ذلك

  1. يحتوي ملف php.ini الخاص بموقعك على دليل PEAR في مسار التضمين الخاص به
  2. يحتوي ملف php.ini الخاص بتطبيق PHP لسطر الأوامر على دليل PEAR في مسار التضمين الخاص به
  3. يحتوي تطبيق Shell الخاص بك (المحطة الطرفية، على الأرجح BASH في نظام التشغيل OS X) على دليل PEAR في مسار التضمين الخاص به

لذا، بالنسبة للرقم 1، ضع صفحة PHP على الخادم الخاص بك تتضمن استدعاء الوظيفة

phpinfo();

سيسرد هذا مجموعة من المعلومات حول الخادم الخاص بك.ابحث عن موقع php.ini.افتح هذا الملف في محرر نصوص، وابحث عن المتغير include_path، وأضف المسار إلى دليل PEAR (لا تقم بإزالة المسارات الأخرى، فقط قم بإضافة المسار الخاص بك).

بالنسبة للرقم 2، قم بتشغيل ما يلي من سطر الأوامر الخاص بك

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

ستتم طباعة مجموعة من الأسطر، ابحث عن السطر الذي يقرأ شيئًا مثل "ملف التكوين المحمل".افتح هذا الملف في محرر نصوص، وابحث عن المتغير include_path، وأضف المسار إلى دليل PEAR (لا تقم بإزالة المسارات الأخرى، فقط قم بإضافة المسار الخاص بك).

أخيرًا، وهذا هو ما أعتقد أن مشكلتك هي أننا نحتاج إلى التأكد من أن أمر سطر أوامر الكمثرى موجود في مسار Shell/bash الخاص بك.وهذا ما يشير إليه هذا الخطأ

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

يجب أن يكون هناك ملف في دليلك الرئيسي باسم ".bash_profile".إنه ملف مخفي، لذا لن يظهر في Finder.افتحه باستخدام محرر النصوص.إذا كنت تواجه مشكلة لأن هذا ملف مخفي، فاستخدم محرر سطر الأوامر pico.Ctrl-X سيحفظ من بيكو

cd ~
pico .bash_profile

يتم تنفيذ هذا الملف بواسطة الصدفة الخاصة بك في كل مرة تفتح فيها نافذة طرفية.سنقوم بإضافة /usr/local/bin إلى المسار الخاص بك، مما يعني أنه عندما تحاول تشغيل أمر ما، فإن جهاز الكمبيوتر الخاص بك سيبحث عن الأمر في هذا المجلد.أضف السطر التالي إلى أسفل .bash_profile

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

هذا يعادل إلى حد ما كود PHP التالي

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

أنت تقوم بإضافة /usr/local/bin كأول مكان محدد بنقطتين للبحث عن الأمر، ثم تضيف بقية المسار الموجود إليه.بمجرد إضافة هذا السطر، أغلق جهازك، وأعد فتحه، ثم اكتب

pear

من المفترض أن يمنحك هذا قائمة بأوامر Pear الصالحة، ولكن الأهم من ذلك أنه سيعلمك بوجود Pear في طريقك.

حظ سعيد!

نصائح أخرى

اكتشفتها."يجب عليك" تشغيل go-pear.php في المكان الذي تريد تثبيت pear فيه، لذلك تحتاج إلى تشغيله ضمن /usr/local إذا كنت تريد تثبيت pear ثنائي ضمن /usr/local/bin

:-)

أراد المستخدم "bryan kennedy" (أعلاه) معرفة صيغة التغيير "include_path" المطلوب في "php.ini"

(لقد واجهت مشكلة مشابهة لـ OP وقمت بإصلاح المشكلة بمساعدة هذا المنشور.)

سيبدو التغيير إلى php.ini كما يلي...

include_path=".:/path_to_pear_dir/PEAR"

هكذا يبدو الأمر عندما تسمح لـ "go-pear.php" بإجراء التغيير....

;***** Added by go-pear
include_path=".:/usr/local/bin/PEAR"
;*****
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top