我有这个php-fpm。会议
[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/ www.example.com 。日志仍然为空。
我chroot我的vhost,但如果我改变
/home/vhosts/example.com/log/php-error.log
到
/log/php-error.log
我得到一个非常奇怪的错误,当我做“10 / 0”!
Fatal error: main(): Timezone database is corrupt - this should *never* happen! in /web/index.php on line 10
4条答案
按热度按时间kb5ga3dv1#
Debian的文档:
来自系统时区数据库的时区数据
Debian PHP已经打了补丁,可以使用tzdata包中的系统范围的时区数据库,确保PHP也会自动使用任何更新。
请注意,这要求PHP进程能够访问/etc/localtime和/usr/share/zoneinfo。对于任何常规安装都应该是这种情况,但在特定的安全环境中,当阅读时区数据库是不可能的时,PHP将给予“时区数据库已损坏-这应该 * 永远不会 * 发生!”错误。
所以你需要复制/etc/localtime文件和/usr/share/zoneinfo目录到你的chroot目录。
knpiaxh12#
您看不到日志条目,因为您指定的日志路径是“真实的路径”:
因为要chroot,所以需要指定'chroot相对路径':
这是因为对于php-fpm worker /home/vhosts/ www.example.com 是真的/由于chroot。
我还没有测试过它,但我怀疑你的会话路径也可能受此影响,所以你需要确保“chroot/tmp”存在(实际上是/home/vhosts/example。com/tmp),并且可由您用于该php-fpm池的用户写入。
r7xajy2e3#
我目前有类似的问题,可能与听。backlog设置。我一直在发现不同的帖子声称-1可能被错误地解释。我目前正在尝试设置听。backlog为0或更高的值。我会看看结果如何,然后随时通知你。
您是否尝试按如下方式更正日志路径?log/php-error.log(前导斜杠使它查找/log文件夹,该文件夹通常在Linux系统上不存在。
亲切的问候
zpf6vheq4#
如果SELinux处于活动状态,请确保授予写入日志的权限。示例: