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
litespeed_wiki:per_user_php_ini [2014/07/29 19:46]
Michael Armstrong
— (current)
Line 1: Line 1:
-====== Allowing Per-User php.ini ====== 
- 
-This document lists the options for allowing use of a per-user php.ini. The document assumes that you are running LiteSpeed Web Server (LSWS) off of Apache. (This applies to users using control panels.) Some of the methods mentioned here can also be used if you are running off LSWS-native configs. 
- 
-Per-user php.ini files are not compatible with [[http://​www.litespeedtech.com/​products/​litespeed-sapi/​php/​suexec-daemon-mode|suEXEC Daemon mode]]. Our [[http://​www.litespeedtech.com/​products/​litespeed-sapi/​php/​guide-to-suexec-setups|two other PHP suEXEC setups]] both support per-user php.ini. 
- 
-Some of the following methods can be used together. 
- 
-===== 1. Define PHPRC at the Server Level in the WebAdmin Console ===== 
- 
-Defining ''​PHPRC''​ in the WebAdmin console allows you to use a variable that can set a standard location for the php.ini file in each virtual host. 
- 
-In your external application Environment setting (WebAdmin console > Server > External App > lsphp5), enter: ''​PHPRC=variable/​php.ini/​directory''​ 
- 
-Example: 
- 
-  PHPRC=$VH_ROOT/​public_html 
- 
-The variables available for use are: 
- 
-  - $VH_ROOT: the virtual host's home directory 
-  - $VH_NAME: the virtual host's domain 
-  - $VH_USER: the virtual host's user 
- 
-**Note:​** ​ 
-   * Using this method will cause LSWS to ignore any global php.ini files and only use the user-defined php.ini. 
- 
-===== 2. Define PHPRC in Apache Configs ===== 
- 
-Defining ''​PHPRC''​ in Apache'​s virtual host configurations allows you to set a php.ini location for a specific virtual host. 
- 
-In the Apache virtual host configuration file, add ''​SetEnv PHPRC /​php.ini/​directory''​. 
- 
-**Note:​** ​ 
-   * Using this method will cause LSWS to ignore any global php.ini files and only use the user-defined php.ini. 
-   * This method is only supported in LSWS 4.2.13 and up. 
- 
-===== 3. Define PHP_INI_SCAN_DIR at the Server Level in the WebAdmin Console ===== 
- 
-Using the ''​PHP_INI_SCAN_DIR''​ environment variable allows you to use a variable that can set a standard location for the php.ini file in each virtual host. Unlike ''​PHPRC'',​ though, ''​PHP_INI_SCAN_DIR''​ allows the use of the global php.ini file with the addition of a per-user php.ini. 
- 
-In your external application Environment setting (WebAdmin console > Server > External App > lsphp5), enter: ''​PHP_INI_SCAN_DIR=variable/​php.ini/​directory''​ 
- 
-Example: 
- 
-  PHP_INI_SCAN_DIR=$VH_ROOT/​public_html 
- 
-The variables available for use are: 
- 
-  - $VH_ROOT: the virtual host's home directory 
-  - $VH_NAME: the virtual host's domain 
-  - $VH_USER: the virtual host's user 
- 
- ​**Note:​** ​ 
-  * This method is not recommended if you replace Apache with suPHP. When replacing Apache with suPHP, ''​PHPRC''​ is recommended. 
-  * PHP_INI_SCAN_DIR is available for PHP 5.2.7 and up. 
- 
-===== 4. Define PHPIniDir in Apache Configs ===== 
- 
-Using the PHPIniDir directive in Apache'​s virtual host configurations allows you to set a php.ini location for the main virtual host of a specific user. 
- 
-In the Apache virtual host configuration file, add ''​PHPIniDir /​path/​to/​php.ini/​directory''​ 
- 
-**Note:​** ​ 
-  * The PHPIniDir directive at the vhost level has been supported since LSWS 4.0.2. 
-  * The PHPIniDir directive is effective **ONLY IF** placed in the 1st (or main domain) vhost of the user. Placing this directive in a subdomain vhost will be cause it to be ignored. 
- 
-====== Tips ====== 
-  * **PHP suEXEC MUST BE ENABLED IN LSWS.** 
-  * Make sure the php.ini file is readable by the suEXEC user. 
-  * Option 3 could be used along with option 1, 2, or 4 without conflicts. However, it should rarely be needed in the per user setup. 
-  * Option 4 takes precedence over options 1 and2 should they be used at the same time. 
-  * Changes in the php.ini will not be picked up until new PHP process starts. This is because php.ini is read for the first time when a php process starts. 
  
  • Admin
  • Last modified: 2014/07/29 19:46
  • by Michael Armstrong