ionCube loader installation on macOS Big Sur - php

I downloaded the Loader Wizard from https://www.ioncube.com/loaders.php
There seem to be so many problems in the wizard:
The wizard detects that I'm using macOS x86-64, its okay
I download the archive and it contains ioncube_loader_dar_x.x.so files for all php versions except 7.4 and 8.x
I put the loader files to /usr/local/lib/php/pecl/20190902
In /usr/local/etc/php/7.4/conf.d/00-ioncube.ini I have
zend_extension = /usr/local/lib/php/pecl/20190902/ioncube_loader_mac_7.4.so
But I don't have the loader file for php 7.4 in the downloaded archive. And in the archive there are ioncube_loader_DAR_x.x.so files not ioncube_loader_MAC_x.x.so
What are the differences between dar and mac?
I manually downloaded macOS (64 bits) loader from official website (not from the link in the wizard) and there was 7.4 in the archive so I proceeded with the installation with this file. But now I have another problems with macOS security 😢
I had issues with certs and followed this tutorial:
https://www.simplified.guide/macos/apache-php-homebrew-codesign
I signed my php7.4 and loader file with this commands:
codesign --sign "Yarik Nashivan" --force --keychain ~/Library/Keychains/login.keychain-db /usr/local/opt/php#7.4/lib/httpd/modules/libphp7.so
codesign --sign "Yarik Nashivan" --force --keychain ~/Library/Keychains/login.keychain-db /usr/local/lib/php/pecl/20190902/ioncube_loader_mac_7.4.so
But I still have an errors in apache logs:
Failed loading /usr/local/lib/php/pecl/20190902/ioncube_loader_mac_7.4.so: dlopen(/usr/local/lib/php/pecl/20190902/ioncube_loader_mac_7.4.so, 9): no suitable image found.
Did find: /usr/local/lib/php/pecl/20190902/ioncube_loader_mac_7.4.so: code signing blocked mmap() of '/usr/local/lib/php/pecl/20190902/ioncube_loader_mac_7.4.so'
/usr/local/lib/php/pecl/20190902/ioncube_loader_mac_7.4.so: stat() failed with errno=22

The problem was with default macOS apache2. I installed and configured httpd via homebrew and all works fine:
brew install httpd

Related

Can't get oauth working on MacOS Ventura with PHP 8.2.2

