Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
litespeed_wiki:php:per-user-php-ini [2018/11/13 22:44]
Jackson Zhang
litespeed_wiki:php:per-user-php-ini [2019/08/29 20:44]
Jackson Zhang
Line 58: Line 58:
 **Note:​** ​ **Note:​** ​
    * Using this method will cause LSWS to ignore any global php.ini files and only use the user-defined php.ini. However, if no user-defined php.ini found, LSWS will still use global php.ini  ​    * Using this method will cause LSWS to ignore any global php.ini files and only use the user-defined php.ini. However, if no user-defined php.ini found, LSWS will still use global php.ini  ​
 +
 +Starting from LSWS 5.3.x, LSWS may automatically configure external applications and script handlers for control panels, hence it may not have external applications or script handlers anymore. If you want to define PHPRC environment variable for all external applications,​ you can use ''​PHP''​ tab:
 +{{ :​litespeed_wiki:​php:​lsws-5.3.x-php-tab.png?​800 |}}
 + 
  
 ===== 3. Define PHP_INI_SCAN_DIR at the Server Level in the WebAdmin Console ===== ===== 3. Define PHP_INI_SCAN_DIR at the Server Level in the WebAdmin Console =====
Line 78: Line 82:
   * This method is not recommended if you replace Apache with suPHP. When replacing Apache with suPHP, the PHPRC environment variable is recommended.   * This method is not recommended if you replace Apache with suPHP. When replacing Apache with suPHP, the PHPRC environment variable is recommended.
   * The PHP_INI_SCAN_DIR environment variable is available for PHP 5.2.7 and up.   * The PHP_INI_SCAN_DIR environment variable is available for PHP 5.2.7 and up.
 +
 +Starting from LSWS 5.3.x, LSWS may automatically configure external applications and script handlers for control panels, hence it may not have external applications or script handlers anymore. If you want to define ''​PHPRC''​ environment variable for all external applications,​ you can use ''​PHP''​ tab.
  
 ===== 4. Define PHPRC in Apache Configs ===== ===== 4. Define PHPRC in Apache Configs =====
Line 105: Line 111:
 This directive is supported since PHP LSAPI version V6.10. This directive is supported since PHP LSAPI version V6.10.
  
-===== 7. Special ​Apache directive LS_EXTAPP_ENV on cpanel ​to override External application environment variables ​=====+===== 7. Override External Application Environment Variables ===== 
 +The special ​Apache directive ​''​LS_EXTAPP_ENV''​ can be used on cPanel or other control panel environments ​to override External application environment variables.
  
-On CPanel or other control panel environment, ​you may have set up "PHP_INI_SCAN_DIR" as step 3 and also set up "PHP_INI_SCAN_DIR" as step 1LSWS will use "PHP_INI_SCAN_DIR" ​from external app environment instead of Apache directives. ​Is there any way to override the external app environment? ​Starting from LSWS 5.3.4, a new special ​apache ​directive ​"LS_EXTAPP_ENV" has been introduced for this purposeYou can place it in Apache virtual host include file to override external app environment settings.+If you have set up ''​PHP_INI_SCAN_DIR''​ in step 3and ''​PHP_INI_SCAN_DIR''​ in step 1LSWS will use ''​PHP_INI_SCAN_DIR'' ​from an external app environment instead of using Apache directives. Starting from LSWS 5.3.4, ​you can override this external app environment using a new special ​Apache ​directive: ''​LS_EXTAPP_ENV''​Place the directive ​in the Apache virtual host include file, like so:
  
-For example, you have set the following in external app environment:​+For example, ​say you have set the following in an external app environment:​
   PHP_INI_SCAN_DIR=/​home/​USER1/​public_html   PHP_INI_SCAN_DIR=/​home/​USER1/​public_html
-but if you want to override it to another location as "/​home/​USER1/​data", you can add the following to Apache virtual host include file:+If you want to override it to another location, such as ''​/​home/​USER1/​data''​, you can add the following to the Apache virtual host include file:
   <​IfModule Litespeed>​   <​IfModule Litespeed>​
   LS_EXTAPP_ENV PHP_INI_SCAN_DIR=/​home/​USER1/​data/​   LS_EXTAPP_ENV PHP_INI_SCAN_DIR=/​home/​USER1/​data/​
