2008-09-15 8 views
10

मैं अपने मैक (ओएस एक्स 10.5) पर काम करने के लिए पीडीओ कैसे प्राप्त कर सकता हूं? मैं ज़ेंड/ग्रहण में निर्मित PHP और php का उपयोग कर रहा हूं। इसके लिए उपयोगी ड्राइवर नहीं मिल रहे हैं।मैक पर PostgreSQL के लिए पीडीओ-ड्राइवर स्थापित करना (ग्रहण के लिए ज़ेंड का उपयोग करना)

उत्तर

31

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

पहली चीज़ जो आपको करने की आवश्यकता होगी install PEAR है, अगर आपने पहले से ऐसा नहीं किया है, क्योंकि यह डिफ़ॉल्ट रूप से तेंदुए पर स्थापित नहीं होता है।

एक बार जब आप करते हैं, PDO_PGSQL पैकेज डाउनलोड करने के लिए PECL इंस्टॉलर का उपयोग:

$ pecl download pdo_pgsql 
$ tar xzf PDO_PGSQL-1.0.2.tgz 

(नोट:। आप सुपर उपयोगकर्ता के रूप में pecl को चलाने के लिए, यानी sudo pecl हो सकता है)

उसके बाद, सब तो जाना

$ cd PDO_PGSQL-1.0.2 
$ phpize 
$ ./configure --with-pdo-pgsql=/path/to/your/PostgreSQL/installation 
$ make && sudo make install 

: के बाद से PECL संस्थापक सीधे विस्तार स्थापित नहीं कर सकते, आप अपने आप को बनाने और इसे स्थापित करने की आवश्यकता होगी अच्छी तरह से, आपके पास एक निर्देशिका में बैठे "pdo_pgsql.so" नामक एक फ़ाइल होनी चाहिए जो "/usr/lib/php/extensions/no-debug-non-zts-20060613/" जैसी कुछ दिखनी चाहिए (पीईसीएल स्थापना ने उस निर्देशिका को आउटपुट किया होगा जिसने इसे एक्सटेंशन इंस्टॉल किया है)।

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

extension=pdo_pgsql.so 

अब, यह मानते हुए यह पहली बार आप PHP एक्सटेंशन स्थापित किया है है, वहाँ दो हैं इस काम को पाने के लिए आपको अतिरिक्त कदम उठाने की आवश्यकता है। सबसे पहले, php.ini में, extension_dir निर्देश ("पथ और निर्देशिकाएँ" के अंतर्गत) मिल जाए, और निर्देशिका कि pdo_pgsql.so फ़ाइल में स्थापित किया गया था के लिए इसे बदल उदाहरण के लिए, मेरी extension_dir निर्देश की तरह दिखता है:।

extension_dir = "/usr/lib/php/extensions/no-debug-non-zts-20060613" 

दूसरा चरण, यदि आप 64-बिट इंटेल मैक पर हैं, तो अपाचे को 32-बिट मोड में चलाने में शामिल है। (यदि कोई बेहतर रणनीति है, तो मैं जानना चाहता हूं, लेकिन अभी के लिए, यह सबसे अच्छा है जो मुझे मिल सकता है।) ऐसा करने के लिए, /System/Library/LaunchDaemons/org.apache.httpd.plist पर स्थित संपत्ति सूची फ़ाइल संपादित करें।इन दो पंक्तियों खोजें:

<key>ProgramArguments</key> 
<array> 

उन्हें तहत, इन तीन पंक्तियां जोड़ें:

<string>arch</string> 
<string>-arch</string> 
<string>i386</string> 

अब, बस अपाचे पुनरारंभ करें, और PDO_PGSQL और चल रहा होगा।

1

मुझे यकीन नहीं है कि यह पीडीओ ड्राइवरों के साथ विशेष रूप से मदद करेगा, लेकिन आप BitNami's MAPPStack देख सकते हैं।

मुझे मैक पर पोस्टग्रेर्स, PHP और अपाचे के साथ परेशानी का सामना करना पड़ा, उनमें से कुछ को 64 या बनाम 32-बिट संस्करणों के साथ कुछ या सभी के साथ करना है। अब तक, बिटनामी मैपस्टेक इंस्टॉल सामान्य रूप से अच्छी तरह से काम कर रहा है। शायद यह आपके पीडीओ मुद्दों के साथ भी मदद करेगा।

2

इस PECL पैकेज पर एक नज़र डालें: PDO_PGSQL

मैं इसे अपने आप प्रयास नहीं किया है, लेकिन मैं MySQL के लिए एक विकल्प के रूप में Postgres के साथ खेल में रुचि रखते रहे हैं। अगर मुझे जल्द ही इसे आजमाने का मौका मिला है, तो अगर मैं मदद करता हूं तो मैं अपने परिणामों को यहां फेंक दूंगा।

0

यह वही मुझे

brew install php55-pdo-pgsql 

यह पीएचपी 5.5.32 और PostgreSQL 9.5 स्थापित करता है के लिए काम किया है।

brew uninstall postgres 

तो आप सही PHP संस्करण को इंगित और अपाचे पुनः आरंभ करने के /etc/apache2/httpd.conf अपडेट करना पड़ता है: मैं पहले से ही PostgreSQL 9.4 इसलिए स्थापित मैं साथ homebrew संस्करण की स्थापना रद्द किया था

LoadModule php5_module /usr/local/Cellar/php55/5.5.32/libexec/apache2/libphp5.so 

मेरा ओएसएक्स संस्करण योसमेट है।

1

ब्रू के माध्यम से नया PHP संस्करण स्थापित करें और सर्वर को पुनरारंभ करें, और php -v, सभी मुद्दों को हटा दिया गया है।

संबंधित मुद्दे