วิธีเปิดใช้งานส่วนขยาย openssl ของ PHP เพื่อติดตั้ง Composer


113

ฉันกำลังพยายามติดตั้ง Laravel ในการตั้งค่า WAMP ฉันได้รับข้อความเตือนไม่ให้เปิดใช้งานopensslซึ่งฉันได้ทำไปแล้วใน WAMP

นี่คือภาพหน้าจอของข้อความ

ใส่คำอธิบายภาพที่นี่


1
ตรวจสอบเส้นทางของ PHP ในตัวแปรสภาพแวดล้อม%PATH%บางที Composer อาจมองหา PHP ในตำแหน่งอื่นแทน WampServer
Rubens Mariuzzo

ผมมีปัญหาเหมือนกัน. ฉันกำลังแก้ไข php.ini จากไอคอน wamp แต่ฉันทำด้วยตนเองรีสตาร์ทเซิร์ฟเวอร์และใช้งานได้
themhz

คำตอบ:


121

เป็นไปได้ว่า WAMP และ Composer กำลังใช้การติดตั้ง PHP ที่แตกต่างกัน นักแต่งเพลงจะใช้ชุด PHP ในPATHตัวแปรสภาพแวดล้อม

หากคุณต้องการเปิดใช้งานส่วนขยายopensslเพื่อติดตั้งComposerก่อนอื่นคุณต้องตรวจสอบตำแหน่งของการติดตั้ง PHP

  1. เปิด Command Prompt พิมพ์: echo %PATH%จากนั้นตรวจสอบตำแหน่งของการติดตั้ง PHP ของคุณ
  2. ไปที่ตำแหน่งนั้นและแก้ไขไฟล์ชื่อ: php.ini.
  3. extension=php_openssl.dllยกเลิกการใส่เครื่องหมายบรรทัดโดยการลบเครื่องหมายอัฒภาคที่จุดเริ่มต้น

ตอนนี้คุณสามารถติดตั้ง Composer ได้แล้ว


2
เกิดขึ้นฉันไม่มีส่วนขยายนี้ในการติดตั้ง XAMPP ของฉัน ฉันเพิ่งเพิ่ม (extension = php_openssl.dll) ใน php.ini และกำลังดาวน์โหลดการอ้างอิง laravel
Adrian P.

8
เมื่อฉันพิมพ์echo %PATH%ฉันได้รับ: C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\Sysem32\WindowsPowerShell\v1.0\;C:\Program files\Microsoft\Web Platform Installer\;C:\Program Files\MySQL\MySQL Server 5.5\bin.. ไม่มี php ติดตั้งในไดเร็กทอรีเหล่านั้นเลย .. ตอนนี้ฉันต้องทำอย่างไร?
abbood

19
wamp ใช้ php.ini นี้: c: \ wamp \ bin \ apache \ Apache2.4.4 \ bin \ php.ini แต่ผู้แต่งใช้ PHP จาก CLI ดังนั้นจึงอ่านไฟล์นี้: c: \ wamp \ bin \ php \ php5.4.12 \ php.ini (ดังนั้นคุณต้องเปิดใช้งาน openssl ที่นั่น)
Enrique

2
ฉันใช้ xampp นักแต่งเพลงให้ข้อผิดพลาดที่ขาดหายไปของ ssl แบบเปิดเดียวกันแม้ว่าจะลบ ';' ของส่วนขยาย openssl ใน php.ini
Shashikumar Misal

30
ฉันยังมีการ uncomment บรรทัดextension_dir = "ext"ในphp.iniแต่ฉันใช้การติดตั้ง PHP ธรรมดาแทน WAMP
David Harkness

62

ฉันแก้ปัญหาด้วยวิธีอื่น ปัญหาคือ GUI ของ wamp ทำให้เข้าใจผิด: อ้างว่าฉันได้php_opensslเปิดใช้งาน .. และถ้าฉันคลิกphp.iniที่ GUI เดียวกัน .. มันแสดงให้เห็นว่าไม่มีความคิดเห็นจริงๆextension=php_openssl.dll..

ฉันไม่แน่ใจว่าฉันใช้ตัวติดตั้งเวอร์ชันเดียวกันของตัวติดตั้งของ OP หรือไม่ แต่จริงๆแล้วจะขอให้คุณระบุในตอนแรกphp.exeว่าคุณต้องการใช้นักแต่งเพลง (ซึ่งโดยพื้นฐานแล้วจะทำให้มั่นใจได้ว่าไม่มีใครพยายามใช้นักแต่งเพลงกับ ปฏิบัติการ php ผิดเป็นสิ่งที่เกิดขึ้นกับ OP) ..

วิธีที่ฉันแก้ปัญหานี้คือการเข้าไปติดตั้ง php ภายใน wamp package: C:\wamp\bin\php\php5.4.12และดูที่php.inนั่น .. เมื่อเปิดดูก็ตกใจว่ามีการคอมเมนต์ไลน์extension=php_openssl.dllจริงๆ! ฉันไม่ใส่ความคิดเห็นและมันก็ใช้ได้ดี

ใส่คำอธิบายภาพที่นี่


ขอบคุณหลังจากดูคำตอบนี้ฉันคิดว่า wamp ใช้ 5.5.12 แต่ฉันเลือกไดเรกทอรี 5.4 สำหรับ php.exe
Afnan Bashir

ไฟล์libeay32.dllหรือliblibcrypto-*.dllอยู่ในเส้นทางใด php.net/manual/de/openssl.installation.php
Bernhard Döbler

53

ฉันมีปัญหาเดียวกันและนี่คือวิธีแก้ปัญหาที่ฉันพบในphp.iniของคุณคุณต้องทำการเปลี่ยนแปลงบางอย่าง:

  1. extension_dir = "ext"
  2. extension = php_openssl.dll

ทุกคนที่นี่พูดถึงส่วนขยาย openssl ที่ใช้งานอยู่ แต่ใน windows คุณต้องเปิดใช้งานส่วนขยายด้วย


3
ผู้ชายที่คุณเป็นคนเดียวที่กล่าวถึงextension_dirคุณเยี่ยมมาก!
giannis christofakis

สิ่งนี้ได้ผลสำหรับฉัน ฉันดาวน์โหลด PHP โดยตรงเช่นในTurtorialนี้
ปล้น

26

สำหรับเซิร์ฟเวอร์ WAMP ความคิดเห็นของ "Enrique" ช่วยแก้ปัญหาของฉันได้

wamp ใช้php.iniนี้:

c:\wamp\bin\apache\Apache2.4.4\bin\php.ini

แต่นักแต่งเพลงกำลังใช้ PHP จาก CLI ดังนั้นจึงอ่านไฟล์นี้:

c:\wamp\bin\php\php5.4.12\php.ini (so you need to enable openssl there)

สำหรับนักแต่งเพลงคุณจะต้องเปิดใช้งานส่วนขยายใน

c:\wamp\bin\php\php5.4.12\php.ini

เปลี่ยนแปลง:

;extension=php_openssl.dll 

ถึง

extension=php_openssl.dll

สำหรับ MAMP ฉันต้องคัดลอกไฟล์ php.ini จาก C: \ MAMP \ conf \ phpx.xx ถึง C: \ MAMP \ bin \ php \ phpx.xx (\ conf \ .... ถึง \ bin \ .. .)
Mike

15

หากคุณกำลังทำสิ่งนี้บน Windows โดยไม่มี WAMP stacks ต่อไปนี้เป็นวิธีดำเนินการต่อ

  1. ดาวน์โหลดติดตั้ง PHP สำหรับ Windows โดยทั่วไปคุณจะต้องการการติดตั้งที่ปลอดภัยแบบไม่ใช้เธรด คุณสามารถใช้บิลด์ 32 บิตหรือ 64 บิต
  2. แตกไฟล์ zip ที่ใดที่หนึ่ง C:\phpผมจะแนะนำ ตัวติดตั้งของนักแต่งเพลงพบว่ามีโดยไม่ต้องแจ้งให้ทราบ
  3. รุ่นล่าสุดของ PHP สำหรับ Windows ไม่ได้มาด้วยphp.iniโดยปริยาย แต่คุณจะเห็นสองไฟล์ดังที่ระบุไว้ด้านล่าง เปลี่ยนชื่อหนึ่งไปหรือคัดลอกลงใน php.iniphp.ini
    • php.ini พัฒนา
    • php.ini ผลิต
  4. เปิดphp.iniไฟล์ของคุณและลบเครื่องหมายอัฒภาคออกจากบรรทัดนี้ (คุณอาจต้องการยกเลิกการแสดงความคิดเห็นอื่น ๆ ด้วย แต่บรรทัดนี้เป็นบรรทัดเดียวที่จำเป็นสำหรับนักแต่งเพลง)

    ;extension=php_openssl.dll

นั่นควรเป็นสิ่งที่คุณต้องทำ โปรแกรมติดตั้ง Composer ควรทำทุกอย่างที่คุณต้องการจากที่นี่


