mirror of
https://github.com/awslabs/aws-crt-php.git
synced 2026-08-17 17:47:12 +00:00
win-ci-test2
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
- First, ensure that you are able to build PHP on windows via the PHP SDK (this example assumes installation of the SDK to C:\php-sdk and that you've checked out the PHP source to php-src within the build directory). The following resources are helpful to get PHP 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
Note: for VS2017, Cmake will default to build for Win32, refer to here. If you are building for x64 php, you can set environment variable as follow to let cmake pick x64 compiler.
set CMAKE_GENERATOR=Visual Studio 15 2017
set CMAKE_GENERATOR_PLATFORM=x64
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.
Languages
PHP
61.2%
C
31.4%
Python
4.5%
Makefile
1.5%
M4
0.6%
Other
0.8%