AppDynamics Application Intelligence Platform

3.9.x Documentation

PDFs

Learn by Watching

Doc Maps

Skip to end of metadata
Go to start of metadata

You can install the PHP Agent using either a Linux shell script (install.sh) or the RPM Package Manager (RPM).

These instructions assume that you are installing the AppDynamics PHP Agent in a standard PHP environment, specifically:

  • a single PHP installation running on the Linux machine
  • PHP running in a single Apache or FPM pool
  • standard packages have been used to install PHP, Apache and/or PHP-FPM
  • no customizations have been made to your PHP configuration

It is possible that the installer will work if one or more of these assumptions is violated.

This installation results in an AppDynamics model of your application consisting of one application, one tier, and one node.

Prerequisites for Agent Installation

1. Confirm that you have a supported environment installed on the server and that the server is configured correctly to run PHP scripts.
How you do this depends on your PHP environment. For example, in our Ubuntu 12+ web server running Apache we use:

sudo apt-get install apache2 php5 php5-cli
php -i

In our CentOS 5+ web server running Apache mod_ssl we use:

sudo yum install httpd mod_ssl php53 php53-cli
php -i

2. Confirm that your PHP was not built with the enable-debug configure option.

The PHP Agent is incompatible with PHP builds that were compiled with debugging symbols.
To determine whether your PHP was built with debugging symbols you can use the following command:

php -i | grep -e "Debug Build"

The response should be:

Debug Build => no

3. Install the PHP application that you want to monitor, if it is not already installed.

4. Download the the appropriate PHP agent installer for your platform.

On RedHat and CentOS:

  • To use the RPM installer for the 32-bit agent, download appdynamics-php-agent-agent-version-number-i686.rpm.
  • To use the RPM installer for the 64-bit agent, download appdynamics-php-agent-agent-version-number-x86_64.rpm.

On all other platforms:

  • To use install.sh for the 32-bit agent, download appdynamics-php-agent-x86-linux.tar.bz2.
  • To use install.sh for the 64-bit agent, download appdynamics-php-agent-x64-linux.tar.bz2.

If you use an on-premise Controller, download the latest version of the AppDynamics Controller. The download site is http://download.appdynamics.com.

5. Be prepared to provide the following information to the installation script:

  • controller host and controller port: These are the host name or IP address and the port number of the AppDynamics controller that the agent connects to. SaaS customers receive this information from AppDynamics. On-premise customers establish these settings when they install the controller.
  • AppDynamics application name: This is the name that you assign to the business application you will monitor with AppDynamics.
  • AppDynamics tier name: This is the name that you assign to the tier you will monitor with AppDynamics.
  • AppDynamics node name: This is the name of the basic unit of processing that the agent monitors.

If you have an on-premise AppDynamics controller running in multi-tenant mode or if you are using the AppDynamics SaaS Controller, you will also need to provide the following, which were included in your Welcome email from AppDynamics:

  • AppDynamics account name
  • AppDynamics account key

6. Stop the Apache server.

Tip: Do not install the PHP Agent along with other non-AppDynamics 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 the PHP Agent

To use install.sh, see Install the PHP Agent using a Shell Script.

To use RPM, see Install the PHP Agent using RPM.

To instrument PHP CLI, see also Special Procedures for PHP CLI.

Files Added to Your Installation

PHP configuration files

For AppDynamics, the PHP configuration files of interest are the php.ini and appdynamics_agent.ini fragment. AppDynamics settings can be found in either .ini file, 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 live, it displays the required AppDynamics 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 possible locations.

.so files

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

Logs

There is an agent log and a proxy log for each application.

The agent log is located at $<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:

  • agent.log: the current log
  • agent.log.1: most recent log
  • agent.log.2: second most recent log
  • agent.log.3: third most recent log
  • agent.log.4: fourth most recent log
  • agent.log.5: fifth recent log

The proxy log is located $<php_agent_install>/logs/proxy_$date.log. This log contains the transactions that the proxy accepts from the agent and then sends to the Controller.

Installing the Machine Agent on a PHP Node

If you install the machine agent on the machine hosting the instrumented PHP node and you specify the tier and node name in the machine agent's controller-info.xml file, the PHP Agent will fail to register.

To avoid this problem:

  • Install the PHP Agent before you install the machine agent
  • Do not specify the tier and node in the machine agent controller-info.xml, where it is optional. The machine agent will pick up the tier and node from the app agent configuration.

Learn More