2
นี่เป็นสถานที่ออนไลน์เท่านั้นที่มีการตั้งค่าโซลูชันที่ถูกต้อง (สำหรับการตั้งค่าที่ไม่ใช่ WAMP) ขอบคุณ!
adamdehaven

11

คุณต้องเปิดใช้งาน "extension = php_openssl.dll" ในทั้งสองไฟล์ (php และ apache) เส้นทางไฟล์พีซีของฉันคือ:

  1. C: \ WAMP \ bin \ PHP \ php5.3.13 \ php.ini
  2. C: \ WAMP \ bin \ Apache \ apache2.2.22 \ bin \ php.ini

8

นี่เป็นคำถามเก่า แต่ฉันเพิ่งมีปัญหาเดียวกัน (กับ PHP7) และในที่สุดวิธีแก้ก็ค่อนข้างง่าย การไม่ใส่ข้อคิดเห็นในบรรทัดphp.iniตามคำตอบอื่น ๆ ยังไม่เพียงพอ ฉันต้องการเปลี่ยนจาก:

;extension=php_openssl.dll

ถึง:

extension=ext/php_openssl.dll

สังเกตextคำนำหน้า dll มีอยู่แล้ว แต่อยู่ในโฟลเดอร์ย่อย หลังจากเปลี่ยนการกำหนดค่าโปรแกรมติดตั้งผู้แต่งก็มีความสุข


7

คุณต้องเปิดใช้งานส่วนขยาย openssl ใน

C:\wamp\bin\php\php5.4.12\php.ini 

นั่นคือไฟล์คอนฟิกูเรชัน php ที่มีประเภทนี้มี "configuration settings" พร้อมไอคอนไดรฟ์เวอร์ - แผ่นจดบันทึก

  1. เปิดด้วย notepad หรือโปรแกรมแก้ไขใด ๆ
  2. ค้นหา openssl "your ctrl + F" จะทำ
  3. มีอัฒภาคก่อนส่วนขยาย openssl

    ;extension=php_openssl.dll

    ลบอัฒภาคแล้วคุณจะได้

    extension=php_openssl.dll
  4. บันทึกไฟล์และรีสตาร์ทเซิร์ฟเวอร์ WAMP ของคุณหลังจากนั้นคุณก็พร้อมที่จะไป ติดตั้งแอปพลิเคชันใหม่อีกครั้งที่ควรใช้งานได้

6

มีสองphp.iniไฟล์หนึ่งไฟล์สำหรับการพัฒนาและอีกไฟล์สำหรับการผลิต ปล่อยให้ไฟล์เหล่านั้นมีphp.iniไฟล์อื่นสำหรับการตั้งค่าการกำหนดค่าที่อยู่ด้านบนโดยมีไอคอนรูปเฟืองแก้ไข


อีกวิธีหนึ่งของฉันไม่มีค่าเริ่มต้น เพียงคัดลอก / วาง prod / dev และเปลี่ยนชื่อเป็นphp.iniจากนั้นทำการแก้ไขที่คนอื่นแนะนำที่นี่
Brynn Bateman

3

หลังจากแก้ไขไฟล์ "right" (ทั้งหมดของ php.ini) ฉันยังคงมีปัญหา วิธีแก้ปัญหาของฉันคือ:

  1. การเพิ่มตัวแปรระบบ: OPENSSL_CONF

    ค่าของ OPENSSL_CONF ควรเป็นไฟล์ openssl.cnf ของเวอร์ชัน php ปัจจุบันของคุณ

สำหรับฉันมันคือ:

  • C: \ WAMP \ bin \ PHP \ php5.6.12 \ แถม \ SSL \ openssl.cnf

-> รีสตาร์ท WAMP -> ควรใช้งานได้แล้ว

ที่มา: http://php.net/manual/en/openssl.installation.php


2

ฉันประสบปัญหาเดียวกัน แต่เมื่อฉันใช้ php.ini และ php.exe ฉันพบ php.exe ที่ C: \ UwAmp \ bin \ php \ php-5.4.15 เมื่อ php.ini ที่ C: \ UwAmp \ bin \ Apache ฉันแค่คัดลอก php.ini ที่ C: \ UwAmp \ bin \ php \ php-5.4.15 และ Uncomment the line extension = php_openssl.dll และแก้ไขแล้ว


2

ฉันใช้เซิร์ฟเวอร์ WAMP จริงๆแล้วไฟล์แสดงให้เห็นว่าเปิด openssl php.iniแต่ตนเองผมไปโฟลเดอร์และแก้ไข จากนั้นฉันพบว่ามันไม่ได้เปิด openssl ฉันไม่ใส่ความคิดเห็นและใช้งานได้หลังจากรีสตาร์ท WAMP


