Symptoms

POA tasks to provision APS applications to customers fail with the error message PHP Fatal error: Call to undefined function like in the following examples:

PHP Fatal error: Call to undefined function getContextService() in /usr/local/pem/APS/instances/249/scripts/configure.php on line 166


PHP Fatal error: Call to undefined function getShopConfigService() in /usr/local/pem/APS/instances/150/scripts/configure.php on line 7

The name of the particular function may be different for different APS applications. The common symptom of the problem is that tasks fail with PHP fatal error Call to undefined function.

Cause

Provisioning scripts in APS applications use short form (<? ?>) of PHP's open tag while the corresponding short_open_tag option which allows using short form is disabled in the php.ini file on the Provisioning Gateway Host.

Resolution

Follow the steps below to resolve the problem.

  1. Find which Provisioning Gateway Host is used to provision APS application instance:

    • Find the application instance ID in the name of the failed task, e.g. in the example below the instance ID is 249:

      APS application 'Open-Xchange', id 112, instance 249 -> service 'context', instance 357: executing configuration script, site 'http://mail.customer.com/'
      
    • Having application instance ID find the Provisioning Gateway using the Knowledgebase article #115876 How to find Provisioning Gateway Host for APS application instance
  2. Log into the Provisioning Gateway Host using SSH or RDP (depending on the host OS)

  3. Correct the php.ini file - set the short_open_tag option to On:

    short_open_tag = On
    
  4. Restart the failed tasks in POA Task Manager.

The php.ini file file location:

  • Linux Provisioning Gateway Host:

    /etc/php.ini
    
  • Windows Provisioning Gateway Host (the default location):

    c:\PHP5\php.ini
    

    The exact location of the php.ini file on Windows server may be found in POA Provider Control Panel in the properties of the PHP package installed on the host (php.install.full.path parameter), see the example below:

Additional information

Refer to the official PHP documentation for more details about the short_open_tag option - http://www.php.net/manual/en/ini.core.php#ini.short-open-tag.

Internal content