diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6cfa9d5..5a41751 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -29,6 +29,6 @@ jobs: extensions: gd, intl, pcov hook: | curl https://frankenphp.dev/install.sh | sh - ./frankenphp run --config ./CaddyfileCli > /dev/null 2>&1 & + ./frankenphp run --config ./Caddyfile > /dev/null 2>&1 & sleep 3 os: '["ubuntu-latest"]' diff --git a/Caddyfile b/Caddyfile index eb635bd..ad3a399 100644 --- a/Caddyfile +++ b/Caddyfile @@ -1,18 +1,21 @@ { auto_https off admin localhost:2019 + https_port 8443 frankenphp { - worker ./index.php + worker ./web/index.php } } localhost { + tls ./web/ssl/localhost.pem ./web/ssl/localhost-key.pem + log encode zstd br gzip - root {$SERVER_ROOT:public/} + root ./web request_header X-Sendfile-Type x-accel-redirect request_header X-Accel-Mapping ../private-files=/private-files diff --git a/CaddyfileCli b/CaddyfileCli deleted file mode 100644 index 4e7f6f4..0000000 --- a/CaddyfileCli +++ /dev/null @@ -1,36 +0,0 @@ -{ - auto_https off - admin localhost:2019 - - frankenphp { - worker ./web/index.php - } -} - -:8080 { - bind 0.0.0.0 - - log - - encode zstd br gzip - - root ./web - - request_header X-Sendfile-Type x-accel-redirect - request_header X-Accel-Mapping ../private-files=/private-files - - intercept { - @sendfile header X-Accel-Redirect * - handle_response @sendfile { - root private-files/ - rewrite * {resp.header.X-Accel-Redirect} - method * GET - header -X-Accel-Redirect - file_server - } - } - - php_server { - try_files {path} index.php - } -} diff --git a/README.md b/README.md index cb1980d..4313adb 100644 --- a/README.md +++ b/README.md @@ -79,46 +79,45 @@ curl https://frankenphp.dev/install.sh | sh Start the server in CLI mode ```bash -./frankenphp run --config ./CaddyfileCli --watch +./frankenphp run --config ./Caddyfile --watch ``` -> Your application will be available at `http://127.0.0.1:8080` (or `http://localhost:8080`) or at the address set in the `Caddyfile`. - Download and start the server with [Docker images](https://frankenphp.dev/docs/docker/) Gitbash/Windows ```bash docker run \ + -e CADDY_GLOBAL_OPTIONS="auto_https off" \ + -e CADDY_SERVER_EXTRA_DIRECTIVES="tls /app/web/ssl/localhost.pem /app/web/ssl/localhost-key.pem" \ -e FRANKENPHP_CONFIG="worker ./web/index.php" \ - -e SERVER_ROOT=./web \ - -v "//k/yii2-extensions/app-basic/Caddyfile:/etc/caddy/Caddyfile" \ + -e SERVER_NAME="https://localhost:8443" \ + -e SERVER_ROOT="./web" \ -v "//k/yii2-extensions/app-basic:/app" \ - -v "//k/yii2-extensions/app-basic/web:/app/web" \ - -p 80:80 \ - -p 443:443 \ - -p 443:443/udp \ + -p 8443:8443 \ + -p 8443:8443/udp \ --name yii2-frankenphp-worker \ dunglas/frankenphp ``` -> **Note:** Paths in the example (`//k/yii2-extensions/basic-frankenphp`) are for demonstration purposes only. +> **Note:** Paths in the example (`//k/yii2-extensions/app-basic`) are for demonstration purposes only. > Replace them with the actual path to your Yii2 project on your system. Linux/WSL ```bash docker run \ + -e CADDY_GLOBAL_OPTIONS="auto_https off" \ + -e CADDY_SERVER_EXTRA_DIRECTIVES="tls /app/web/ssl/localhost.pem /app/web/ssl/localhost-key.pem" \ -e FRANKENPHP_CONFIG="worker ./web/index.php" \ - -v $PWD/Caddyfile:/etc/caddy/Caddyfile \ + -e SERVER_NAME="https://localhost:8443" \ + -e SERVER_ROOT="./web" \ -v $PWD:/app \ - -v $PWD/web:/app/web \ - -p 80:80 \ - -p 443:443 \ - -p 443:443/udp \ + -p 8443:8443 \ + -p 8443:8443/udp \ --name yii2-frankenphp-worker \ dunglas/frankenphp ``` -> Your application will be available at `http://127.0.0.1` (or `http://localhost`) or at the address set in the `Caddyfile`. +> Your application will be available at `https://localhost:8443` or at the address set in the `Caddyfile`. #### Directory structure diff --git a/tests/Acceptance.suite.yml b/tests/Acceptance.suite.yml index 3c919ea..894395a 100644 --- a/tests/Acceptance.suite.yml +++ b/tests/Acceptance.suite.yml @@ -7,5 +7,5 @@ actor: AcceptanceTester modules: enabled: - PhpBrowser: - url: http://127.0.0.1:8080 + url: https://localhost:8443/ step_decorators: ~ diff --git a/web/ssl/localhost-key.pem b/web/ssl/localhost-key.pem new file mode 100644 index 0000000..4677e62 --- /dev/null +++ b/web/ssl/localhost-key.pem @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDJXRl0fj4a5Myo +WpAN8jevuPIlvS19Yk2243GIXf9rNt7/th4ujMYa7DyGmFE4UiXz/gj5y9vq6/3d +JNrVPqfcBHKgDdGt4V+c6bauzxhs+QilYzft/9/y/Mglt6Z9ibsvIGnRn6R8gc6W +dV2KPRUNDTdb83R0Y7CFRydTkTEYl1/mldAz5MNrlIYrr55PbQTG2fZlMXcfmJOh +TzGvux3skPRD4igTV8rxd0x5RDvcVdSCOx3vpI2ZJ3Vh28Bp934mTNo4Ihsmkn4A +nzUJsyRNAcXp//8xz9upvmy4FfqXhhR5/oOit4INMjFxkEA2CrX7CYz/EiRhyxWt +jGmxKXSVAgMBAAECggEARIxC7BtFvRYCbZVW0MiSGGnXVO2PnM1oM0g+D/QfzTnC +tD4lDCe0ENo2yIL1szyT2vmxyIeTd+eaZjvzmwBXWFjTRJUvuges6tfM7rllUUN9 +o/+gvI6MiEVxRRW9waKvbB2WqFu2PQRbdXDCxRqCHg1PuSepjy2Ym+ZbBuG4Wuwh +q9vbbqe0isp0YZr8oCeNTbR2Mi2q2DPUTP+WdA0TXulx+IwlIlYnIk0a2IGcdGpX +io9Mt3/aspZhx7uQf3yBoVMiOWRx/04t4Yc0oxuwLP4atGd7jhKZ2dfgCo6jPPet +ojIpJgN7vW3o4xRnrv0UuTq9vm2W0ZtV5Zfx4sp/gQKBgQDMBGV5s5itMXSdqoXg +4xtELye0oMYEd1ih8+ql+VP08nUeflV7vD6+Ci8/x++Azqpr9SU1KBG/9Cj2jK8k +uLdeKcEuac8DjU1eELGmDnIk4m0supEP3JyrTQCVQYw9Pwvv+jGNz2zi0xppIzoP +eObU/ftoV3Ue32c9tjMMvzlpBQKBgQD8q57knuAqTVJiIqo1LsRj+j5XQ3IpCYY7 +bVHHi607JywBE8JyerkycYCs6BU4AyZNe8Wp6YJM6qINHgvD13j7CjzSg/YEQVla +O196Ka08Latvu6D3BqR9oKy+5vto/QNxD0hGToWySZCVjbsc5QRxCbq77GZ05EpI +owj0Wz9yUQKBgEpFJ3Pgj6otINjs5QPzaU+vIvM8vBmQIPIES93UIF5BjaVmNFRx +OR4RsxWzAVuQ4LWgbsUlKyEID4mBuZjSrd5XsP3mgvg2Dn458ZIUHDWVQE1SNdDi +bR5nT9kGHbmGJCBeon+PjYIde7XenxpW1yGevFFF1VtB1OHAXGE9k/bJAoGBAJDa +wylGfDVERurD/NioiybWHE9i91vXfgEr1yqTRSkYd/3WGjAPc4Ub1S1LkH6gL6FU +SCn1GSKHkYf7pbsNGOqzH9OAm9YssNEuILqkkhBiDlrsMofsYvky2FZJjfDOvN5g +aIsGEVf5HM7ghlk2Yql7bna2PLbe+kdSUJvmhCVBAoGBAMY9+yNm9zpHYDLfgmeG +mUjUrw73G7j+ucRQI6/owgaqJWKlfULG2CQ18XhcpjJcI7R1gADwNwlJN7AjGDtg +gskDn8yoAGBvaBgkkkv3Z8rKTCGR8mh4bY6G89agY9NphigsaUJrn+4iX59K2/eK +DNFgybL+X7Mh7P8tmBt1Adua +-----END PRIVATE KEY----- diff --git a/web/ssl/localhost.pem b/web/ssl/localhost.pem new file mode 100644 index 0000000..7338a1f --- /dev/null +++ b/web/ssl/localhost.pem @@ -0,0 +1,26 @@ +-----BEGIN CERTIFICATE----- +MIIEYjCCAsqgAwIBAgIRAMJ3dsZ62GwPUcMuKwB/pBQwDQYJKoZIhvcNAQELBQAw +gYcxHjAcBgNVBAoTFW1rY2VydCBkZXZlbG9wbWVudCBDQTEuMCwGA1UECwwlVGVy +YWJ5dGVzb2Z0d1xkZXZlbG9wZXJAVGVyYWJ5dGVzb2Z0dzE1MDMGA1UEAwwsbWtj +ZXJ0IFRlcmFieXRlc29mdHdcZGV2ZWxvcGVyQFRlcmFieXRlc29mdHcwHhcNMjUw +NzEwMjIxNjI2WhcNMjcxMDEwMjExNjI2WjBZMScwJQYDVQQKEx5ta2NlcnQgZGV2 +ZWxvcG1lbnQgY2VydGlmaWNhdGUxLjAsBgNVBAsMJVRlcmFieXRlc29mdHdcZGV2 +ZWxvcGVyQFRlcmFieXRlc29mdHcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQDJXRl0fj4a5MyoWpAN8jevuPIlvS19Yk2243GIXf9rNt7/th4ujMYa7DyG +mFE4UiXz/gj5y9vq6/3dJNrVPqfcBHKgDdGt4V+c6bauzxhs+QilYzft/9/y/Mgl +t6Z9ibsvIGnRn6R8gc6WdV2KPRUNDTdb83R0Y7CFRydTkTEYl1/mldAz5MNrlIYr +r55PbQTG2fZlMXcfmJOhTzGvux3skPRD4igTV8rxd0x5RDvcVdSCOx3vpI2ZJ3Vh +28Bp934mTNo4Ihsmkn4AnzUJsyRNAcXp//8xz9upvmy4FfqXhhR5/oOit4INMjFx +kEA2CrX7CYz/EiRhyxWtjGmxKXSVAgMBAAGjdjB0MA4GA1UdDwEB/wQEAwIFoDAT +BgNVHSUEDDAKBggrBgEFBQcDATAfBgNVHSMEGDAWgBRlhRQpnl7nIy6O/r3UOcaY +LgXBSzAsBgNVHREEJTAjgglsb2NhbGhvc3SHBH8AAAGHEAAAAAAAAAAAAAAAAAAA +AAEwDQYJKoZIhvcNAQELBQADggGBAIR0dkwyUST+W8TATCZbYThwiYuTSLYyQvyX +7ieIYWW31nAfcL/WvMt5d80p67mLPvGoGLZSayId7uf6j0LVY2Y94G1z7HOdRd7s +D7InIrLI0G7pKSXI8mSCczgpx2FD2yIkHaDCdZIYXpkkAhJ6I4hghSG2KZoJ0vhA +JPTd9VW8ydYykfE619wjZ68RUlve4wtNkmQCrJAWOZMWCNl8O/iz5cWafTr0p4kD +6qdE/gKvfyWQdc1XgPpZJkpYNw+CGVcpfE7i/++FfspTTY+XyYZClbQjMD1hNGq/ +ATsl8DR4xH5ztUaAkLBRDXpXGal7VyNoBpBot9scDR71YMsTTKf/1NdIt8gPLF4P +ULwW7UvaHQAj3klPcanEaTv/bgQxor6b8tSwMLqHcU+SdQBjYnWLuAzKTCvL9m73 +MQRRt/N+Z9McSApps0F82eSR3a1HaU5lyH6Es6dLkVnY/ksmzqwi5FADsORSH95M +GvP9WbrnCQvIW/n3T3pvmuV/BeRkVg== +-----END CERTIFICATE-----