2

C: \ WAMP \ bin \ PHP \ php5.3.13

เรียกดูบรรทัดที่อ่าน:

;extension=php_openssl.dll

และลบอัฒภาคที่อยู่ข้างหน้าบรรทัด เริ่มบริการเซิร์ฟเวอร์ WAMP ของคุณใหม่ (คลิกในถาดไอคอนของคุณ> 'รีสตาร์ทบริการทั้งหมด'


1

หากคุณยังไม่สามารถแก้ปัญหาของคุณได้ลองดูที่นี่ นี่อาจเป็นทางออกที่คุณกำลังมองหา

มีไฟล์ php.ini หลายไฟล์ในโฟลเดอร์ C: \ wamp \ bin \ php \ php xyz คุณอาจพบการผลิตการพัฒนาและไฟล์ php.ini อื่น ๆ ไม่มีจุดแก้ไขไฟล์การผลิตและการพัฒนา ค้นหาไฟล์ที่เหมือนกับภาพด้านล่างทุกประการ (คุณสามารถค้นหาได้เพียงพิมพ์ php.ini ในแถบค้นหาของคุณแล้วทำการค้นหา) เปิดไฟล์และลบ; จากนามสกุล = php_openssl.dll บันทึกไฟล์และปิด รีสตาร์ทบริการทั้งหมดในเซิร์ฟเวอร์ Wampp ติดตั้งนักแต่งเพลงของคุณอีกครั้ง

อย่างนั้นแหละ.

ใส่คำอธิบายภาพที่นี่


1

Wamp ทำงานร่วมกับ php.ini อื่นที่อยู่ใน C: \ wamp \ bin \ apache \ Apache2.4.4 \ bin \ php.ini ดังนั้นคุณต้องค้นหาไฟล์ที่ถูกต้องด้วยตนเองซึ่งอยู่ใน C: \ wamp \ bin \ php \ php5.4.12 \ php.ini ยกเลิกการใส่เครื่องหมายส่วนขยาย = php_openssl.dll และลองติดตั้ง Composer อีกครั้ง


1

สำหรับใครที่กำลังมีปัญหาเดียวกันกับฉัน หลังจากทำตามวิธีแก้ปัญหาทั้งหมดข้างต้นแล้วยังไม่ได้ผลสำหรับฉัน ฉันพบว่า uWamp กำลังสร้างไฟล์ PHP.INI ในไดเร็กทอรี bin / apache ดังนั้นฉันต้องคัดลอกไฟล์ PHP.INI ไปยังไดเร็กทอรีการติดตั้ง php นั่นคือไดเร็กทอรี bin / php / phpXXXX นอกจากนี้ควรเป็นตำแหน่งที่ php.exe ที่คุณเลือกจากการตั้งค่าผู้แต่ง

หวังว่านี่จะช่วยได้


1

หากคุณรวบรวมจากแหล่งที่มาแล้วเพิ่มextension=php_openssl.dllไปยังไฟล์ php.ini อาจไม่ทำงาน

php -iการแก้ไขปัญหานี้เปิดคำสั่งพร้อมท์และประเภท เลื่อนขึ้นไปที่บรรทัดแรกมันจะแจ้งข้อผิดพลาดล่าสุดเกี่ยวกับไฟล์ php.ini ของคุณ

ในการแก้ปัญหาให้ค้นหาphp_openssl.dllไฟล์สำหรับฉันมันอยู่ในไดเร็กทอรีเดียวกันของเอาต์พุตการคอมไพล์: C:\php-sdk\bin\phpdev\vc14\x64\php-7.0.13-src\x64\Release_TS ดังนั้นเพียงแค่เพิ่มไดเร็กทอรีที่เป็นส่วนขยายลงในphp.ini:

extension_dir = "C:\php-sdk\bin\phpdev\vc14\x64\php-7.0.13-src\x64\Release_TS"

หวังว่าข้อผิดพลาดจะหมดไป


0

หากคุณใช้ xampp กลับไปที่คุณเลือกว่าคุณต้องการใช้ php บรรทัดคำสั่งใดเมื่อเริ่มต้นการติดตั้งและเลือกเส้นทางที่รวมโฟลเดอร์ xampp ของคุณไว้หลังจากนั้นหากโปรแกรมติดตั้งของคุณแจ้งว่าคุณมีส่วนขยาย 'ที่ซ้ำกัน = php_openssl.dll 'แสดงความคิดเห็นไฟล์ ssl หนึ่งไฟล์ใน php ini ของคุณด้วย'; 'และการติดตั้งของคุณควรทำงานได้อย่างราบรื่น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.