Modifications to PHP source code
During the static compilation process, static-php-cli made some modifications to the PHP source code in order to achieve good compatibility, performance, and security. The following is a description of the current modifications to the PHP source code.
Micro related patches
Based on the patches provided by the phpmicro project, static-php-cli has made some modifications to the PHP source code to meet the needs of static compilation. The patches currently used by static-php-cli during compilation in the patch list are:
- static_opcache
- static_extensions_win32
- cli_checks
- disable_huge_page
- vcruntime140
- win32
- zend_stream
- cli_static
- macos_iconv
- phar
PHP <= 8.1 libxml patch
Because PHP only provides security updates for 8.1 and stops updating older versions, static-php-cli applies the libxml compilation patch that has been applied in newer versions of PHP to PHP 8.1 and below.
gd extension Windows patch
Compiling the gd extension under Windows requires major changes to the config.w32
file. static-php-cli has made some changes to the gd extension to make it easier to compile under Windows.
YAML extension Windows patch
YAML extension needs to modify the config.w32
file to compile under Windows. static-php-cli has made some modifications to the YAML extension to make it easier to compile under Windows.
static-php-cli version information insertion
When compiling, static-php-cli will insert the static-php-cli version information into the PHP version information for easy identification.
Add option to hardcode INI
When using the -I
parameter to hardcode INI into static PHP functionality, static-php-cli will modify the PHP source code to insert the hardcoded content.
Linux system repair patch
Some compilation environments may lack some system header files or libraries. static-php-cli will automatically fix these problems during compilation, such as:
- HAVE_STRLCAT missing problem
- HAVE_STRLCPY missing problem
Fiber issue fix patch for Windows
When compiling PHP on Windows, there will be some issues with the Fiber extension. static-php-cli will automatically fix these issues during compilation (modify config.w32
in php-src).