Justin Boswell 2f8d2ee756 Made PHP extension compile with openssl by default (#41)
* Made PHP extension compile with openssl

* Use catchsegv to dump a callstack

* Updated to use aws_crt_crypto_share()

* Much faster builds by making cmake parallel if supported

* Make sure all CRT threads shutdown prior to cleanup

* USE_OPENSSL should be the path to openssldir

* Updated to aws-crt-ffi v0.2.4
2021-08-30 13:36:54 -07:00
2021-08-17 19:06:14 -07:00
2021-08-17 19:06:14 -07:00
2021-08-17 19:06:14 -07:00
2020-09-23 15:43:36 -07:00
2021-08-17 19:06:14 -07:00
2021-06-17 09:21:00 -07:00
2020-09-23 15:43:36 -07:00
2021-06-17 09:21:00 -07:00
2020-09-23 15:43:36 -07:00
2021-06-17 09:21:00 -07:00
2020-09-23 15:43:36 -07:00
2021-06-17 09:21:00 -07:00
2021-06-17 09:21:00 -07:00
2021-07-28 12:54:37 -07:00

AWS Common Runtime PHP bindings

Requirements

  • PHP 5.5+ on UNIX platforms, 7.2+ on Windows
  • CMake 3.x
  • GCC 4.4+, clang 3.8+ on UNIX, Visual Studio 2017 build tools on Windows
  • Tests require Composer

Building on UNIX

$ git clone --recursive https://github.com/awslabs/aws-crt-php.git
$ cd aws-crt-php
$ phpize
$ ./configure
$ make && make test

Building on Windows

""" From VS2017 Command Prompt
> C:\php-sdk\phpsdk-vc15-x64.bat

C:\php-sdk\
$ phpsdk_buildtree php-<version>

C:\php-sdk\php-<version>\vc15\x64\
$ git clone https://github.com/php/php-src.git && cd php-src

""" This only has to be done once, the first time you set this all up
C:\php-sdk\php-<version>\vc15\x64\php-src
$ phpsdk_deps --update --branch <php-major.minor-version>

C:\php-sdk\php-<version>\vc15\x64\php-src
$ git clone --recursive https://github.com/awslabs/aws-crt-php.git ..\pecl\awscrt

C:\php-sdk\php-<version>\vc15\x64\php-src
$ buildconf

C:\php-sdk\php-<version>\vc15\x64\php-src
$ configure --enable-cli --with-openssl --enable-awscrt=shared

C:\php-sdk\php-<version>\vc15\x64\php-src
$ nmake

C:\php-sdk\php-<version>\vc15\x64\php-src
$ nmake test-awscrt

Debugging

Using PHPBrew to build/manage multiple versions of PHP is helpful.

Note: You must use a debug build of PHP to debug native extensions. See the PHP Internals Book for more info

# PHP 8 example
$ phpbrew install --stdout -j 8 8.0 +default -- CFLAGS=-Wno-error --disable-cgi --enable-debug
# PHP 5.5 example
$ phpbrew install --stdout -j 8 5.5 +default -openssl -mbstring -- CFLAGS="-w -Wno-error" --enable-debug --with-zlib=/usr/local/opt/zlib
$ phpbrew switch php-8.0.6 # or whatever version is current, it'll be at the end of the build output
$ phpize
$ ./configure
$ make CMAKE_BUILD_TYPE=Debug

Ensure that the php you launch from your debugger is the result of which php, not just the system default php.

Security

See CONTRIBUTING for more information.

License

This project is licensed under the Apache-2.0 License.

S
Description
No description provided
Readme
893 KiB
Languages
PHP 61.2%
C 31.4%
Python 4.5%
Makefile 1.5%
M4 0.6%
Other 0.8%