Line 125: Line 132:
   * For native LSWS installs, these variables ($VH_ROOT, $VH_NAME, $VH_USER, etc.) need to be inside of a Virtual Host External App Environment Section, and not inside the general Server External App Environment Section. This is because the variables are expanded on start up, so the VH_* variables cannot be expanded during server level configurations.   * For native LSWS installs, these variables ($VH_ROOT, $VH_NAME, $VH_USER, etc.) need to be inside of a Virtual Host External App Environment Section, and not inside the general Server External App Environment Section. This is because the variables are expanded on start up, so the VH_* variables cannot be expanded during server level configurations.
  
 +===== 8 Supports MultiPHP INI Editor for cPanel out of the box =====
 +When a user login to cPanel and edit his own php settings through [[https://​documentation.cpanel.net/​display/​82Docs/​MultiPHP+INI+Editor+for+cPanel|cPanel MultiPHP INI Editor]] (cPanel >> Home >> Software >> MultiPHP INI Editor), cPanel MultiPHP INI Editor will save changes to three files in /​home/​$USER/​public_html/: ​  ​php.ini file, the user.ini file, and .htaccess file. 
 +
 +For example:
 +  [/​home/​blogu1/​public_html]#​ ll
 +  -rw-r--r-- ​ 1 blogu1 blogu1 4484 Aug 29 12:25 .htaccess
 +  -rw-r--r-- ​ 1 blogu1 blogu1 ​ 576 Aug 29 12:25 php.ini
 +  -rw-r--r-- ​ 1 blogu1 blogu1 ​ 582 Aug 29 12:25 .user.ini
 +
 +in .htaccess
 +  # BEGIN cPanel-generated php ini directives, do not edit
 +  # Manual editing of this file may result in unexpected behavior.
 +  # To make changes to this file, use the cPanel MultiPHP INI Editor (Home >> Software >> MultiPHP INI Editor)
 +  # For more information,​ read our documentation (https://​go.cpanel.net/​EA4ModifyINI)
 +  <​IfModule php7_module>​
 +   ​php_flag display_errors Off
 +   ​php_value max_execution_time 57
 +   ​php_value max_input_time 60
 +   ​php_value max_input_vars 1000
 +   ​php_value memory_limit 33M
 +   ​php_value post_max_size 8M
 +   ​php_value session.gc_maxlifetime 1440
 +   ​php_value session.save_path "/​var/​cpanel/​php/​sessions/​ea-php72"​
 +   ​php_value upload_max_filesize 2M
 +   ​php_flag zlib.output_compression Off
 +  </​IfModule>​
 +  <​IfModule lsapi_module>​
 +   ​php_flag display_errors Off
 +   ​php_value max_execution_time 57
 +   ​php_value max_input_time 60
 +   ​php_value max_input_vars 1000
 +   ​php_value memory_limit 33M
 +   ​php_value post_max_size 8M
 +   ​php_value session.gc_maxlifetime 1440
 +   ​php_value session.save_path "/​var/​cpanel/​php/​sessions/​ea-php72"​
 +   ​php_value upload_max_filesize 2M
 +   ​php_flag zlib.output_compression Off
 +  </​IfModule>​
 +  # END cPanel-generated php ini directives, do not edit
 +
 +in .user.ini ​
 +  ; cPanel-generated php ini directives, do not edit
 +  ; Manual editing of this file may result in unexpected behavior.
 +  ; To make changes to this file, use the cPanel MultiPHP INI Editor (Home >> Software >> MultiPHP INI Editor)
 +  ; For more information,​ read our documentation (https://​go.cpanel.net/​EA4ModifyINI)
 +  [PHP]
 +  display_errors = Off
 +  max_execution_time = 57
 +  max_input_time = 60
 +  max_input_vars = 1000
 +  memory_limit = 33M
 +  post_max_size = 8M
 +  session.gc_maxlifetime = 1440
 +  session.save_path = "/​var/​cpanel/​php/​sessions/​ea-php72"​
 +  upload_max_filesize = 2M
 +  zlib.output_compression = Off
 +                             
 +in  php.ini
 +  ; cPanel-generated php ini directives, do not edit
 +  ; Manual editing of this file may result in unexpected behavior.
 +  ; To make changes to this file, use the cPanel MultiPHP INI Editor (Home >> Software >> MultiPHP INI Editor)
 +  ; For more information,​ read our documentation (https://​go.cpanel.net/​EA4ModifyINI)
 +  display_errors = Off
 +  max_execution_time = 57
 +  max_input_time = 60
 +  max_input_vars = 1000
 +  memory_limit = 33M
 +  post_max_size = 8M
 +  session.gc_maxlifetime = 1440
 +  session.save_path = "/​var/​cpanel/​php/​sessions/​ea-php72"​
 +  upload_max_filesize = 2M
 +  zlib.output_compression = Off
 +
 +Why the same changes are being saved to three different files at the same time? It is because of different php handler will use different files to apply the settings. User may change handler sometimes and three files keeping the same changes will make sure cPanel MultiPHP INI Editor settings will apply regardless of handler change.
 +
 +For Apache SuPHP, it will use php.ini. For Apache PHP CGI and PHP-fpm, it will use .user.ini. For CloudLinux mod_lsapi for Apache, it will use .htaccess. LiteSpeed will use settings in .htaccess.  ​
 +
 +LiteSpeed will be compatible with cPanel MultiPHP INI Editor out of box without extra configuration required. However, if you explicitly want to apply /​home/​$USER/​public_html/​php.ini regardless of the cpanel default multi-files implementation,​ you will need to use ''​PHP_INI_SCAN_DIR''​ to manually set up as instructed earlier in this wiki, but it is not recommended to do so and you are encouraged to just use cPanel MultiPHP INI Editor ways of implementation. ​
  
 ===== Troubleshoot ===== ===== Troubleshoot =====
  • Admin
  • Last modified: 2020/01/01 15:13
  • by George Wang