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 сейчас всегда пусто? Кроме того, где находится новое местоположение ТМП?

Спасибо.

1 ответ

Решение

Некоторые вещи, чтобы проверить:

1) Системный пользователь, которого вы запускаете php-fpm как

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,

Другие вопросы по тегам