kabel / homebrew-php-ext

🐘🌐 Core PHP extension formulae not suitable for Homebrew/core
BSD 2-Clause "Simplified" License
122 stars 18 forks source link

PHP 7.2 extensions #1

Closed simPod closed 6 years ago

simPod commented 6 years ago

Is it possible with this tap to have php 7.2 extensions or not?

Thanks!

kabel commented 6 years ago

It already has the 7.2 extensions, they just don't use the @7.2 suffix.

simPod commented 6 years ago

I see, thanks! Any way ssh2 and rdkafka could be available as well?

kabel commented 6 years ago

No. Those extensions are not part of php core and should be installed via pecl.

gnurob commented 6 years ago

Kabel, I'm so happy you put this together. Thank you!

I attempted this on 7.2 and ran out of talent.

In php.ini, using:

extension=/usr/local/Cellar/php@7.1-imap/7.1.18/lib/php/20160303/imap.so

results in

PHP Warning:  PHP Startup: imap: Unable to initialize module
Module compiled with module API=20160303
PHP    compiled with module API=20170718
These options need to match
 in Unknown on line 0

and

extension=imap

results in

HP Warning: PHP Startup: Unable to load dynamic library 'imap' [snipped some text] in /usr/local/lib/php/pecl/20170718/imap.so

kabel commented 6 years ago

@gnurob you shouldn't have to do anything with your config. Just brew install php-imap and it writes a config file that php 7.2 will automatically read.

With your first attempt at manually changing your php.ini, you were pointing to an install of the 7.1 version which is not compatible with 7.2. In your second attempt, you were pointing to the imap extension that would have been installed through pecl.

gnurob commented 6 years ago

@kabel Ok, just to confirm, that works.

FWIW, I was following steps from another forum:

brew tap kabel/php-ext
brew install php@7.1-imap

It never occurred to me to revisit install php-imap, which previously would not work due to the php core changes.

IMAP is now loaded, but it's not in php.ini. Since I did have to add imagick/mcrypt/ssh2, I'm happily stumped as to how IMAP didn't require this. But, no complains! :-)

Thanks for taking the time to reply. Cheers!

kabel commented 6 years ago

I'm happy to demystify the php.ini magic. The php binaries are built to auto load ini files found in a specific directory. See php -i | grep "Scan this dir". Take a look in that directory and you'll find a file was installed that points to the imap extension location.

gnurob commented 6 years ago

Of course! There it is. Cool

[imap]
extension=/usr/local/opt/php-imap/lib/php/20170718/imap.so