asdf-php
PHP plugin for asdf version manager
[](https://github.com/asdf-community/asdf-php/actions)
[](http://makeapullrequest.com)
[](https://github.com/asdf-community/asdf-php/blob/master/LICENSE)
_Original version of this plugin created by
[@Stratus3D](https://github.com/Stratus3D)_
## Installation
```bash
asdf plugin-add php https://github.com/asdf-community/asdf-php.git
```
**Please, remember installing the commonly required libraries that can be found
on the `asdf` README. They are necessary to build PHP versions too!**
### Linux
You may need this libraries and packages to be able to compile PHP compiler
versions:
```bash
sudo apt-get install curl build-essential autoconf libjpeg-dev libpng12-dev openssl libssl-dev libcurl4-openssl-dev pkg-config libsslcommon2-dev libreadline-dev libedit-dev zlib1g-dev libicu-dev libxml2-dev gettext bison libmysqlclient-dev libpq-dev libsqlite3-dev libonig-dev
```
#### Ubuntu 18.04
```bash
sudo apt install curl build-essential libjpeg-dev libpng-dev openssl libcurl4-openssl-dev pkg-config libedit-dev zlib1g-dev libicu-dev libxml2-dev gettext bison libmysqlclient-dev libpq-dev libsqlite3-dev libonig-dev
```
### macOS
To compile PHP on macOS machines, you must install some brew packages first:
```bash
brew install freetype bison bison27 gettext icu4c jpeg libiconv libpng openssl readline zlib
```
Use environment variables to instruct `autoconf` on where to find the libraries
you installed using homebrew. Note that:
- for PHP 5.6, you must use `brew --prefix bison@2.7` in your PATH
- for PHP 7.x, you must use `brew --prefix bison` in your PATH
So replace if necessary:
```bash
PATH="$(brew --prefix bison)/bin:$(brew --prefix icu4c)/bin:$(brew --prefix icu4c)/sbin:$PATH" PHP_CONFIGURE_OPTIONS="--with-iconv=$(brew --prefix libiconv) --with-openssl=$(brew --prefix openssl)" asdf install php
```
**Important note**: There seems to be a bug with PHP `configure` file on recent
versions (> 7.1.4) when using macOS environments. As can be seen in
[this PR](https://github.com/phpbrew/phpbrew/issues/876#issuecomment-301553990),
it's needed to disable `gettext` at build time to work, and later on, impact the
module manually.
To disable it, just execute this **before** run the `asdf install` command:
```bash
export PHP_CONFIGURE_OPTIONS='--disable-gettext'
```
### Note: PHP-PEAR
PHP PEAR is down without ETA for when the server will be back. To install PHP
without PEAR you can specify a `PHP_WITHOUT_PEAR` variable with any value
(except no), eg:
```bash
PHP_WITHOUT_PEAR=yes asdf install php
```
## Usage
Check [asdf](https://github.com/asdf-vm/asdf) readme for instructions on how to
install & manage versions.
## License
Licensed under the
[Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0).