Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Worker Mode regression in 1.13.0: Nextcloud worker fails to reach frankenphp_handle_request()

已关闭
#2,697 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

已经有一个关联 PR 被合并了。

  • #2701 来自 @dunglas —— 已合并

评估

难度
4/5
预计耗时
3-5 天
新手友好度
48/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
活跃
技术栈
go, php
领域
backend, devtools

调研方向

Start by comparing the worker initialization path between FrankenPHP 1.12.7 and 1.13.0; the issue does not identify specific source files or tests. Reproduce with the provided Nextcloud worker configuration and PHP ZTS 8.4.26, then inspect startup logs to locate where the worker fails to reach frankenphp_handle_request(). Done means the same configuration starts successfully on 1.13.0.

由索引模型根据 Issue 内容生成。

描述

bug
What happened?

After upgrading FrankenPHP from 1.12.7 to 1.13.0, an existing Nextcloud Worker Mode configuration no longer starts.

FrankenPHP 1.13.0 fails during worker initialization:

loading new config: frankenphp app module: start: failed to initialize workers: too many consecutive failures: worker /var/www/nextcloud/index.php has not reached frankenphp_handle_request()

Downgrading only FrankenPHP to 1.12.7 immediately restores normal operation with the same Nextcloud installation, PHP ZTS version and Caddyfile.

Environment

Debian 13, amd64

Nextcloud 35.0.1

PHP ZTS 8.4.26

php-zts-cli: 8.4.26-2

php-zts-embed: 8.4.26-2

Working: FrankenPHP 1.12.7

Failing: FrankenPHP 1.13.0

FrankenPHP 1.13.0 package: 1.13.0+php84-1

Caddy bundled with 1.13.0: 2.11.7

Package source: pkg.henderkes.com

Package SHA256: 3388c67c70f5de50e01270fa853ca6f688370fe094541d058b046489d228c792

frankenphp version for the failing package:

FrankenPHP v1.13.0 PHP 8.4 Caddy v2.11.7 h1:yj0Y4fYZGPkSvibBJ1sTWE33xC0fxztVyXEW5iIdUT4=

Caddyfile

{
frankenphp {
num_threads 17
max_threads 32
}
}

https://cloud-franken.domain.local {
bind 192.168.168.168
root * /var/www/nextcloud

tls /etc/frankenphp/tls/fullchain.crt /etc/frankenphp/tls/cloud-franken.key

encode zstd br gzip

php_server {
    worker {
        file /var/www/nextcloud/index.php
        num 8
        env MAX_REQUESTS 500
    }
}

}

Reproduction

With exactly the same configuration:

FrankenPHP 1.12.7 + PHP ZTS 8.4.26-2 -> works
FrankenPHP 1.13.0 + PHP ZTS 8.4.26-2 -> worker initialization fails
FrankenPHP 1.12.7 + PHP ZTS 8.4.26-2 -> works again after downgrade

With 1.13.0:

ExecStartPre=/usr/bin/frankenphp validate --config /etc/frankenphp/Caddyfile
(code=exited, status=0/SUCCESS)

ExecStart=/usr/bin/frankenphp run --environ --config /etc/frankenphp/Caddyfile
(code=exited, status=1/FAILURE)

Status: "loading new config: frankenphp app module: start: failed to initialize workers: too many consecutive failures: worker /var/www/nextcloud/index.php has not reached frankenphp_handle_request()"

PHP ZTS and Nextcloud initialize correctly independently:

sudo -u www-data php-zts /var/www/nextcloud/occ status

returns Nextcloud 35.0.1 with maintenance: false and needsDbUpgrade: false.

An Argon2id password_hash() / password_verify() test on PHP ZTS 8.4.26 also succeeds.

The failure is therefore reproducible by changing only FrankenPHP from 1.12.7 to 1.13.0.

Please let me know if debug-level startup logs or additional diagnostics would help.

Build Type

deb packages

Worker Mode

Yes

Operating System

GNU/Linux

CPU Architecture

x86_64

PHP configuration
phpinfo() output
PHP 8.4.26 ZTS
php-zts-cli 8.4.26-2
php-zts-embed 8.4.26-2

memory_limit = 1024M

opcache.enable = On
opcache.memory_consumption = 256
opcache.interned_strings_buffer = 32
opcache.max_accelerated_files = 20000
opcache.validate_timestamps = On
opcache.revalidate_freq = 60
opcache.jit = disable

realpath_cache_size = 4096K
realpath_cache_ttl = 120

session.save_handler = files
session.save_path = /var/lib/php/sessions
session.use_cookies = On
session.use_only_cookies = On
session.use_strict_mode = Off

Loaded extensions include:
apcu, bcmath, bz2, curl, gd, gmp, imagick, intl, ldap,
mbstring, openssl, pdo_pgsql, pgsql, redis, sodium, zip
Relevant log output
Relevant log output

主要语言
Go
星标
11.4k
派生
494
平均合并
2 天 18 小时
30 天内合并 PR
32

环境准备

  • 提供 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

php/frankenphp 的其他 Issue

查看 php/frankenphp 的全部 Issue

相似的 Issue

更多 Go Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。