mirror of
https://github.com/crazywhalecc/static-php-cli.git
synced 2026-03-18 04:44:53 +08:00
Update README-en.md
This commit is contained in:
parent
cb679247fc
commit
de5d92be70
116
README-en.md
116
README-en.md
@ -1,72 +1,92 @@
|
||||
# static-php-swoole
|
||||
Compile A Statically Linked PHP With Swoole and other Extensions. [English README](/README-en.md)
|
||||
Compile A Statically Linked PHP With Swoole and other Extensions.
|
||||
|
||||
BTW, It's only for CLI mode.
|
||||
|
||||
[]()
|
||||
[]()
|
||||
|
||||
## Requirements
|
||||
- Tested on `x86_64` and `aarch64` platform, others have not tested.
|
||||
- Requiring Alpine Linux (version >= 3.13), or requiring musl-libc
|
||||
- Support WSL2
|
||||
- Supporting PHP version >= 7.3
|
||||
- Docker required (or alpine linux when I write single script file)
|
||||
- Supporting PHP version from 7.2 to 8.0
|
||||
|
||||
## Start
|
||||
You can directly download static binary in Release.
|
||||
|
||||
Here's help command to compile it yourself:
|
||||
```bash
|
||||
# Compile script
|
||||
./static-compile-php.sh
|
||||
# And now you get `php-dist/bin/php` file!
|
||||
git clone https://github.com/crazywhalecc/static-php-cli.git
|
||||
cd static-php-cli/docker
|
||||
docker build -t static-php .
|
||||
```
|
||||
|
||||
## Library version
|
||||
- php: 7.4.18
|
||||
- libxml2: 2.9.10
|
||||
- curl: 7.76.1
|
||||
After compilation you can use command to get static php binary file:
|
||||
```bash
|
||||
mkdir dist
|
||||
docker run --rm -v $(pwd)/dist:/dist/ -it static-php cp php-dist/bin/php /dist/
|
||||
cd dist
|
||||
file ./php
|
||||
```
|
||||
|
||||
## Including PHP extensions
|
||||
- bcmath
|
||||
- calendar
|
||||
- ctype
|
||||
- filter
|
||||
- openssl
|
||||
- pcntl
|
||||
- iconv
|
||||
- inotify (3.0.0)
|
||||
- json
|
||||
- mbstring
|
||||
- phar
|
||||
- curl
|
||||
- pdo
|
||||
- gd
|
||||
- pdo_mysql
|
||||
- mysqlnd
|
||||
- sockets
|
||||
- swoole (4.6.6)
|
||||
- redis (5.3.4)
|
||||
- simplexml
|
||||
- dom
|
||||
- xml
|
||||
- xmlwriter
|
||||
- xmlreader
|
||||
- posix
|
||||
- tokenizer
|
||||
To customize PHP extensions, edit `docker/extensions.txt` file, and rules below:
|
||||
- Use `#` as comment, to mark not install
|
||||
- extensions name uses lower case, and default file contains all supported extensions, if u need other extensions, consider write an Issue
|
||||
|
||||
## Supported PHP extensions
|
||||
| Support | PHP Ext Name | Version | Comments |
|
||||
| -------- | ------------ | -------- | ------------------------------------------------------- |
|
||||
| yes | bcmath | * | |
|
||||
| yes | calendar | * | |
|
||||
| yes | ctype | * | |
|
||||
| yes | curl | * | |
|
||||
| yes | dom | * | |
|
||||
| | event | | |
|
||||
| yes | filter | * | |
|
||||
| yes | gd | * | |
|
||||
| yes | hash | * | PHP7.3 or older uses `--enable-hash` |
|
||||
| yes | iconv | * | |
|
||||
| yes | inotify | 3.0.0 | |
|
||||
| yes | json | * | |
|
||||
| yes | libxml | * | |
|
||||
| yes | mbstring | * | |
|
||||
| yes | mongodb | >=1.9.1 | not tested |
|
||||
| | mysqli | | |
|
||||
| yes | mysqlnd | * | |
|
||||
| yes | openssl | * | |
|
||||
| yes | pcntl | * | |
|
||||
| yes | pdo | * | |
|
||||
| yes | pdo_mysql | * | |
|
||||
| | pdo_pgsql | * | |
|
||||
| yes | phar | * | |
|
||||
| yes | posix | * | |
|
||||
| yes | redis | * | |
|
||||
| yes | simplexml | * | |
|
||||
| yes | sockets | * | |
|
||||
| yes | swoole | >=4.6.6 | support mysqlnd, sockets, openssl, redis |
|
||||
| yes | tokenizer | * | |
|
||||
| yes | xml | * | |
|
||||
| yes | xmlreader | * | |
|
||||
| yes | xmlwriter | * | |
|
||||
| | zip | | |
|
||||
| yes | zlib | * | |
|
||||
|
||||
## Current Issue
|
||||
- [ ] Not support event(libevent), because of its `config.m4` and code.
|
||||
- [ ] Swoole not support `--enable-swoole-curl`.
|
||||
- [ ] Not support readline, maybe caused by ncurses library.
|
||||
- [X] Not support curl (solved)
|
||||
- [X] Customize extensions to compile
|
||||
- [ ] php.ini integration
|
||||
- [X] i18n (including README and scripts)
|
||||
|
||||
## Running preview
|
||||
After-compile status
|
||||

|
||||
|
||||
Run Swoft framework directly
|
||||

|
||||

|
||||
|
||||
## Todo List
|
||||
- [X] curl/libcurl extension support
|
||||
- [ ] Alternative extension compiling
|
||||
- [ ] php.ini support
|
||||
- [ ] Make composer together
|
||||
- [ ] i18n
|
||||
Run Workerman directly
|
||||
|
||||

|
||||
|
||||
## References
|
||||
- <https://blog.terrywh.net/post/2019/php-static-openssl/>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user