LSAPI
Release Log
Join the "LiteSpeed Edge Users" Google Group for cutting-edge build notifications.
LiteSpeed Server API (LSAPI) is highly optimized for communication between LiteSpeed and third party web engines.
-
PHP LSAPI 8.1 (11-01-2022) Improvement
- IMPROVEMENT Compatible with PHP 8.2.
PHP LSAPI 8.0.1 (02-22-2022) Bugfix
- BUGFIX Address garbled command line parameter showing current running script path.
PHP LSAPI 8.0 (12-03-2021) New Feature, Improvement & Misc
- NEW FEATURE PHP 8.1 support.
- IMPROVEMENT Better OpenBSD compatibility.
- Misc Clean up compiler warnings.
PHP LSAPI 7.9 (03-05-2021) Tuning
- TUNING Process manager now keeps forked child processes alive for longer based on load, reducing process manager overhead on busy setups.
PHP LSAPI 7.8 (09-01-2020) Tuning, Bugfix
- NEW FEATURE PHP 8.0 RC support.
- TUNING Update log message with more information when possible: Timestamp, UID, PID, etc.
- BUGFIX Correct inaccurate children process tracking.
PHP LSAPI 7.7 (07-22-2020) Security, Improvement
- SECURITY Fix a missed buffer boundary check.
- IMPROVEMENT Include UID information in some log entries.
PHP LSAPI 7.6 (11-22-2019) New Feature, Update
- NEW FEATURE Added environment variable 'LSAPI_CLEAN_SHUTDOWN' for clean shutdown control.
- UPDATE Disabled clean shutdown for PHP versions lower than PHP 7 by default.
PHP LSAPI 7.5 (07-22-2019) Bugfixes
- BUGFIX Override ITIMER_PROF to 0.1 seconds to ensure that a clean shutdown won't get stuck in an infinity loop.
- BUGFIX Completely disabled "error_reporting" before starting a clean shutdown to avoid generating a large amount of error log entries.
PHP LSAPI 7.4 (06-14-2019) Improvements
- IMPROVEMENT Gracefully clean up PHP temp files when PHP processes are killed in middle of executing a script.
- IMPROVEMENT Allow request header sizes up to 64KB.
PHP LSAPI 7.3 (04-12-2019) New Feature & Improvement
- NEW FEATURE `litespeed_finish_request()` and alias `fastcgi_finish_request()` to allow PHP to continue running background jobs after finishing the current request.
- IMPROVEMENT Improved process manager to keep worker processes alive when there is enough free memory.
PHP LSAPI 7.2 (01-21-2019) Improvements & Bug Fixes
- IMPROVEMENT Added timestamp when directly logging stderr to file.
- BUGFIX Fixed LSAPI protocol corruption when PHP scripts fork child process. (reported by CloudLinux)
- BUGFIX Fixed uninitialized sa_mask during signal handler setup. (reported with patch by CloudLinux)
- BUGFIX Fixed wrong string length when trimming long log strings containing trailing newlines. (reported with patch by CloudLinux)
- BUGFIX Fixed max idle timeout time not resetting properly during socket events. (reported with patch by CloudLinux)
PHP LSAPI 7.1 (4-11-2018) Feature Enhancements & Bug Fixes
- NEW FEATURE Allow php_admin_value to override configuration set in php.ini, similar to open_basedir.
- IMPROVEMENT Improved PHP side CRIU support.
- BUGFIX Fixed a bug in PHP suEXEC daemon mode that was causing permission issues.
PHP LSAPI 7.0 (2-28-2018) Feature Enhancements
- NEW FEATURE Added CRIU support.
- NEW FEATURE Added support for [PATH=] and [HOST=] sections in php.ini.
- IMPROVEMENT Enhanced process manager.
PHP LSAPI 6.11 (6-28-2017) Bug Fixes
- BUGFIX Fixed .user.ini value displaying in phpinfo(), but not actually applying. (Patch provided by CloudLinux)
- BUGFIX Fixed a bug where 'ini_set' failed to override 'php_value' in .htaccess. (Patch provided by CloudLinux)
PHP LSAPI 6.10 (9-19-2016) Feature Enhancements
- NEW FEATURE Added .user.ini support, controlled by the LSPHP_ENABLE_USER_INI environment variable.
- NEW FEATURE Added new environment variable LSPHPRC to override php.ini.
PHP LSAPI 6.9 (12-9-2015) Bug Fixes
- Fixed a bug in suEXEC daemon mode where server secret would not be cleared.
- Fixed a bug where a malformed LSAPI request could crash the PHP process.
- Fixed a bug in CLI mode that caused a bad value for the DIR global variable.
- (PHP 7) Fixed a bug that broke PHP configuration override through Apache config.
PHP LSAPI 6.8 (6-12-2015) Improved functionality
- Added PHP 7 support.
PHP LSAPI 6.7 (9-4-2014) Improved functionality and bug fix
- Added support for filter_input() function.
- Fixed bug causing a crash when run in CLI mode.
PHP LSAPI 6.6 (11-22-2013) Performance improvement
- Default child process limit for suEXEC Daemon mode increased to avoid stalling the daemon and causing 503 errors.
PHP LSAPI 6.5 (11-18-2013) Bug fix
- Fixed bug in LSAPI lib causing problems for executing commands from within PHP scripts. Problem existed since version 6.2.
PHP LSAPI 6.4 (10-30-2013) Minor bug fixes and feature enhancements
- Avoid multiple debugging sessions when hanging PHP processes detected.
- Return 508 error page when CloudLinux LVE resource limit has been reached.
- Fixed bug in tracking number of child processes.
- Minor performance tuning for suEXEC daemon mode.
PHP LSAPI 6.3 (08-06-2013) Minor bug fixes and feature enhancements
- Added apache_get_modules() function to improve compatibility with mod_php.
- Fixed a bug showing partial original command line parameters.
- Changed GDB stack backtrace generation setting to disabled by default. It can be enabled with the the environment variable LSAPI_DUMP_DEBUG_INFO=1.
PHP LSAPI 6.2 (05-22-2013) Minor feature enhancements
- Added the ability for the suEXEC daemon to kill runaway child processes.
- Speeded up recycling of child processes for better memory usage.
- Changed process naming, allowed for shorter process names.
PHP LSAPI 6.1 (11-21-2012) Minor bug fixes
- Remove code related to changing php.ini when suEXEC daemon mode is used, does not work.
- Added "-n" option for CLI mode, which skips loading php.ini
PHP LSAPI 6.0 (09-10-2012) Major feature enhancements
- PHP suEXEC daemon mode has been added to improve performance and memory efficiency.
- added native CloudLinux LVE/CageFS support.
PHP LSAPI 5.5 (12-13-2010) Minor bug fix
- added support for "php_value engine off" feature
- fixed the validation code for length of custom HTTP header.
PHP LSAPI 5.4 (7-15-2010) Minor bug fix
- change configuration option "register_long_arrays" to be turned on by default.
- fixed installer script for FreeBSD.
PHP LSAPI 5.3 (2-8-2010) Minor bug fix
- configuration option "register_long_arrays" that turned off by default can be enabled through php.ini.
PHP LSAPI 5.1 (1-17-2010) Minor bug fix
- Improved performance by optimizing PHP interface code.
- Fixed few compatibility bugs
PHP LSAPI 5.0 (1-12-2010) Major feature enhancements
- Improved performance by optimizing PHP interface code.
- Implemented the feature that show script name in "top" and "ps" output.
- Added slow request log to identify slow PHP scripts.
- Show LSAPI code version in PHPINFO page
PHP LSAPI 4.8 (9-10-2008) Minor feature enhancements
- Ignore SIGXFSZ signal and disable core dump by default.
PHP LSAPI 4.7 (4-14-2008) Minor bug fixes
- Switched to non-blocking listener socket to avoid hanging Ruby/Php processes, replaced kill( ppid, 0 ) with getppid() to test the status of the parent process.
PHP LSAPI 4.6 (2-26-2008) Minor bug fixes
- Improved the internal process manager to avoid killing active children process with SIGTERM.
PHP LSAPI 4.5 (1-31-2008) Minor bug fixes
- Fixed the code in LSAPI libary that failed to compile under Mac OS X.
- Added implementation of PHP function getallheaders() and apache_request_headers(), compatibility with PHP code written for mod_php has been improved.
PHP LSAPI 4.4 (1-3-2008) Minor bug fixes
- Error logging has been improved during application startup time to avoid 503 errors.
- Source code has been cleaned up.
PHP LSAPI 4.3 (12-11-2007) Minor feature enhancements
- Added a command line option to enable PHP source code output.
PHP LSAPI 4.2 (11-25-2007) Minor bug fixes
- Fixed a bug that causes LSAPI build failure on some Apple Mac OS X environments.
PHP LSAPI 4.1 (8-21-2007) Minor bug fixes
- Added LSAPI_AVOID_FORK environment variable to minimize dynamic start/stop of children process.
- Fixed a bug that may cause infinity looping while reading request body under special situation.
PHP LSAPI 4.0 (5-10-2007) Minor feature enhancement
- Added support for 'apache_response_headers' function.
PHP LSAPI 3.1 (4-24-2007) Minor bug fixes
- Improved builtin Process Manager to reliably stop children processes.
- Added LSAPI_EXTRA_CHILDREN environment variable to give better control of extra children processes can be started while existing children processes are in error state.
PHP LSAPI 2.4 (01-10-2007) Bug Fix
- Fixed: A bug may cause LSAPI application to run with 99% CPU.
- Improved: Ruby LSAPI extension follows specification of ruby's I/O library more closely.
PHP LSAPI 2.3 (10-09-2006) Bug Fix
- Fixed: Custom request header values could be truncated.
PHP LSAPI 2.2 (07-07-2006) Compatibility
- PHP LSAPI has been upgraded to work with "getenv()" function. For code portability, LiteSpeed recommend PHP coders to defer from using getenv() and use specific $_ENV variable access.
PHP LSAPI 2.1 (05-16-2006) Bug Fix
- Fixed a 503 error when PHP_LSAPI_CHILDREN env variable is set. The env variable does not apply to Ruby but the fix affected the base library.
-
Python LSAPI 2.1 (08-31-2022) Bugfix
- BUGFIX Address compatibility with python 3.10.
Python LSAPI 2.0 (12-06-2021) News Feature & Improvement
- NEW FEATURE Python 3.9 support.
- Misc Clean up compiler warnings.
Python LSAPI 1.9 (02-23-2021) Bugfix
- BUGFIX Properly decode UTF-8 encoded characters in request header.
Python LSAPI 1.8 (02-03-2021) Improvement
- IMPROVEMENT Avoid being detected as interactive mode, which caused environments set in .env to not be applied for python applications.
Python LSAPI 1.7 (09-01-2020) Tuning, Bugfix
- TUNING Update log message with more information when possible: Timestamp, UID, PID, etc.
- BUGFIX Correct inaccurate children process tracking.
Python LSAPI 1.6 (05-11-2020) Improvement
- IMPROVEMENT Added support for python 3.8 in Ubuntu 20.04.
Python LSAPI 1.5 (08-12-2019) Bugfix
- BUGFIX Improved wsgi-lsapi performance by recycling child worker processes less aggressively.
Python LSAPI 1.4 (2-27-2018) Improvements
- IMPROVEMENT Improved stderr logging with timestamp.
- IMPROVEMENT disabled unnecessary debug logging.
Python LSAPI 1.3 (1-19-2018) Feature Enhancements & Bug Fixes
- NEW FEATURE STDERR log output is now redirected to the application log directory for easier troubleshooting.
- BUGFIX Fixed a compatibility issue with the Django framework.
Python LSAPI 1.2 (3-10-2017) Improved Compatibility
- IMPROVEMENT Improved compatibility with Python 3.
Python LSAPI 1.1 (1-9-2017) Improved Functionality
- MAJOR IMPROVEMENT Added support for Python 3.x releases.
Python LSAPI 1.0 (08-06-2013) Initial release
- Initial release of Python LSAPI.
-
Ruby LSAPI 5.6 (01-23-2024) Bugfix
- BUGFIX Address compatibility issue with ruby 3.2+ .
Ruby LSAPI 5.5 (06-09-2023) Bugfix
- BUGFIX Address compatibility issue with ruby 3.0+.
Ruby LSAPI 5.4 (01-18-2023) Bugfix
- BUGFIX Address compatibility issue with ruby 3.0+.
Ruby LSAPI 5.2 (02-02-2021) Bugfix
- BUGFIX Address stability issues with ruby 2.0+ caused by a regression in v5.1.
Ruby LSAPI 5.1 (09-01-2020) Tuning, Bugfixes
- TUNING Update log message with more information when possible: Timestamp, UID, PID, etc.
- BUGFIX Make single worker non-prefork mode work properly.
- BUGFIX Correct inaccurate children process tracking.
Ruby LSAPI 5.0 (05-15-2020) Tuning
- TUNINGImproved stability with Ruby 2.0+.
Ruby LSAPI 4.4 (01-19-2018) Feature Enhancements
- NEW FEATURE STDERR log output is now redirected to the application log directory for easier troubleshooting.
- IMPROVEMENT Improved compatibility with different versions of the RubyOnRails framework.
Ruby LSAPI 4.1 (01-30-2013) Major feature enhancements
- Added native RewindableInput implementation to boost RACK performance.
- Added support for Rack Sendfile middleware to utilize web server's file delivery code.
- Along with LSWS 4.2.2 release, provide better support for Rack/Rails 3.0+ applications.
Ruby LSAPI 3.5 (05-14-2009) Minor bug fix
- Reinitialize random number generator when a new child process was forked.
Ruby LSAPI 3.4 (10-27-2008) Minor bug fix
- Fixed a bug in calling STDERR.reopen() function.
Ruby LSAPI 3.3 (9-10-2008) Minor feature enhancements
- Ignore SIGXFSZ signal and disable core dump by default.
Ruby LSAPI 3.2 (4-14-2008) Minor bug fixes
- Switched to non-blocking listener socket to avoid hanging Ruby/Php processes, replaced kill( ppid, 0 ) with getppid() to test the status of the parent process.
Ruby LSAPI 3.1 (2-26-2008) Minor bug fixes
- Improved the internal process manager to avoid killing active children process with SIGTERM.
Ruby LSAPI 3.0 (1-31-2008) Minor bug fixes
- Fixed the code in LSAPI libary that failed to compile under Mac OS X.
- Added implementation of PHP function getallheaders() and apache_request_headers(), compatibility with PHP code written for mod_php has been improved.
Ruby LSAPI 2.9 (1-3-2008) Minor bug fixes
- Error logging has been improved during application startup time to avoid 503 errors.
- Source code has been cleaned up.
Ruby LSAPI 2.8 (11-25-2007) Minor bug fixes
- Fixed a bug that causes LSAPI build failure on some Apple Mac OS X environments.
Ruby LSAPI 2.7 (8-21-2007) Minor bug fixes
- Added LSAPI_AVOID_FORK environment variable to minimize dynamic start/stop of children process.
- Fixed a bug that may cause infinity looping while reading request body under special situation.
Ruby LSAPI 2.5 (05-18-2007) Feature enhancement/Bug fix
- Fixed request_uri incompatibility issue by including query string part.
Ruby LSAPI 2.4 (4-24-2007) Minor bug fixes
- Improved builtin Process Manager to reliably stop children processes.
- Added LSAPI_EXTRA_CHILDREN environment variable to give better control of extra children processes can be started while existing children processes are in error state.
Ruby LSAPI 2.3 (03-15-2007) Feature enhancement/Bug fix
- LSAPI integration code has been rewritten with better process control and better STDERR logging.
- Following environment variables has been added: LSAI_MAX_IDLE_CHILDREN, LSAPI_MAX_PROCESS_TIME, please refer to README file for more detail.
- STDERR stream is logged into web server log file instead of stderr.log.
Ruby LSAPI 1.13 (01-16-2007) Bug Fix
- Fixed: A bug may cause Ruby LSAPI application to run with 99% CPU.
Ruby LSAPI 1.12 (01-10-2007) Bug Fix
- Fixed: A bug may cause LSAPI application to run with 99% CPU.
- Improved: Ruby LSAPI extension follows specification of ruby's I/O library more closely.
Ruby LSAPI 1.11 (10-09-2006) Bug Fix
- Fixed: Custom request header values could be truncated.
Ruby LSAPI 1.10 (09-29-2006) Bug Fix
- Fixed: Registered "env_copy" as a ruby global variable to prevent it from being garbage collected resulting in possible 503 error.
Ruby LSAPI 1.9 (09-25-2006) Feature enhancement/Bug fix
- Fixed: Build problem for Solaris 8.
- Compatibility: Request parameters have been updated to match that of WEBrick.
Ruby LSAPI 1.8 (09-18-2006) Feature enhancement/Bug fix
- New: Added environment variable "LSAPI_PGRP_MAX_IDLE" to tell idle process group to terminate. This environment variable will be set by LSWS 2.2.2 automatically based on "Max idle time".
Ruby LSAPI 1.7 (09-11-2006) Bug fix
- Updated: Change default of LSAPI_MAX_REQS to 1,000,000 from 1,000.
- Fixed: Missing environment variables set in Rails configuration.
Ruby LSAPI 1.6 (08-22-2006) Bug fix
- Fixed: work around Ruby's internal signal handler to ensure unresponsive Ruby processes terminate.
Ruby LSAPI 1.5 (08-16-2006) Bug fix
- Fixed: v1.4 bug where small POST operation can fail.
Ruby LSAPI 1.4 (08-04-2006) Feature enhancement/Bug fix
- Fixed: a worker process does not remain persistent if a request has been canceled.
- New: Maximum number of worker processes has been limited to twice the configured value to prevent DoS type attacks.
- New Env Variable: LSAPI_MAX_REQS=n, where n is the maximum number of requests that a child process can serve.Default value is 1000. Once the value is reached, the child process will exit automatically. This will help in case of any memory leaks in Rails.
- New Env Variable: LSAPI_MAX_IDLE=n, where n is the maximum idle time in seconds that a child process will be waiting for a new request. Once limit is reached, the child process will quit. Default value is 60. When n <= 0, the child process will wait indefinitely. This option helps getting rid of idle children processes.
Ruby LSAPI 1.3 (06-29-2006) Bug Fix
- A SIGCHLD signal handler has been added to the Ruby LSAPI module to resolve a problem which can lead to zombie processes.
Ruby LSAPI 1.2 (05-16-2006) Bug Fix
- Fixed a 503 error when PHP_LSAPI_CHILDREN env variable is set. The env variable does not apply to Ruby but the fix affected the base library.