ISPmanager 6 Business Documentation

PHP settings on CloudLinux

ISPSystem

PHP provides many settings that an ISPmanager Administrator or User can set up and modify. PHP parameters may vary depending on a PHP mode.  PHP modes "LSAPI", "CGI", "FastCGI (Apache)", and "FastCGI (Nginx + PHP-FPM)" utilize user settings. The "Apache module" uses the settings specified by the administrator. If a user has not changed a parameter, his value will be changed into the one specified by the administrator. 

Variable values are displayed in different colors: 

  • Red — the values for these parameters are not defined in the PHP configuration file and have been received from the PHP interpreter.
  • Green — the values for these parameters are defined in the global PHP configuration file for an administrator and in the user configuration file for a user. 
  • Blue — the values for these parameters are not defined.
  • Yellow — read-only values (for users).

Edit variables


Perform the following steps to edit a variable: 

  1. Log in as an administrator → Web-server settings→ PHP → Extended settings. Log in as a user → WWW → PHP → Extended settings.
  2. Select the variable and click on Edit.
  3. Enter a new Value for the variable. 

To allow users to edit the variable,  log in to ISPmanager as the Administrator, go to Web-server settings→ PHP → Settings → Show. A list of allowed variables is kept in /etc/cl.selector/php.conf.

PHP configuration files

The global configuration file is kept in /etc/php.ini for the PHP native and in /opt/alt/<PHP version>/etc/php.ini for alternative versions. 

The user configuration file for the PHP version used in the "CGI" mode is kept in /var/www/<WWW-domain owner>/data/php-bin/php.ini. The settings that the user has modified are kept in the same directory of the configuration file with the modified parameters of .php.ini

To modify the user configuration file manually, edit the php.ini file and duplicate the changes in the .php.ini file. 

Note.

In the mode PHP as "CGI", if an alternative version is enabled for a user, the interpreter is started with the script /usr/local/bin/php-cgi-etc. The script excludes the user php.ini from the directory php-bin, where the settings for the system PHP version are specified. If the native PHP version is enabled, the script /usr/bin/php-cgi will be used.

User settings for alternative PHP versions are kept in /var/www/<WWW-domain owner>/data/.cl.selector/.

Template for creating configuration files

The /usr/local/mgr5/etc/templates/php.ini file is used as a template for the user configuration files. When creating a new user the PHP settings are modified according to the template. The template contains the following strings per default: 

User configuration file template
session.save_path = "$HOMEDIR/bin-tmp/"
upload_tmp_dir = "$HOMEDIR/bin-tmp/"
sendmail_path = /usr/sbin/sendmail -t -i -f webmaster@example.com

$HOMEDIR is a macro that is changed into a user home directory when a new user is being created.

Note.

If you want to change the template, you must do so on the master server. To synchronize the changes with the cluster nodes, execute the following command on every node:

/usr/local/mgr5/sbin/mgrctl -m ispmgrnode exit

Settings for the PHP mode PHP "CGI"

When an ISPmanager user saves the modified PHP settings the utility CloudLinux selectorctl with required parameters will start. 

When an ISPmanager administrator saves the modified PHP settings:

  1. The values are added into the global configuration file of the PHP version.
  2. The utility cagefsctl with the key "--rebuild-alt-php-ini" starts to apply to changes. 

Settings for the PHP modes "CGI" and "FastCGI (Apache)"

When an ISPmanager user saves the modified PHP settings:

  1. The modified values are specified in the configuration file of modified parameters. 
  2. The content of the user configuration file is fully changed into the content of the global file.
  3. Values from the configuration file of the modified parameters change the corresponding values in the user configuration file. 

When an ISPmanager administrator saves the modified PHP settings:

  1. The values are specified in the global configuration file. 
  2. For every ISPmanager user:
    1. The content of the user configuration file is fully changed into the content of the global file.
    2. Values from the configuration file of the modified parameters change the corresponding values in the user configuration file. 

Settings for the PHP mode "FastCGI (Nginx + PHP-FPM)"

When an ISPmanager user saves the modified PHP settings the modified values are specified in the PHP-FPM configuration file of the user of the corresponding PHP version.

When an ISPmanager administrator saves the modified PHP settings the modified values are specified in the PHP-FPM global configuration file of the corresponding PHP version.

Settings for the PHP mode "Apache module"

A user cannot change the PHP settings in this mode. 

When an ISPmanager user saves the changed PHP settings the modified values are specified into the Apache mode configuration file of the user of the corresponding PHP version.

Initial PHP configuration


The main PHP parameters are grouped to facilitate the initial configuration: 

  1. Go to Web-server settings→ PHP → Extended settings → Basic.
  2. Select the Time zone that will be used by default by all the date and time functions. It is specified in the "date.timezone" variable. 
  3. Enter the Execution time of the PHP-script in seconds. The script will not start if it cannot be executed during the specified period. It is specified in the "max_execution_time" variable.
  4. Max. post size - enter the maximum size of post data allowed in MiB. It is specified in the "post_max_size" variable.
  5. Max. files size - provide the maximum size of an uploaded file in MiB.  It is specified in the "upload_max_filesize" variable.
  6. Memory limit - provide the maximum amount of memory in bytes that a script is allowed to allocate.  It is specified in the "memory_limit" variable.
  7. display_errors - select the checkbox to enable PHP to send information about errors to the browser. For security reasons, we recommend that you disable this option after debugging.
  8. log_errors - select the checkbox to store PHP error messages in the log files. Set the list of errors that will be added into the log. To do so, enable the option Report all errors and in the Ignore errors select the errors that won't be logged. 

    The following records are added into the php.ini configuration file:

    php.ini configuration file
    error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT.

    E_ALL — display all errors.

    & ~E_DEPRECATED & ~E_STRICT — errors that won't be displayed separated with "& ~".

    Disable the option  Report all errors and in the  field select the error that will be added into the log.  

    The following records are added into the php.ini configuration file:

    php.ini configuration file
    error_reporting = E_ERROR | E_NOTIC
    E_ERROR | E_NOTICthe errors that are added into the log (separated with " | ".

Restor the variable value 


To restore a variable value as an administrator, perform the following steps:

  1. Go to Web-server settings → PHP → Extended settings → Restore.
  2. The modified value is deleted from the PHP global configuration file.
  3. For every ISPmanager user:
    1. The content of the user configuration file is fully changed into the content of the global file.
    2. Values from the configuration file of the modified parameters change the corresponding values in the user configuration file. 

To restore a variable value as a user, perform the following steps:

  1. Go to WWW → PHP → Extended settings → Restore.
  2. The modified value is deleted from the PHP user configuration file.


Thank you for your feedback!
Was the article useful?
Tell us why not:

it does not match the title

it was hard to understand

I didn't find the answer

recommendations from the article did not help

other

Tell us what you didn't like in the article: