Home

Awesome

PHP Builder

<a href="https://github.com/shivammathur/php-builder" title="PHP Builder"><img alt="Build status" src="https://github.com/shivammathur/php-builder/workflows/Build%20PHP/badge.svg"></a> <a href="https://github.com/shivammathur/php-builder/blob/main/LICENSE" title="license"><img alt="LICENSE" src="https://img.shields.io/badge/license-MIT-428f7e.svg"></a> <a href="https://github.com/shivammathur/php-builder/tree/main/builds" title="builds"><img alt="PHP Versions Supported" src="https://img.shields.io/badge/php-5.6 to 8.3-8892BF.svg"></a>

Contents

OS Support

All other distributions based on the above operating systems will also be supported on best effort basis.

Install

curl -sSLO https://github.com/shivammathur/php-builder/releases/latest/download/install.sh
chmod a+x ./install.sh

The installer takes the following options:

./install.sh <php-version> <release|debug> <nts|zts>

The php-version is required, and release and nts are the defaults.

Examples

./install.sh 8.3
./install.sh 8.3 debug zts
php -v

Notes:

Extensions

<ul><li><details> <summary>Expand to check the extensions installed along with PHP.</summary> <br>

amqp, apcu, ast, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, ds, enchant, exif, FFI, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, intl, json, ldap, libxml, mbstring, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, odbc, openssl, pcntl, pcov, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, PDO_ODBC, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, Phar, posix, pspell, readline, redis, Reflection, session, shmop, SimpleXML, soap, sockets, sodium, SPL, sqlite3, sqlsrv, standard, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, xdebug, xml, xmlreader, xmlwriter, xsl, zip, zlib, Xdebug, Zend OPcache

</details></li></ul>
phpdismod -v <ALL|php-version> -s <ALL|sapi-name> xdebug
phpenmod -v <ALL|php-version> -s <ALL|sapi-name> pcov
pecl install <extension>

JIT

PHP 8.0 and above versions have a JIT(Just-In-Time) compiler.

It is disabled by default, and can be enabled by the following steps:

phpdismod -v <ALL|php-version> -s <ALL|sapi-name> xdebug pcov
switch_jit -v <ALL|php-version> -s <ALL|sapi-name> enable -m <jit_mode> -b <jit_buffer_size>

If you do not specify -m or -b, the default for JIT mode is tracing, and for JIT buffer size it is 128M.

To disable JIT:

switch_jit -v <php-version> -s <ALL|sapi-name> disable

SAPI support

These SAPIs are installed by default:

These SAPI:server configurations can be set up with the switch_sapi script:

switch_sapi -v <php-version> -s <sapi|sapi:server>

Note: When you run switch_sapi, the servers will have the default document root /var/www/html.

Builds

The following releases have nts and zts builds for the following PHP versions along with builds with and without debugging symbols.

Uninstall

curl -sSLO https://github.com/shivammathur/php-builder/releases/latest/download/install.sh
chmod a+x ./install.sh
./install.sh --remove 8.3

or, to remove PHP 8.2:

./install.sh --remove 8.2

Related Projects

License

The scripts and documentation in this project are under the MIT license. This project has multiple dependencies. Their licenses can be found in their respective repositories.

Dependencies