Commit Graph

42 Commits

Author SHA1 Message Date
Kévin Dunglas e45a788824 fix(caddy): incorrectly prepared environment variables when not using Caddyfile 2024-06-24 17:36:06 +02:00
Kévin Dunglas 4537f27f67 fix: prevent crash when worker terminates after a file upload 2024-06-08 13:36:32 +02:00
Kévin Dunglas 3714fdf3a1 fix: superglobals-realated crash with custom extensions in worker mode (#796)
* test: failing test reproducing #767

* fix

* Update frankenphp.c

Co-authored-by: Tim Düsterhus <timwolla@googlemail.com>

* Update frankenphp.c

Co-authored-by: Tim Düsterhus <timwolla@googlemail.com>

* review

* ZVAL_COPY

* fix

* add back current $_SERVER behavior

* add docs

* bad fix for the leak

* clean test

* improve tests

* fix test

* fix

* cleanup

* clarify destroy super globals name

* micro-optim: use zval_ptr_dtor_nogc to destroy super globals

* style

* fix

* better name for frankenphp_free_server_context

* more cleanup

* remove useless memset

* more cleanup

* continue refactoring

* fix and update docs

* docs

---------

Co-authored-by: Tim Düsterhus <timwolla@googlemail.com>
2024-06-05 15:24:16 +02:00
Kévin Dunglas 3d065eda35 $_SERVER['FRANKENPHP_WORKER'] must not be NULL-terminated 2024-05-21 18:50:02 +02:00
Kévin Dunglas b71dae9b03 fix: prevent crash when calling apache_request_headers() in non-HTTP context 2024-02-27 17:51:10 +01:00
Kévin Dunglas 4cb77b552d ci: add more headers to the k6 load test (#544) 2024-02-03 12:25:35 +01:00
Kévin Dunglas 5a8e5f9518 feat: add apache_response_headers() function (#530) 2024-01-31 12:34:30 +01:00
Kévin Dunglas 175b9a0296 feat: add Brotli compression support (#524) 2024-01-30 18:33:59 +01:00
Kévin Dunglas 49baf02035 feat: add go_apache_request_headers() 2024-01-23 23:14:24 +01:00
Kévin Dunglas f71f9875ca perf: add benchmark (#392) 2023-12-18 15:35:44 +01:00
Kévin Dunglas 3d2c9b6f6f chore: add missing file 2023-11-10 18:39:29 +01:00
Kévin Dunglas c615fe0087 feat: add experimental CLI support (#239)
* feat: add CLI support

* updated

* debug

* fix tests

* Caddy php-cli command

* use thread

* $_SERVER and input streams support

* Update frankenphp.c

Co-authored-by: Francis Lavoie <lavofr@gmail.com>

---------

Co-authored-by: Francis Lavoie <lavofr@gmail.com>
2023-10-09 14:38:15 +02:00
Kévin Dunglas c624971fa7 feat(caddy): add command to start a PHP server (#238)
* feat(caddy): a command to start a PHP server

* docs and l shortcut

* fix some bugs and support for compression

* cleanup

* enable compression by default

* add -a shortcut

* refactor

* const

* docs
2023-10-05 14:56:04 +02:00
Kévin Dunglas 2d91a606fd feat(caddy): php_server simplified directive (#235)
* feat(caddy): php_server simplified directive

* fix typo

Co-authored-by: Matt Holt <mholt@users.noreply.github.com>

* fix

* cleanup

* Update config.md

Co-authored-by: Francis Lavoie <lavofr@gmail.com>

* feat: automatically serve static files

* file_server off

* fix tests

* fix config

* fix tests in Docker

* debug

* fix

---------

Co-authored-by: Matt Holt <mholt@users.noreply.github.com>
Co-authored-by: Francis Lavoie <lavofr@gmail.com>
2023-10-03 15:44:55 +02:00
Kévin Dunglas 69416cc0d6 test: prove that Fibers work if not calling Go 2023-09-28 19:04:57 +02:00
Kévin Dunglas fb63099a88 feat: allow passing env vars to workers (#210) 2023-09-15 12:59:43 +02:00
Kévin Dunglas ab0783519e perf: reduce the number of calls to cgo to set the headers 2023-08-18 19:20:32 +02:00
Kévin Dunglas 234873a35a test: add a test for large requests 2023-08-16 11:12:29 +02:00
Kévin Dunglas 2818dfb474 feat: upgrade to Caddy 2.7.3 2023-08-07 23:47:02 +02:00
Kévin Dunglas e0cf262224 test: fix and refactor some flaky tests (#165)
* test: fix and refactor some flaky tests

* better fix for flush.php

* simpler DHA config
2023-07-10 18:46:04 +02:00
Kévin Dunglas 75cd310292 feat: add support for PHP timeouts on Linux (#128) 2023-03-05 15:47:20 +01:00
Kévin Dunglas 878a30d92f fix: ensure there is always a free thread for non-worker scripts (#105) 2022-11-14 22:45:51 +01:00
Rob Landers 3abda4fbb6 feat: handle aborted connection (#95)
* Handle aborted connection

* Handle when writing as well

* return bytes written

* optimize return

* remove goroutine

* fix style

* Add tests

* add missing newline
2022-11-09 15:09:45 +01:00
Kévin Dunglas 8e136d0d25 feat: implement flush() (#90)
* feat: implement flush()

* add tests
2022-11-09 00:56:00 +01:00
Kévin Dunglas 0a30dd1cb9 tests: improve TestFinishRequest (#97) 2022-11-09 00:53:34 +01:00
Rob Landers 9ef3bd7c47 feat: add fastcgi_finish_request() support (#69)
* Add function to ext

* buggy af, but kinda working

* Get worker and regular mode working

* fix formatting

* add eol

* add eol

* 🤦

* properly generate file

* use sync.Once
2022-11-03 08:36:47 +01:00
Kévin Dunglas 4b21d18e84 chore: remove useless code 2022-10-21 15:43:16 +02:00
Kévin Dunglas 26edeb76e4 fix: prevent panic when restarting crashed worker (#49) 2022-10-21 14:43:16 +02:00
Kévin Dunglas 0f65e421e4 feat: use mainline PHP 8.2 (#48) 2022-10-21 07:24:31 +02:00
Kévin Dunglas acc48830f7 feat: improve Dockerfile and add some docs (#15) 2022-10-13 18:05:22 +02:00
Kévin Dunglas 5012ac30cd chore: improve tests and add missing file (#13) 2022-10-11 20:41:50 +02:00
Kévin Dunglas 5af6b10d1f feat: add support for 103 Early Hints (#12) 2022-10-11 17:40:12 +02:00
Kévin Dunglas 3712d0d69b test: add tests for exception handling (#11) 2022-10-11 10:54:30 +02:00
Kévin Dunglas 7ec0043fe8 feat: handle errors in worker mode (#9)
* feat: handle errors in worker mode (not working)

* feat: better exception and error handling
2022-10-11 08:10:46 +02:00
Kévin Dunglas 4c0dd41327 feat: improve PHP logger 2022-10-08 13:05:18 +02:00
Kévin Dunglas 0b8e322375 fix: preserve autoloading in worker mode 2022-10-06 15:25:58 +02:00
Kévin Dunglas 4a87ad3609 chore: add tests regarding persistent objects 2022-10-05 15:44:02 +02:00
Kévin Dunglas 796476d537 feat: use threads instead of GoRoutines (#6)
* feat: use threads instead of GoRoutines

* many improvements

* fix some bugs
2022-10-04 14:41:19 +02:00
Kévin Dunglas a3ba57f021 test: ensure memory safety when handling parallel requests (#3) 2022-05-23 11:57:30 +02:00
Kévin Dunglas 7d81fa51fe feat: add a woker mode (#1)
* refactor: better memory management

* wip

* tmp

* introduce a go-like api

* upgraded to PHP 8.2

* Fix thread safety issues

* fix tests

* wip

* refactor worker

* worker prototype

* fix populate env

* session

* improve tests

* fix Caddy tests

* refactor
2022-05-18 11:52:24 +02:00
Kévin Dunglas 290e9e1114 feat: Caddy module 2021-11-01 00:18:30 +01:00
Kévin Dunglas a2607e6be7 initial commit 2021-09-24 18:52:20 +02:00