aws / aws-crt-php
AWS Common Runtime for PHP
Requires
- php: >=5.5
Requires (Dev)
- phpunit/phpunit: ^4.8.35||^5.6.3||^9.5
- yoast/phpunit-polyfills: ^1.0
Suggests
- ext-awscrt: Make sure you install awscrt native extension to use any of the functionality.
- dev-main
- v1.2.6
- v1.2.5
- v1.2.4
- v1.2.3
- v1.2.2
- v1.2.1
- v1.2.0
- v1.1.0
- v1.0.4
- v1.0.3
- v1.0.2
- 1.0.1
- v1.0.0
- dev-fix-warnings-ci
- dev-fix82
- dev-patch-1
- dev-tests-crash
- dev-PECL-release
- dev-auto-release-v2
- dev-composer-update
- dev-test
- dev-fix-s2n
- dev-update-submodules
- dev-win-x86-2
- dev-win-ci
- dev-win-x86
- dev-win-ci-test2
- dev-win-ci-test
- dev-update-s2n-again
- dev-update-s2n
- dev-test-build
- dev-init-update
- dev-submodules-update
- dev-submodule
- dev-latest_submoduels
- dev-build_dir_fix
- dev-nochanges
- dev-crc_benchmark
- dev-crc
This package is auto-updated.
Last update: 2024-08-23 18:07:52 UTC
README
需求
- UNIX平台上的PHP 5.5+,Windows上的7.2+
- CMake 3.x
- UNIX上的GCC 4.4+、clang 3.8+,Windows上的Visual Studio构建工具
- 测试需要Composer
使用Composer和PECL安装
在UNIX上,您可以从包管理器获取该软件包或从源代码构建
pecl install awscrt
composer require aws/aws-crt-php
在Windows上,您需要根据以下说明从源代码构建本机扩展php_awscrt.dll
。然后,按照https://php.ac.cn/manual/en/install.pecl.windows.php#install.pecl.windows.loading加载扩展。之后
composer require aws/aws-crt-php
从GitHub源代码构建
$ git clone --recursive https://github.com/awslabs/aws-crt-php.git
$ cd aws-crt-php
$ phpize
$ ./configure
$ make
$ ./dev-scripts/run_tests.sh
在Windows上构建
Windows需求
-
确保您有windows PHP SDK(本例假设将SDK安装到C:\php-sdk,并且您已将PHP源代码检出到构建目录中的php-src)并且它在您的机器上运行良好。
-
确保您有“开发包(SDK用于开发PHP扩展)”和PHP可以从系统路径访问。您可以从https://windows.php.net/download/下载它们。您可以通过运行
phpize -v
和php -v
来检查它们是否可用
说明
从命令提示符(不是powershell)。说明基于64位Windows上的Visual Studio 2019。
> git clone --recursive https://github.com/awslabs/aws-crt-php.git > git clone https://github.com/microsoft/php-sdk-binary-tools.git C:\php-sdk > C:\php-sdk\phpsdk-vs16-x64.bat C:\php-sdk\ $ cd <your-path-to-aws-crt-php> <your-path-to-aws-crt-php>\ $ phpize # --with-prefix only required when your php runtime in system path is different than the runtime you wish to use. <your-path-to-aws-crt-php>\ $ configure --enable-awscrt=shared --with-prefix=<your-path-to-php-prefix> <your-path-to-aws-crt-php>\ $ nmake <your-path-to-aws-crt-php>\ $ nmake generate-php-ini # check .\php-win.ini, it now has the full path to php_awscrt.dll that you can manually load to your php runtime, or you can run the following command to run tests and load the required native extension for awscrt. <your-path-to-aws-crt-php>\ $ .\dev-scripts\run_tests.bat <your-path-to-php-binary>
注意:对于VS2017,Cmake将默认构建为Win32,请参阅这里。如果您正在构建x64 php,则可以设置环境变量如下,让cmake选择x64编译器。
set CMAKE_GENERATOR=Visual Studio 15 2017 set CMAKE_GENERATOR_PLATFORM=x64
调试
使用PHPBrew来构建和管理多个PHP版本很有帮助。
注意:您必须使用调试构建的PHP来调试本机扩展。有关更多信息,请参阅PHP 内部书
# 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
确保从您的调试器启动的php是which php
的结果,而不仅仅是系统默认的php。
安全
有关更多信息,请参阅CONTRIBUTING
已知的OpenSSL相关问题(仅限Unix)
- 当您的php加载的openssl版本与您的系统openssl版本不同时,awscrt可能无法加载或异常崩溃。您可以通过以下方式找到php链接的openssl版本:
php -i | grep 'OpenSSL'
,以及从构建日志中链接的awscrt,它将是Found OpenSSL: * (found version *)
解决这些问题的最简单方法是构建源代码,并从aws-lc获取awscrt依赖。要执行此操作,请使用此处的相同说明,但使用USE_OPENSSL=OFF make
而不是make
许可证
本项目采用Apache-2.0许可证。