ຕິດຕັ້ງໂປແກຼມ PHP 7.2 ກັບ Homebrew ໃນ OSX ດ້ວຍ OpenSSL ແລະບໍ່ແມ່ນຢູ່ກັບ Apple Secure Transport ສຳ ລັບ PHP Curl module

ມີເຫດຜົນທີ່ດີຫຼາຍເຫດຜົນທີ່ພວກເຮົາອາດຈະຕ້ອງການສ້າງໂມດູນ Curl ຂອງ PHP ກັບ OpenSSL ແທນທີ່ຈະເປັນການຂົນສົ່ງທີ່ປອດໄພຂອງ Apple, ເຊັ່ນ: B. ການ ນຳ ໃຊ້ໃບຢັ້ງຢືນລູກຄ້າເປັນຮູບແບບ PEM ຫລືການ ນຳ ໃຊ້ HTTP / 2.

ຈົນກ່ວາເດືອນມີນາ 2018, ນີ້ແມ່ນງ່າຍທີ່ຈະເຮັດໄດ້ງ່າຍ: ທ່ານໄດ້ຕິດຕັ້ງ curl - with-openssl ແລະຕິດຕັ້ງ php72 - with-homebrew-curl ແລະນັ້ນແມ່ນມັນ. A impractical ພຽງເລັກນ້ອຍ, ແຕ່ງ່າຍດາຍ.

ໃນຄວາມພະຍາຍາມຂອງພວກເຂົາທີ່ຈະ“ ປັບປຸງ” ສິ່ງຕ່າງໆໂດຍການເຮັດໃຫ້ສິ່ງທີ່ບໍ່ສະບາຍແຕ່ ທຳ ມະດາທີ່ເປັນໄປບໍ່ໄດ້, ຜູ້ຮັກສາ homebrew ໄດ້ປ່ຽນສູດ PHP ຈາກ homebrew PHP tap ໄປໃຊ້ homebrew core tap.

"ສຽງບໍ່ມີອັນຕະລາຍ", ທ່ານອາດຈະຄິດບໍ? ໃຫ້ແນ່ໃຈວ່າ, ຍົກເວັ້ນວ່າພວກເຂົາບໍ່ພຽງແຕ່ຍ້າຍສູດທີ່ມັນເປັນ. ພວກເຂົາໄດ້ປ່ຽນແປງມັນຢ່າງຫຼວງຫຼາຍ, ລວມທັງຄວາມສາມາດທີ່ຈະບໍ່ຄວບຄຸມການສ້າງໂມດູນ PHP ອີກຕໍ່ໄປ. means ໝາຍ ຄວາມວ່າທ່ານບໍ່ສາມາດຄວບຄຸມໄດ້ອີກຕໍ່ໄປວ່າໂມດູນ PHP curl ຖືກສ້າງຂື້ນ ສຳ ລັບຫ້ອງສະຫມຸດ libcurl ທີ່ໃຫ້ໂດຍລະບົບທີ່ໃຊ້ການຂົນສົ່ງທີ່ປອດໄພຂອງ Apple ຫລື ສຳ ລັບຫ້ອງສະ ໝຸດ libcurl ທີ່ສ້າງ ສຳ ລັບ OpenSSL ຂຶ້ນກັບຄວາມມັກຫຼືຄວາມຕ້ອງການຂອງທ່ານ.

ສິ່ງນີ້ໄດ້ປ້ອງກັນຂ້ອຍບໍ່ໃຫ້ໃຊ້ສູດ PHP ຂອງ Homebrew ເພື່ອຍົກລະດັບໃຫ້ເປັນ PHP ແບບ ໃໝ່.

ເມື່ອຂ້ອຍກວດເບິ່ງ StackOverflow, ຂ້ອຍເບິ່ງຄືວ່າບໍ່ຢູ່ຄົນດຽວ. ເນື່ອງຈາກວ່າຂ້າພະເຈົ້າເອງຕ້ອງໄດ້ຕິດຕັ້ງ PHP 7 ກັບໂປແກມ PHP homebrew ລຸ້ນ ໃໝ່ ນີ້ໃນສະພາບແວດລ້ອມການພັດທະນາຂອງຂ້ອຍ, ຂ້ອຍຕ້ອງແກ້ໄຂບັນຫານີ້ດ້ວຍຕົນເອງ.

ຂ່າວດີ: ຂ້ອຍມີທາງອອກທີ່ດີ. ຂ້າພະເຈົ້າຂໍເລົ່າເລື່ອງລາວຂອງປະຊາຊົນຂອງຂ້າພະເຈົ້າ ...

