2009-03-10 10 views
10

मैं आखिरकार पियर स्थापित करने की कोशिश कर रहा हूं ताकि मैं आसानी से PHPUnit इंस्टॉल कर सकूं। मैं एक मैक, अपाचे, MySQL, PHP, PHPUnit विकास वातावरण स्थापित करना चाहता हूं ताकि मैं स्थानीय रूप से परीक्षण कर सकूं। मेरे पास पहले से ही अपच, माईएसQL और PHP काम कर रहा है। अब मुझे केवल PHPUnit की आवश्यकता है, जिसका अर्थ है कि मुझे इसे स्थापित करने के लिए पियर चाहिए।मैक ओएस एक्स 10.5 तेंदुए पर पीयर सेट करने के लिए कैसे करें

मैंने पूरी खोज की है, और मैक ओएस एक्स 10.5 पर पीयर स्थापित करने के तरीके पर "ट्यूटोरियल" के कुछ बदलाव हैं। हालांकि, मैं उनमें से कोई भी काम करने के लिए प्रतीत नहीं कर सकता! क्या किसी के साथ सफलता मिली है? मुझे पूरा भरोसा नहीं है कि मेरे पास सबकुछ स्थापित होना चाहिए जैसा कि होना चाहिए, इसलिए यदि आप "डिफ़ॉल्ट" मैक ओएस एक्स 10.5 में पथ शामिल कर सकते हैं, या जहां सबकुछ जाना चाहिए, वहां एक साधारण स्पष्टीकरण शामिल है, तो मैं इसकी सराहना करता हूं। में प्रवेश जब तक मैं एक सूची के लिए मिलता है 7 के साथ पथ शामिल

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

मैं दबाएँ:

this ट्यूटोरियल मैं क्या निम्नलिखित के बाद

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 

अद्यतन: मुझे लगता है कि मैं जानता हूँ कि क्यों इन पिछले दो चेतावनी आया। पहले, मैंने temp निर्देशिका समस्या को/tmp के लिए एक प्रतीकात्मक लिंक बनाकर ठीक करने का प्रयास किया लेकिन यदि मैं सही ढंग से समझता हूं, तो पीयर स्थापना के लिए अपनी खुद की अस्थायी निर्देशिका बनाने की कोशिश कर रहा है, फिर यह समाप्त होने पर इसे हटाने जा रहा है। इसलिए मुझे यह प्रतीकात्मक लिंक नहीं बनाया जाना चाहिए क्योंकि यह स्थापना समाप्त होने पर temp निर्देशिका को हटाने का प्रयास करने जा रहा है।

+0

आप समस्या आप कर रहे हैं का वर्णन कर सकता है? – hhafez

उत्तर

16

कुछ ऐसी चीजें हैं जो यहां गलत हो सकती हैं, ये केवल अनुमान हैं।

सबसे पहले, दो पथ शामिल हैं जिनके बारे में आपको चिंता करने की आवश्यकता होगी। पहला है कि आपके PHP में पथ शामिल है। पीयर पुस्तकालय (ज्यादातर) केवल PHP कोड हैं, विशेष रूप से पैक किया गया। जब आप एक पीईएआर मॉड्यूल स्थापित करते हैं तो आप उस लाइब्रेरी के लिए आवश्यक सभी PHP कोड डाउनलोड कर रहे हैं, और किसी अन्य पीईएआर लाइब्रेरीज़ जिस लाइब्रेरी पर आप इंस्टॉल कर रहे हैं उस पर भरोसा करते हैं (उस वाक्य के बारे में खेद है, लेकिन मुझे यकीन नहीं है कि कहने का एक बेहतर तरीका है उस)। इसमें पथ आपके php.ini फ़ाइलों में सेट है (आपके कमांड लाइन php के लिए एक फ़ाइल, दूसरा yoru वेब सर्वर php के लिए, अक्सर एक ही फ़ाइल)।

दूसरे पथ में आपको शामिल करने की आवश्यकता होगी जिसमें आपका यूनिक्स/खोल पथ शामिल है। जब आप टर्मिनल से कमांड दर्ज करते हैं तो यह वह तरीका है जब आपका कंप्यूटर कमांड की खोज करेगा। 'नाशपाती' कमांड कमांड लाइन कमांड है।

तो, हम यह सुनिश्चित करें कि

  1. अपनी वेबसाइट के लिए php.ini फ़ाइल में नाशपाती निर्देशिका है बनाने की जरूरत है अपने रास्ते
  2. अपने आदेश पंक्ति php आवेदन के लिए php.ini फ़ाइल है शामिल अपने में नाशपाती निर्देशिका
  3. आपका खोल आवेदन (टर्मिनल, संभावना मार में ओएस एक्स पर कर रहे हैं) पथ शामिल नाशपाती निर्देशिका संख्या 1 के लिए,

