elastic / apm-agent-php

Apache License 2.0
251 stars 69 forks source link

Incompatible with ionCube #1164

Open WilliamDEdwards opened 1 month ago

WilliamDEdwards commented 1 month ago

APM agent is incompatible with ionCube.

This might be a duplicate of https://github.com/elastic/apm-agent-php/issues/306, but it's closed.

I first noticed this issue when trying to install the APM agent:

Preparing to unpack .../apm-agent-php_1.13.0_amd64.deb ...
Unpacking apm-agent-php (1.13.0) ...
Setting up apm-agent-php (1.13.0) ...
Installing Elastic PHP agent
DEBUG: after-install parameter is 'configure'
Detected PHP version '8.2'
Creating /opt/elastic/apm-agent-php/etc/elastic-apm.ini
; ***** DO NOT EDIT THIS FILE *****
; THIS IS AN AUTO-GENERATED FILE by the Elastic PHP agent post-install.sh script
; To overwrite the INI settings for this extension, edit
; the INI file in this directory "/opt/elastic/apm-agent-php/etc/elastic-apm-custom.ini"
[elastic]
extension=/opt/elastic/apm-agent-php/extensions/elastic_apm_loader.so
elastic_apm.bootstrap_php_part_file=/opt/elastic/apm-agent-php/src/bootstrap_php_part.php
; END OF AUTO-GENERATED by the Elastic PHP agent post-install.sh script
/opt/elastic/apm-agent-php/etc/elastic-apm.ini created
Configuring elastic-apm.ini for supported SAPI's
Found SAPI config directory: /etc/php/8.2/cli/conf.d
Linking /opt/elastic/apm-agent-php/etc/elastic-apm.ini to /etc/php/8.2/cli/conf.d/98-elastic-apm.ini
Linking /opt/elastic/apm-agent-php/etc/elastic-apm-custom.ini to /etc/php/8.2/cli/conf.d/99-elastic-apm-custom.ini
Found SAPI config directory: /etc/php/8.2/fpm/conf.d
Linking /opt/elastic/apm-agent-php/etc/elastic-apm.ini to /etc/php/8.2/fpm/conf.d/98-elastic-apm.ini
Linking /opt/elastic/apm-agent-php/etc/elastic-apm-custom.ini to /etc/php/8.2/fpm/conf.d/99-elastic-apm-custom.ini
zend_mm_heap corrupted
/var/lib/dpkg/info/apm-agent-php.postinst: line 23: 3401917 Aborted                 ${PHP_BIN} -d memory_limit=128M "$@"
Failed. Elastic PHP agent extension is not enabled
Set up the Agent manually as explained in:
https://github.com/elastic/apm-agent-php/blob/main/docs/setup.asciidoc
Enable the extension by adding the following to your php.ini file:
extension=/opt/elastic/apm-agent-php/extensions/elastic_apm_loader.so
elastic_apm.bootstrap_php_part_file=/opt/elastic/apm-agent-php/src/bootstrap_php_part.php

... and within PHP-FPM, children die immediately:

Jun 09 11:13:14 http-tst01.cf.ha.cyberfusion.cloud php-fpm[3436295]: [WARNING] [pool sig2test81] child 3436963 exited with code 1 after 0.011613 seconds from start
Jun 09 11:13:14 http-tst01.cf.ha.cyberfusion.cloud php-fpm[3436295]: [NOTICE] [pool sig2test81] child 3436965 started
Jun 09 11:13:14 http-tst01.cf.ha.cyberfusion.cloud php-fpm[3436295]: [WARNING] [pool sig2test81] child 3436965 exited with code 1 after 0.947301 seconds from start
Jun 09 11:13:14 http-tst01.cf.ha.cyberfusion.cloud php-fpm[3436295]: [NOTICE] [pool sig2test81] child 3437009 started

I can confirm this behaviour on PHP 8.1.28 and 8.2.19.

Used agent version is 1.13.0.