ຂ້ອຍໄດ້ປ່ຽນສູດ php.rb ເພື່ອສ້າງ PHP ຕໍ່ libcurl ທີ່ຕິດຕັ້ງໂດຍ Homebrew, ທີ່ເຈົ້າຍັງຕ້ອງຕິດຕັ້ງກັບ brew install curl ຫຼັງຈາກຕິດຕັ້ງ Homebrews OpenSSL ກັບ bresl install openssl.

ວິທີໃຊ້:

$ cd / usr / local / Homebrew / Bibliothek / Taps / homebrew / homebrew-core $ curl -s https://github.com/dossy/homebrew-core/commit/b75fe286f79e2b89548c5ed1bbe1958313c5c103.patch | patch -p1

ແມ່ນຂຶ້ນຢູ່ກັບການປ່ຽນແປງຂອງຄົນທີ່ homebrew ເຮັດກັບສູດ php.rb ລະຫວ່າງດຽວນີ້ແລະເມື່ອທ່ານ ນຳ ໃຊ້ການປ່ຽນແປງນັ້ນ, ມັນອາດຈະຫລືບໍ່ຖືກ ນຳ ໃຊ້ຢ່າງຖືກຕ້ອງ. ຂ້ອຍສາມາດປັບປຸງເພີ້ມເຕີມເປັນແຕ່ລະໄລຍະຖ້າການປ່ຽນແປງຂອງຂ້ອຍບໍ່ໄດ້ຖືກລວມເຂົ້າໃນບ່ອນເກັບຂໍ້ມູນທີ່ຢູ່ທາງເທິງ.

ອັບເດດ 2018-11-07: ຂ້ອຍໄດ້ສ້າງ patch ທີ່ຖືກປັບປຸງ ສຳ ລັບ php.rb ປັດຈຸບັນຂອງ Homebrew ສຳ ລັບ PHP 7.2.11. ໃຊ້ສິ່ງນີ້ແທນ:
$ curl -s https://github.com/dossy/homebrew-core/commit/d0681b61.patch | patch -p1

ເມື່ອທ່ານ ນຳ ໃຊ້ແຜ່ນຮອງ, ທ່ານ ຈຳ ເປັນຕ້ອງບັງຄັບການຕິດຕັ້ງຈາກແຫລ່ງທີ່ມາແທນທີ່ຈະໃຊ້ຖານສອງທີ່ເຕັມໄປດ້ວຍ ຄຳ ວ່າ "ເຕີມ":

$ brew install php -build-from-Source

ອີງຕາມລະບົບ, ມັນອາດໃຊ້ເວລາໄລຍະ ໜຶ່ງ. ແຕ່ມັນຄວນຈະເຮັດວຽກ. ເມື່ອເຮັດ ສຳ ເລັດແລ້ວ, ທ່ານສາມາດກວດເບິ່ງວ່າ libcurl ແລະ openssl ທີ່ຖືກຕ້ອງຖືກໃຊ້ກັບ ຄຳ ສັ່ງຕໍ່ໄປນີ້:

$ / usr / local / bin / php -r "var_dump (phpversion (), curl_version () ['ssl_version'])" string (5) 7.2.6 ສະຕິງ (14) "OpenSSL / 1.0.2o"

ຖ້າສິ່ງນີ້ບໍ່ເຮັດວຽກ, SecureTransport ຫຼື LibreSSL ຈະຖືກສະແດງແທນ OpenSSL / XYZn. ໃນກໍລະນີນີ້ມີຂໍ້ຜິດພາດເກີດຂື້ນ. ການຮ້ອງໄຫ້ຢູ່ຈຸດນີ້ຈະບໍ່ເປັນສິ່ງທີ່ບໍ່ ເໝາະ ສົມຫຼືເປັນຄວາມຄິດທີ່ ໜ້າ ຢ້ານ. ໃນເວລາທີ່ທ່ານໄດ້ຮັບຄວາມສະ ໝັກ ໃຈຂອງທ່ານ, ກວດເບິ່ງວຽກຂອງທ່ານອີກຄັ້ງແລະຖ້າທ່ານຍັງບໍ່ສາມາດເຮັດວຽກໄດ້, ໃຫ້ຂ້ອຍຮູ້. ບາງທີຂ້ອຍສາມາດຊ່ວຍເຈົ້າໄດ້.

ຂໍສະແດງຄວາມຍິນດີກັບບັນດາທ່ານທີ່ປະສົບຜົນ ສຳ ເລັດ! ຂ້າພະເຈົ້າຫວັງວ່າສິ່ງນີ້ຈະເປັນປະໂຫຍດແລະຈະຊ່ວຍປະຢັດທ່ານຫຼາຍເວລາແລະບັນຫາ. ຂ້ອຍຮູ້ວ່າຂ້ອຍຈະໄດ້ຍົກຍ້ອງມັນ ...