My macbook with MacOS Ventura (13.2) just upgraded to PHP 8.2.2 trough Brew but now i'm having problems because php ext-oauth is not active.
When I run composer install in my (Symfony) project I get this message:
Problem 1
- Root composer.json requires PHP extension ext-oauth * but it is missing from your system. Install or enable PHP's oauth extension.
To enable extensions, verify that they are enabled in your .ini files:
- /usr/local/etc/php/8.2/php.ini
- /usr/local/etc/php/8.2/conf.d/ext-opcache.ini
You can also run php --ini` in a terminal to see which files are used by PHP in CLI mode.
I've googled and tried:
adding it to the current php.ini file
sudo pecl install oauth
(returns the message "pecl/oauth is already installed and is the same
as the released version 2.0.7")
I've even copied the previous oauth.so file to the current php directory.
php -m doesn't return the oauth extension in the list
Any ideas, how to fix this?
I've got running again by do these steps:
open terminal
sudo pecl uninstall oauth
sudo pecl install oauth

How to install php_imagick on wamp64

I've been trying to install php_imagick on wamp64 without any luck.
The desired goal is for WordPress to stop showing the error message:
The optional module, Imagick, is not installed or has been disabled.
You can also skip reading and view the images attached below.
My setup:
Wamp64 Windows 10 Release Version 3.2.3.3 64 Bits [Windows Build: 19041]
PHP Version: 7.4.9
Build Date: Aug 4 2020 11:45:36
Windows: NT *username* 10.0 build 19041 (Windows 10) AMD64
Compiler Visual: C++ 2017
Architecture: x64
Loaded Configuration File: C:\wamp64\bin\apache\apache2.4.46\bin\php.ini
Thread Safety: enabled
I tried installing the following ImageMagick files:
1) ImageMagick-7.0.10-30-Q16-HDRI-x64-dll.exe
----A) php_imagick-3.4.3rc1-5.6-ts-vc11-x64.zip
----B) php_imagick-3.4.3rc1-7.1-ts-vc14-x64.zip
2) ImageMagick-7.0.10-30-Q16-x64-dll.exe
----A) php_imagick-3.4.3rc1-7.1-ts-vc14-x64.zip
----B) php_imagick-3.4.4rc2-7.3-ts-vc15-x64.zip
3) ImageMagick-6.9.3-7-Q16-x64-dll.exe (Current)
----A) php_imagick-3.4.4rc2-7.3-ts-vc15-x64.zip (Current)
----B) php_imagick-3.4.3rc1-7.1-ts-vc14-x64.zip
----C) php_imagick-3.4.3rc1-5.6-ts-vc11-x64.zip
What I did:
I first installed the EXE file and then extracted from the zip file just the php_imagick.dll file into this folder:
C:\wamp64\bin\php\php7.4.9\ext
Which matches my currently used PHP version (see images later for more information[php.ini]).
I tried restarting Wamp, rebuilding symlinks by switching PHP/Apache versions.
Will also be worth mentioning that I at one point tried extracting the full zip into the 'ext' folder under a folder named 'php_imagick' as shown below and did manage to get this error:
C:\wamp64\bin\php\php7.4.9\ext\php_imagick\php_imagick.dll (The specified procedure could not be found.)
but mostly I receive these errors:
[25-Sep-2020 08:58:50 UTC] PHP Warning:  PHP Startup: Unable to load dynamic library 'php_imagick.dll' (tried: c:/wamp64/bin/php/php7.4.9/ext/php_imagick.dll (The specified module could not be found.), c:/wamp64/bin/php/php7.4.9/ext/php_php_imagick.dll.dll (The specified module could not be found.)) in Unknown on line 0
When I install Magick using the EXE, I make sure to check the install to the path, Change the folder to C:\ImageMagick, and install the legacy drivers if possible, as suggested on Stack OverFlow.
(I also make sure to uninstall the last version I tried each time)
I have Visual Studio installed and a bunch of redistributables and also both x86 and x64 versions of these:
https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads
http://www.microsoft.com/en-us/download/details.aspx?id=30679
Without any luck, I went ahead and read several Stack OverFlow posts and could not find a solution.
How to install ImageMagick with Wampserver 3.0.0 64?
step-by-step instructions for installing IMAGEMAGICK on WAMP?
Installing php_imagick.dll PHP extension on wampserver 2.2
Unable to install php_imagick.dll on wamp
Imagick delegates installation on WAMP
How to install ImageMagick with Wampserver 3.0.0 64?
step-by-step instructions for installing IMAGEMAGICK on WAMP?
Installing php_imagick.dll PHP extension on wampserver 2.2
Unable to install php_imagick.dll on wamp
Imagick delegates installation on WAMP
WAMP PHP Startup Error: Unable to load dynamic library
Installing ImageMagick extension with php/windows
Linker error when trying to use ImageMagick as static libraries with Visual Studio compiler
Installing Magick++ in Visual C++ 2010
Installing Magick++ in visual studio 2019
ImageMagick with Visual Studio
WampServer and Imagemagick, imagick php module not recogized
Cannot load imagick library
ImageMagick not working
What can I try next?
typo in line 955: .php=.dll
I hired a freelancer to fix this for us.
Uninstall any versions of WampServer and ImageMagick you have installed
Don't forget to backup your database and www folder before you uninstall
We are going to install a trustable software called Chocolatey that will help us fix a bunch of errors with Wamp64 and it's extensions as well as help us update those applications with one command.
For those of you who already fixed this before using Chocolatey and
now seeing this error message again simply update Wamp and ImageMagick
using the choco commands provided on their website and then read my
note under 4) for more information
Run PowerShell as Admin
Follow this guide to Download chocolatey https://chocolatey.org/install
Use the same methods to Download Wamp64 https://chocolatey.org/packages/wamp-server
Run Wamp from the newly created shortcut on your desktop
Change the PHP version to 7.4.9 or the latest and only then move
to the other steps
Don't worry about the fact the folder is named Wamp and not Wamp64. It's still the 64bit version. You can check this in the about section of Wamp
Download https://chocolatey.org/packages/imagemagick
Download https://windows.php.net/downloads/pecl/deps/ImageMagick-7.0.7-11-vc15-x64.zip
Note: If that doesn't work, they probably updated again. Just try the same methods using newer versions then these. I will first try more recent versions of php_imagick instead of replacing the ImageMagick core DLL files. One thing I will not do is give up.
Extract And Copy all CORE_RL and IM_MOD_RL DLL files into C:\wamp\bin\php\php7.4.9 where php.exe is located
(Do not run any EXE file from here as we already installed ImageMagick)
Download https://windows.php.net/downloads/pecl/releases/imagick/3.4.4/php_imagick-3.4.4-7.4-ts-vc15-x64.zip
Extract and Copy just the php_imagick.dll file to C:\wamp\bin\php\php7.4.9\ext
Open your php.ini file by left-clicking Wamp->PHP->php.ini and then make sure you delete all leftovers and add below any extention= line the code below:
extention=imagick
(Apparently, New PHP versions require writing it without the "php_"...".dll" parts)
Restart Wamp by closing it and reopening it from its shortcut
This is by far the only solution I could get running.
choco:
Google = https://www.google.com/search?q=chocolatey
2019 = http://web.archive.org/web/20190101113929/https://chocolatey.org/
2018 = http://web.archive.org/web/20180414000310/https://chocolatey.org/
Enjoy
I use wampserver 3.2.3 64bit together with PHP 7.3.
Copying the CORE_RL and IM_MOD_RL DLLs into the PHP root direcory as orr burgel recommended in item #5 did not work for me.
I had to copy these DLLs into c:\wamp64\bin\apache\apache2.4.41\bin.

Mac OS: Intl extension is not loaded

macOS Mojave 10.14.3
PHP 7.1.23
Prestashop 1.7.5.1
I tried to install PHP intl extension on my local server in order to use Prestashop.
I added extension=php_intl.so to etc/php.ini
When I try to install Prestashop I get Intl extension is not loaded.
$ php -m | grep intl
When I do $ php -m | grep intl, I get:
PHP Warning: PHP Startup: Unable to load dynamic library
'/usr/local/lib/php/pecl/20160303/php_intl.so' - d
lopen(/usr/local/lib/php/pecl/20160303/php_intl.so, 9): image not found in Unknown on line 0
Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/pecl/20160303/php_intl.so' - dlopen
(/usr/local/lib/php/pecl/20160303/php_intl.so, 9): image not found in Unknown on line 0
intl
It seems that the file php_intl.so doesn't exist.
$ sudo pecl install intl
I also tried $ sudo pecl install intland I get:
make: *** [php_intl.lo] Error 1
ERROR:make' failed`
$ curl -s http://php-osx.liip.ch/install.sh | bash -s 7.1
I also tried $ curl -s http://php-osx.liip.ch/install.sh | bash -s 7.1 and it doesn't create the intl.so file.
How can I solve this problem?
Brew's PHP 7.1, 7.2 and 7.3 all have INTL enabled by default.
Most probably, you're just using your Mac OS' bundles version of PHP.
Run
ls -l $(which php)
to find out where the current PHP binary is located and whether it is symlinked to a Brew installation or not. In my case, for example:
lrwxr-xr-x 1 27 May 23 16:30 /usr/local/bin/php -> ../Cellar/php/7.3.5/bin/php
Meaning that my php is linked to Brew's 7.3.5 version.
If you are NOT using Brew's PHP, you'll see something like
-rwxr-xr-x 1 11169664 Mar 21 07:09 /usr/bin/php
Installing PHP through Brew
Find out whether you've already installed PHP:
brew list | grep php
If there is any output, and your version of PHP is present, go to step 2, or use step 1 to update PHP to the latest version.
1. Install Homebrew's PHP
brew install php#7.3
(or 7.2, 7.1). If Brew complains about not being able to find a formula, you might have messed with taps. Instead of php#7.3, you could try to supply the full path to the current php formula:
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/master/Formula/php.rb
Still not working, check whether you are running a recent version of Homebrew brew --version.
Homebrew 2.1.3-31-geaf2370
Homebrew/homebrew-core (git revision fd1ef; last commit 2019-05-25)
Homebrew/homebrew-cask (git revision 16d50; last commit 2019-05-26)
2. Link Homebrew's PHP
Now, to have php 'in your path', there are two options.
a) Either homebrew's version must be linked from its install location (/usr/local/bin/Cellar/php....) to a directory in your path (e.g., /usr/local/bin). To do this, run:
brew link --force php#7.3
If you are not able to link, this is typically caused by set permissions or System Integrity Protection. In the first case, try sudo chown "$USER":admin /usr/local/bin/php.
b) Or, add the /usr/local/opt/php#7.3 directory (opt-prefix) to your $PATH variable. E.g., for Bash:
echo 'export PATH="/usr/local/opt/php#7.3/bin:/usr/local/opt/php#7.3/sbin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile
3. Validate installation
ls -l $(which php)
should show that php is linked to a Homebrew PHP installation in /usr/local/bin/Cellar.
php -v
should show the recently installed version of PHP. Try to restart your terminal if that's not the case.
php -i | grep -i intl
should show some information about the current install of intl.
If you're using webservers and/or PHP FPM, this is the time to restart those services. (Or restart your system, if you don't know how to do that and cannot figure out).
Possible issues
If you still get warnings about missing extensions (Unable to load dynamic library, etc.), then your php.ini is messed up.
Find the current location of php's ini
$ php -i | grep \.ini
Configuration File (php.ini) Path => /usr/local/etc/php/7.3
Loaded Configuration File => /usr/local/etc/php/7.3/php.ini
Scan this dir for additional .ini files => /usr/local/etc/php/7.3/conf.d
Additional .ini files parsed => /usr/local/etc/php/7.3/conf.d/ext-opcache.ini
....
Edit /usr/local/etc/php/7.3/php.ini and find the offending extension load (e.g., extension="myext.so"). Comment out those that cannot be found.
Homebrew permissions
Some argue that it's a good idea to chown /usr/local.
sudo chown -R "$USER":admin /usr/local
This will make installing things here, by hand and through Homebrew, a lot easier, but also a bit less secure too, since non-root processes are now allowed to write here too.
Your web-application is using a different version of PHP.
Make sure that it doesn't... The configuration of this depends on the used webserver. A first step would be to output the current PHP configuration in your web-application with <?php phpinfo();.
This explains steps for Apache.
Another way to get a webserver + PHP stack running quicly is using Laravel Valet.
Installing additional extensions
To install additional PHP extensions, use PEAR.
pear -V
should output the current PEAR and PHP version.
PEAR Version: 1.10.9
PHP Version: 7.3.5
Zend Engine Version: 3.3.5
Now, to install an extension, for example, PHP's yaml extension:
pear install yaml
I have seen a lot of answers about this problem and anyone helped me, but the last (of course). This is for XAMPP´s use.
Xcode is needed.
Download the version of php you use in xampp from php.net.
Extract it and open the extracted folder in a terminal using cd.
Change to subfolder ext/intl.
Run these commands to build the extension:
/Applications/XAMPP/bin/phpize
./configure --enable-intl --with-php-config=/Applications/XAMPP/bin/php-config --with-icu-dir=/Applications/XAMPP/xamppfiles/
make
sudo make install (password required)
Delete all files you downloaded and also the extracted folders.
Add to php.ini file in xampp/etc folder line
extension="intl.so"
Original link: https://community.apachefriends.org/viewtopic.php?p=255061&sid=27afc55649dfe6ea7b0824cb0bb8486b
Since php 7 it's not necessary load the extension php_intl.so, what do you need to do?, edit your php.ini and delete or comment the line that is loading the extension php_intl.so, after this reload your apache and try again.
There might be an issue with brew
You could try to use this as mentioned there:
brew tap kyslik/homebrew-php
brew install kyslik/php/php71-intl
i tried all but intl not working in mac so please uninstall xampp and install mamp it will work
So, on Pecl Official site ( https://pecl.php.net/package/intl ), it's clear that Intl package is not maintained anymore and has been superseded. Since PHP 5.3.0 you don't need to use Pecl to install intl extension, it's bundled with PHP.
But, it's missing on native instalation of PHP 7.1.24 on Mac OS Mojave.
if you wanna use only native apache and php pre-installed instead of using homebrew, do this:
Download PHP 7.1 from php.net, install XCode Command Line Tools, ICU (http://site.icu-project.org/), Autoconf, reinstall the developer tools header files, and finally install Intl extension using phpize.
Important: you'll have to disable SIP.

Mongodb php extension not loading. Linux centos 6 Plesk onyx php 5.6.31

I have installed the lastest mongodb php driver on linux centos 6 with plesk onyx using the following commands.
yum install plesk-php56-devel make gcc openssl-devel
/opt/plesk/php/5.6/bin/pecl install mongodb
echo "mongodb.so" > /opt/plesk/php/5.6/etc/php.d/mongodb.ini
plesk bin php_handler --reread
I have also added extension=mongodb.so to the php.ini file.
I also changed the cli version from php 5.3 to 5.6 before running the install as php needed to be at least 5.4 for the install to continue.
The mongodb section in now in my phpinfo() page. However the extension is not loaded when I test it in a php page.
When I try to reinstall I get this message:
PHP Warning: PHP Startup: Unable to load dynamic library
'/opt/plesk/php/5.6/lib64/php/modules/mongo.so' -
/opt/plesk/php/5.6/lib64/php/modules/mongo.so: cannot open shared
object file: No such file or directory in Unknown on line 0
pecl/mongodb is already installed and is the same as the released
version 1.2.9 install failed
Also, the line that says /opt/plesk/php/5.6/lib64/php/modules/mongo.so
refers to mongo.so when in actual fact the file present in the modules folder is mongodb.so
Does anyone have any suggestions or experience with this please?
For those facing the same issue. This was fixed by changing the extension name in the following file /opt/plesk/php/5.6/etc/php.d/mongodb.ini from mongo.so to mongodb.so
And then remember to use the new mongo driver class ie MongoDB\Driver\

Memcached is installed on PHP 5.3.28 on MAMP 3.0.3, but not working

I have a Drupal site running on fresh MAMP PRO 3.0.3 install with the PHP version 5.3.28 on OS X Mavericks 10.9.2.
I installed memcache with pecl install memcache and added the extension=memcache.so line in php.iniunder the extensions section, but still Drupal shows multiple You must enable the PECL memcached or memcache extension to use memcache.inc. errors on top of the page.
phpinfo() on the Drupal root directory tells me that the configuration file loaded is at:
/Library/Application Support/appsolute/MAMP PRO/conf/php5.3.28.ini
and the extension dir is:
/Applications/MAMP/bin/php/php5.3.28/lib/php/extensions/no-debug-non-zts-20090626/
$ cat "/Library/Application Support/appsolute/MAMP PRO/conf/php5.3.28.ini" | grep memcache
extension=memcache.so
$ ls /Applications/MAMP/bin/php/php5.3.28/lib/php/extensions/no-debug-non-zts-20090626/ | grep memcache
-rwxrwxr-x 1 user admin 65K Mar 28 14:00 memcache.so*
What am I doing wrong or is this problem related to MAMP PRO 3? I've installed the memcached binaries with homebrew and the process is running.
I'm also using the Individual PHP versions for every host setting in MAMP.
When starting Apache, there is an error in the logs:
PHP Warning: PHP Startup: Unable to load dynamic library '/Applications/MAMP/bin/php/php5.3.28/lib/php/extensions/no-debug-non-zts-20090626/memcache.so' - dlopen(/Applications/MAMP/bin/php/php5.3.28/lib/php/extensions/no-debug-non-zts-20090626/memcache.so, 9): Symbol not found: _zend_new_interned_string
Referenced from: /Applications/MAMP/bin/php/php5.3.28/lib/php/extensions/no-debug-non-zts-20090626/memcache.so
Expected in: flat namespace
in /Applications/MAMP/bin/php/php5.3.28/lib/php/extensions/no-debug-non-zts-20090626/memcache.so in Unknown on line 0
What does this mean.
Thanks for your help!
I did not get the memcache extension provided by pecl to work at all. I even installed PHP 5.3.14 but encountered the same problem. Then I cloned the php-memcached-mamp repository from github and used the memcached extension from there and it worked ok.
Add intl extension to your configuration.
I just found this problem and another post that helped me fix it. macports installed php-config53 (not php-config) and I had a vagrant php-config from an old php 5.4 install. Removed /usr/bin/php-config and symlinked php=config53 -> php-config, re-rean pecl install memcache-beta and it worked.

Categories