2016-03-02 13 views
9

पूछने से पहले, मुझे कहना है कि मेरे पास स्टैक और अन्य जगहों पर हर समान प्रश्न की कोशिश की और असफल रहा।PHP संगीतकार openssl त्रुटि

मैं इस त्रुटि के कारण composer का उपयोग करने में असमर्थ हूँ:

requires ext-openssl * -> the requested PHP extension openssl is missing from your system. 

मैं ubuntu पर xampp है।

मैं क्या कोशिश की है:

  • मैं uncommented php.ini में ;extension=php_openssl.dll (दोनों CLI और सामान्य) है - php के बाहर टर्मिनल के माध्यम से
  • स्थापित openssl काम नहीं किया - में काम नहीं किया
  • चेक phpinfo() अगर openssl लोड और सक्रिय है

enter image description here

  • और अधिक php -c /opt/lampp/etc/php.ini composer.phar install के माध्यम से संगीतकार runing की तरह कुछ मैं कहाँ त्रुटि

PHP Warning: PHP Startup: Unable to load dynamic library /usr/include/php5/ext/php_openssl.so - /usr/include/php5/ext/php_openssl.so: cannot open shared object file: No such file or directory in Unknown on line 0

  • मैं कोशिश की है bashrc में PATH बदलने के लिए मिलता है, कोई सफलता या तो

क्या मुझे अजीब पता चला है एक्सटेंशन का स्थान ...

phpinfo() विस्तार dir में भले ही मैं php.ini में और पाठ्यक्रम पुनः आरंभ अपाचे और phpinfo() में अभी भी did not शो का एक और निर्देशिका निर्दिष्ट करने की कोशिश की /usr/include/php5/ext/ है।

लेकिन php-config आदेश में मुझे लगता है कि विस्तार dir/usr/local/lib/php/extensions/no-debug-non-zts-20100525

है मुझे यकीन है कि अगर मैं सिस्टम पर कई php है, लेकिन मैं php.ini फ़ाइलों के लिए देखने के लिए करने की कोशिश की और केवल 2 आया नहीं कर रहा हूँ मिलता है।

/etc/php5/cli/php.ini 

/opt/lampp/etc/php.ini 
+0

लगता है जैसे आपके पास PHP के दो अलग-अलग इंस्टॉल हैं। शायद एक्सएएमपीपी (/ यूएसआर/स्थानीय) और उबंटू बेस (/ usr) से एक। यदि ऐसा है, तो आप अपने इच्छित व्यक्ति को पसंद करने के लिए अपने पथ को संपादित कर सकते हैं, या सिर्फ उस व्यक्ति को अनइंस्टॉल कर सकते हैं जिसे आप नहीं करते हैं। –

+0

मैंने 'findpi 'के माध्यम से' php.ini' को देखने की कोशिश की और 'cli' में से एक और'/opt/lampp/etc/php.ini' – JTC

+2

में से एक को देखने के लिए कि कौन सी' php.ini' फ़ाइलों का उपयोग किया जाता है आपके क्ली रन 'php -i | द्वारा grep php.ini'। –

उत्तर

2

मैं बनाम xamp LAMP ढेर स्थापित पसंद करते हैं: यह सरल और आसान config पैकेज है ...

sudo apt-get install apache2 
sudo apt-get install curl php5-cli php5 libapache2-mod-php5 php5-openssl 
sudo /etc/init.d/apache2 restart 
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer 

अपनी स्थापना के परीक्षण के लिए चलाएँ:

composer 

इस आदेश की आवश्यकता नहीं के साथ बदल गया php.ini और आदि

1

सबसे पहले आपको ओएस के अनुसार उचित लाइब्रेरी फाइल सिस्टम को समझना होगा। विंडोज़ में साझा लाइब्रेरी फाइलों में डीएलएल का विस्तार होता है और लिनक्स में साझा लाइब्रेरी फाइलों में एसओ का विस्तार होता है।

जहां भी आप PHP.ini फ़ाइल में परिवर्तन कर रहे हैं, उचित नहीं कर रहा है। सबसे पहले आपको PHP का सही स्थान ढूंढना होगा। अपाचे सेवा के बाद से चल रहा है यह स्थान रन खोजने के लिए आसान काम नहीं होगा:

$ httpd -V 

Server version: Apache/2.2.17 (Unix) 
Server built: Dec 17 2010 11:58:24 
Server's Module Magic Number: 20051115:25 
Server loaded: APR 1.3.12, APR-Util 1.3.9 
Compiled using: APR 1.3.12, APR-Util 1.3.9 
Architecture: 32-bit 
Server MPM:  Prefork 
    threaded:  no 
    forked:  yes (variable process count) 
Server compiled with.... 
-D APACHE_MPM_DIR="server/mpm/prefork" 
-D APR_HAS_SENDFILE 
-D APR_HAS_MMAP 
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) 
-D APR_USE_SYSVSEM_SERIALIZE 
-D APR_USE_PTHREAD_SERIALIZE 
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT 
-D APR_HAS_OTHER_CHILD 
-D AP_HAVE_RELIABLE_PIPED_LOGS 
-D DYNAMIC_MODULE_LIMIT=128 
-D HTTPD_ROOT="/etc/httpd" 
-D SUEXEC_BIN="/usr/sbin/suexec" 
-D DEFAULT_PIDLOG="logs/httpd.pid" 
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status" 
-D DEFAULT_LOCKFILE="logs/accept.lock" 
-D DEFAULT_ERRORLOG="logs/error_log" 
-D AP_TYPES_CONFIG_FILE="conf/mime.types" 
-D SERVER_CONFIG_FILE="conf/httpd.conf" 

कि उत्पादन में महत्वपूर्ण लाइन HTTPD_ROOT है। यह परिभाषित करता है कि अपाचे की ROOT निर्देशिका मेरे मामले में /etc/httpd शुरू करने के लिए है। चूंकि हमें PHP के सही स्थान को SERVER_CONFIG_FILE खोलना है जो मेरे मामले में उप-निर्देशिका 'conf' होगा।

env_module के लिए फ़ाइल में खोजें जो PHP के सही स्थान का खुलासा करेगी।

<IfModule env_module> 
    .... 
    SetEnv PHP_PEAR_SYSCONF_DIR "location of PHP" 
    SetEnv PHPRC "location of PHP" 
    .... 
</IfModule env_module> 

अब php.ini फ़ाइल खोलने करना आवश्यक परिवर्तन

;;;;;;;;;;;;;;;;;;;;;; 
; Dynamic Extensions ; 
;;;;;;;;;;;;;;;;;;;;;; 
; under UNIX: 
; 
; extension=msql.so 
; 
; ... or with a path: 
; 
; extension=/path/to/extension/msql.so 
; 
; If you only provide the name of the extension, PHP will look for it inits 
; default extension directory. 
; 
extension=php_openssl.so 

समस्या तो हल करता नहीं मुझे पता है तो।