首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP-FPM不会在日志中写入

问PHP-FPM不会在日志中写入
EN

Stack Overflow用户
提问于 2011-05-03 05:04:21
回答 3查看 5.9K关注 0票数 2

我有这个php-fpm.conf

代码语言:javascript
复制
[example.com]
        listen                 = 127.0.0.1:9001
        listen.owner           = example.com
        listen.group           = example.com
        listen.mode            = 0660
        listen.backlog         = -1

        user  = example.com
        group = example.com

        pm                   = dynamic
        pm.max_requests      = 0
        pm.max_children      = 2
        pm.start_servers     = 1
        pm.min_spare_servers = 1
        pm.max_spare_servers = 1

        chroot = /home/vhosts/example.com/

        request_terminate_timeout = 2
        request_slowlog_timeout   = 1
        slowlog                   = /home/vhosts/example.com/log/php-slow.log

        catch_workers_output = yes

        env[HOSTNAME] = $HOSTNAME
        env[PATH] = /usr/local/bin:/usr/bin:/bin
        env[TMP] = /tmp
        env[TMPDIR] = /tmp
        env[TEMP] = /tmp


        php_flag[display_errors]            = on
        php_admin_value[session.save_path]  = /tmp
        php_admin_value[error_log]          = /home/vhosts/example.com/log/php-error.log
        php_admin_flag[log_errors]          = on
        php_admin_value[memory_limit]       = 100M
        php_value[max_execution_time]       = 20

我不明白为什么/home/vhosts/example.com/log/php-error.log是空的,我导致了一些错误,比如10 /0(零除法)等,我看到错误作为输出,但是php-error.log仍然是空的。

我修改了我的vhost,但如果我改变了

/home/vhosts/example.com/log/php-error.log

至

/log/php-error.log

当我执行"10 / 0“时,我得到了一个非常奇怪的错误!

代码语言:javascript
复制
Fatal error: main(): Timezone database is corrupt - this should *never* happen! in /web/index.php on line 10 
EN

回答 3

Stack Overflow用户

发布于 2011-05-11 13:34:32

来自Debian的文档:

来自系统时区数据库的

时区数据

Debian PHP已经打了补丁,可以使用tzdata包中的系统范围的时区数据库,确保PHP也会自动使用那里的任何更新。

注意,这需要PHP进程能够访问/etc/localtime和/usr/share/zoneinfo。对于任何常规安装,这应该是这种情况,但在特定的安全环境中,当读取时区数据库是不可能的时候,PHP会给出一个“时区数据库已损坏-这应该永远不会发生!”错误。

因此,您需要将/etc/localtime文件和/usr/share/zoneinfo目录复制到chroot目录。

票数 3
EN

Stack Overflow用户

发布于 2012-01-23 20:21:41

您看不到日志条目,因为您指定的日志路径是“实际路径”:

代码语言:javascript
复制
php_admin_value[error_log]          = /home/vhosts/example.com/log/php-error.log

由于您正在执行chrooting,因此需要指定“chroot相对路径”:

代码语言:javascript
复制
php_admin_value[error_log]          = /log/php-error.log

这是因为对于php-fpm worker /home/vhosts/example.com/来说,由于chrooting,/实际上是/。

我还没有测试过它,但是我怀疑你的会话路径可能也会受到这个问题的影响,所以你需要确保"chrooted /tmp“存在(真的是/home/vhosts/example.com/tmp),并且对于你正在使用的php-fpm池的用户是可写的。

票数 1
EN

Stack Overflow用户

发布于 2011-06-23 19:46:29

我目前遇到了类似的问题,可能与listen.backlog设置有关。我发现不同的帖子声称-1可能被错误地解释。我目前正在尝试将listen.backlog设置为0或更高的值。我会看看结果是什么,并与您保持联系。

您是否尝试过按如下方式更正日志路径?log/php-error.log (前导斜杠使其查找通常在Linux系统上不存在的/log文件夹。

亲切的问候

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5862453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档