तो इसकी शामिल रास्ते में है, पर एक PHP पेज डाल y हमारे सर्वर जिसमें फंक्शन कॉल

phpinfo(); 

यह आपके सर्वर के बारे में जानकारी का एक समूह सूचीबद्ध करेगा। Php.ini के स्थान की तलाश करें। इस फ़ाइल को टेक्स्ट एडिटर में खोलें, include_path वैरिएबल को देखें, और अपनी पीईएआर निर्देशिका में पथ जोड़ें (अन्य पथों को न हटाएं, बस अपना जोड़ें)।

नंबर 2 के लिए, एक ऐसा "लोडेड कॉन्फ़िगरेशन फ़ाइल" कुछ पढ़ता है के लिए देखो, अपने आदेश पंक्ति

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

लाइनों का एक गुच्छा बाहर प्रिंट होगा से निम्नलिखित चलाते हैं। इस फ़ाइल को टेक्स्ट एडिटर में खोलें, include_path वैरिएबल को देखें, और अपनी पीईएआर निर्देशिका में पथ जोड़ें (अन्य पथों को न हटाएं, बस अपना जोड़ें)।

अंत में, और मुझे लगता है कि आपकी समस्या यह है कि हमें यह सुनिश्चित करने की आवश्यकता है कि नाशपाती कमांड लाइन कमांड आपके खोल/बैश पथ में है। यही कारण है कि नामित अपने घर निर्देशिका में एक फ़ाइल होनी चाहिए क्या इस त्रुटि

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

की बात कर रहा है '.bash_profile'। यह एक छिपी हुई फाइल है, इसलिए यह खोजक में दिखाई नहीं देगी। इसे एक टेक्स्ट एडिटर के साथ खोलें। यदि आपको परेशानी हो रही है क्योंकि यह एक छिपी हुई फ़ाइल है, तो कमांड लाइन पिको संपादक का उपयोग करें। Ctrl-X पिको से बचाएगा

cd ~ 
pico .bash_profile 

यह फ़ाइल हर बार जब आप टर्मिनल विंडो खोलते हैं तो यह फ़ाइल आपके खोल द्वारा निष्पादित हो जाती है। हम आपके PATH में/usr/local/bin जोड़ने जा रहे हैं, जिसका अर्थ है कि जब आप कमांड चलाने का प्रयास करते हैं, तो yoru कंप्यूटर इस फ़ोल्डर में कमांड की खोज करेगा। .bash_profile

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

की तह तक निम्नलिखित पंक्ति जोड़ यह वह जगह है, और अधिक या कम है, तो निम्न PHP कोड को बराबर

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

आप पहली बार के रूप में/usr/स्थानीय/बिन जोड़ रहे हैं कमांड को देखने के लिए कोलन-सीमांकित स्थान, और उसके बाद शेष मौजूदा पथ जोड़ना। एक बार जब आप उस लाइन को जोड़ दिया है, बंद अपने टर्मिनल, फिर से खुल यह, और फिर टाइप

pear 

यह आपको वैध नाशपाती आदेशों की सूची देने चाहिए, लेकिन अधिक महत्वपूर्ण बात आप जानते हैं कि नाशपाती अपने रास्ते में है दूँगी ।

शुभकामनाएं!

+0

मुझे "आदेश नहीं मिला" मिल रहा है। क्या मैंने एक कदम छोड़ दिया? – Andrew

+0

जब आप '/ usr/local/bin/pear' टाइप करते हैं तो क्या होता है? –

+0

यदि आप अपना php.ini include_path वाक्यविन्यास जोड़ सकते हैं तो यह बहुत अच्छा होगा। मुझे इस तरह के काम मिल गया है, लेकिन अभी भी कुछ मुद्दों को तोड़ने के साथ मिल रहा है। –

2

मैंने इसे समझ लिया। आपको जाने-माने चलाने के लिए "होना है"।जहां नाशपाती स्थापित है, तो आप इसे चलाने के लिए की जरूरत है चाहता हूँ पर php के तहत/usr/स्थानीय आप नाशपाती द्विआधारी स्थापित किया जा करना चाहते हैं/usr/स्थानीय/बिन

:-)

0

उपयोगकर्ता "ब्रायन केनेडी" के अंतर्गत (ऊपर)

(मैं ओपी लिए एक समान समस्या थी और मैं सिर्फ इस पोस्ट की मदद से समस्या का समाधान हो।) "php.ini" में की जरूरत "include_path" बदलाव के लिए वाक्य रचना में जानना चाहता था

php.ini में परिवर्तन इस तरह दिखेगा ...

include_path=".:/path_to_pear_dir/PEAR" 

इस यह कैसा दिखता है जब आप पर्याप्त है "जाना-pear.php" परिवर्तन करने के लिए ....

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