Skip to main content

PHP Integration

OpenLiteSpeed is especially well known for efficient PHP delivery. The core of that integration is LSAPI and the lsphp runtime.

LSAPI (LiteSpeed SAPI)

PHP LSAPI Overview

LSAPI is LiteSpeed's interface for running PHP processes efficiently with low overhead and strong reuse of worker processes.

Process Management

OpenLiteSpeed can spawn and manage PHP workers through an external application definition. You control limits such as max connections, environment variables, process count, and idle timeout.

Performance Benefits

  • Faster reuse than classic CGI patterns
  • Lower process creation overhead
  • Good fit for high-concurrency PHP applications
  • Tight integration with OpenLiteSpeed process controls

External Applications

lsphp Configuration

Define an external app in WebAdmin or config files that points to a specific lsphp binary, such as /usr/local/lsws/lsphp84/bin/lsphp.

Socket Configuration

Unix domain sockets are commonly used because they are efficient for same-host communication.

Example socket path:

uds://tmp/lshttpd/example.sock

Command Setup

The command usually points to the lsphp binary and may include environment variables for PHP INI selection or app-specific settings.

Script Handlers

PHP Handler Mapping

Map the .php suffix to the external app so PHP files are executed by the correct lsphp instance.

Multiple PHP Versions

You can define more than one external app and assign different script handlers per virtual host. This is useful when one application needs PHP 8.1 and another needs PHP 8.3 or 8.4.

PHP Optimization

OPcache

Enable OPcache in production so compiled PHP bytecode is reused across requests.

Memory Limits

Set PHP memory limits based on application behavior, not guesswork. A CMS with plugins may need more than a small custom app.

Process Limits

Right-size PHP workers to available RAM. Too few workers increase queueing. Too many workers cause swap pressure and worse performance.

Example Planning Model

ItemGuideline
SocketPrefer Unix socket for local PHP
OPcacheEnable in production
Worker countSize from RAM and peak concurrency
PHP versioningSeparate handlers when apps differ
Memory limitTune from real application usage

Operational Advice

  • Keep lsphp versions aligned with application support policies
  • Restart or reload PHP workers after major INI changes
  • Avoid globally increasing limits without measuring impact
  • Document which virtual hosts use which PHP binary and socket