Debian 8 + PHP:/tmp/ 权限被拒绝

Debian 8 + PHP:/tmp/ 权限被拒绝

我有一个在 Debian 7 + PHP 5.6 上运行良好的网站,最近我决定将我的 Debian 安装升级到 Debian 8。除了一件小事之外,一切都很顺利。

运行相同的代码时,似乎 PHP 无法写入任何内容/tmp/,现在我收到如下消息:

errno: 2,
errstr: "ZipArchive::extractTo(): Permission denied",
errcontext: {
    Filepath: "/tmp/phpVTUxDh",
    Options: null,
    Zip: {
       status: 0,
       statusSys: 0,
       numFiles: 12,
       filename: "/tmp/phpVTUxDh",
       comment: ""
    },
Status: true

显然该方法extractTo()很难写入,\tmp系统上是否有任何特定更改可能导致此问题?新的 systemd 怎么样PrivateTmp

我尝试添加PrivateTmp=false以下文件:

/etc/systemd/system/multi-user.target.wants/lighttpd.service
/etc/systemd/system/multi-user.target.wants/php5-fpm.service

但是,这似乎并没有什么区别。

无论如何,现在总是空的具体原因\tmp是什么?另外,tmp 的新位置在哪里?

谢谢。

答案1

要检查的一些事项:

php-fpm1)您以系统用户身份运行

2)AppArmor:

cat /sys/module/apparmor/parameters/enabled

如果启用:

grep 'DENIED' /var/log/syslog or /var/log/auditd/auditd.log

3)权限/tmp

stat /tmp

4)open_basedir在PHP设置中:

su -m <php_user> -c "php -i | grep -i open_basedir"

另外,当您修改 systemd 单元文件时,请先尝试重新加载它:systemctl daemon-reload然后重新启动php-fpm

相关内容