The PHP Agent supports Zend Thread Safe (ZTS) for PHP 7.4. PHP Agent integrates with the ZTS mode, which helps to instrument multithreaded applications on PHP. This enables you to view the end-to-end business transaction flow and exit calls without breaks in correlation or end-to-end visibility.

PHP ZTS is currently supported only for Linux (64 bit).

PHP Agent Install Overview

The Getting Started Wizard in the Controller UI guides you through the configuration and installation steps for the PHP Agent. The installer uses the PHP directory specified in the PATH environment variable to determine the installation location. If you are instrumenting a PHP installation not specified in the PATH variable, you can manually configure and invoke the script installer.

The PHP Agent runs on Linux OS machines. The PHP Agent is designed for operating environments in which:

Ensure that you meet the preceding requirements before deploying the PHP Agent in the production environment. We recommend that you first deploy the agent in the staging/pre-production environment.

Prerequisites

php -i
php -i | grep -e "Debug Build"

The expected response must be:

Debug Build => no

Do not install the PHP Agent along with other non- Application Performance Management (APM) tools, especially in a production environment. The PHP Agent installation may fail if there are other APM products installed in the same managed environment.

Install PHP Agent with ZTS

The following topics provide installation details for various scenarios:

For cURL installation, see Download Splunk AppDynamics Software.

Files Added Post the PHP ZTS Install

The following files are added after installing the PHP Agent:

For , the two PHP configuration files are: php.ini and appdynamics_agent.ini fragment.  settings can be found in either of the .ini files, depending on the operating system under which your PHP is installed. The PHP Agent installer adds the appdynamics_agent.ini file to the directory that contains your php.ini file. You can find this directory using the following command:

php -i | grep -e "Additional .ini files parsed"

If the installer is not able to determine the directory where the ini fragments for your PHP deployment exist, it displays the required  ini fragment and prompts you to copy and paste it into your main php.ini file. Also, see http://php.net/manual/en/configuration.file.php for information about the possible locations for the configuration file.

The installer also installs the appdynamics_agent.so file in your PHP extensions directory. You can find this directory using the following command:

php -i | grep extension_dir

For each application, there is an agent log and a proxy log. By default, the agent log is written to $<php_agent_install>/logs/agent.log. The log contains the transactions that the agent processes and then sends to the proxy. The default pattern for agent log naming is:

You can find the licenses of the third-party libraries under the directory license in the agent installation folder: appdynamics-php-zts-agent-linux_x64/license.

Install a Machine Agent on a PHP Node

You can install a Machine Agent on a node that runs the PHP Agent. However, if you install the Machine Agent on a PHP Agent node and you specify the tier and node name in the controller-info.xml file of the Machine Agent, the PHP Agent does not successfully register with the Controller.

To avoid this: