Distribute your PHP extension as self-installing phar executable
PHP Makefile
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
build
src
tests
.gitattributes
.gitignore
LICENSE
Makefile
README.md
composer.json

README.md

pharext

Join the chat at https://gitter.im/pharext/pharext

Distribute your PHP extension as self-installable phar executable. See https://pharext.org

About

You don't need this package to install any *.ext.phar extension packages, just run them with php:

$ ./pecl_http-2.4.2.ext.phar

For a compressed phar, or if the execute permission bit got lost somehow:

$ php pecl_http-2.4.2.ext.phar.gz

Command help:

$ ./pecl_http-2.4.2.ext.phar -h

Yields:

pharext v3.0.0 (c) Michael Wallner <mike@php.net>

Usage:

$ ./pecl_http-2.4.2.ext.phar [-hvqs] [-p|-n|-c|-i <arg>]

  -h|--help                                  Display help
  -v|--verbose                               More output
  -q|--quiet                                 Less output
  -p|--prefix <arg>                          PHP installation prefix if phpize is not in $PATH, e.g. /opt/php7
  -n|--common-name <arg>                     PHP common program name, e.g. php5 or zts-php [php]
  -c|--configure <arg>                       Additional extension configure flags, e.g. -c --with-flag
  -s|--sudo [<arg>]                          Installation might need increased privileges [sudo -S %s]
  -i|--ini <arg>                             Activate in this php.ini instead of loaded default php.ini
  --signature                                Show package signature
  --license                                  Show package license
  --name                                     Show package name
  --date                                     Show package release date
  --release                                  Show package release version
  --version                                  Show pharext version
  --enable-propro [<arg>]                    Whether to enable property proxy support [yes]
  --enable-raphf [<arg>]                     Whether to enable raphf support [yes]
  --with-http-zlib-dir [<arg>]               Where to find zlib [/usr]
  --with-http-libcurl-dir [<arg>]            Where to find libcurl [/usr]
  --with-http-libevent-dir [<arg>]           Where to find libevent [/usr]

If your installation destination needs escalated permissions, have a look at the --sudo option:

Installing propro-1.0.1.ext.phar ...
Running phpize ...
Running configure ...
Running make ...
Running make install ...
Running INI activation ...
Extension already activated ...
Successfully installed propro-1.0.1.ext.phar!
Installing raphf-1.0.5.ext.phar ...
Running phpize ...
Running configure ...
Running make ...
Running make install ...
Running INI activation ...
Extension already activated ...
Successfully installed raphf-1.0.5.ext.phar!
Installing pecl_http-2.4.2.ext.phar ...
Running phpize ...
Running configure ...
Running make ...
Running make install ...
Running INI activation ...
Extension already activated ...
Successfully installed pecl_http-2.4.2.ext.phar!

Prerequisites

The usual tools you need to build a PHP extension:

  • php, phpize and php-config
  • make, cc and autotools

A network connection is not needed.

Extension maintainers

Download the pharext binary of the latest release.

Be aware that you need the public key to run official pharext releases.

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5x9bwisjDBDV/bwDiju2
Ebx4kPir32WwT3+hxV0/qAPclA1WsrpcUJ7BChk+Rlz8ujOcyENTidgI1vj3oUpo
/P9XlLQOSrJHYz+AOg7qwhTe89xIJspS4gHHiXUAmxz0TyCNMbOyrLcjP5CmZdll
n+e3HP8Kfipr4XyWBhsKbdYUZ8Ga6IeFMYzNqCzWazcOasdCpsablmyrfCaZoJ0l
bFald0nF3/YoeYgo3fWb4Md9Xf/grpz8Ocqyq4OY49Vb0/p8FMwzBV6vbVh/eAV/
jrP7L40Jw97nSBrP/5nK8Ylc5BayVRq/HhT3kLMC//zvPjb8xz3ZgVTQrwWTF3Zy
+wIDAQAB
-----END PUBLIC KEY-----

Place it as pharext.pubkey in the same directory where the pharext binary is located. IF you cloned the repository or installed pharext through composer, it is already at the right location.

Please have a look at the wiki, to learn how to use the pharext installer to package self-installing PHP extensions.