Обычно $_FILES['userfile']['tmp_name'] полный путь к временному файлу.
Однако PrivateTmp меняет это
Как описано в ответе.
Здесь немного описано это
В теории немного понятно, но как это сделать на практике PrivateTmp=false
Реальный путь к /tmp
/tmp/systemd-httpd.service-X9iE20R/tmp/
И самое ужасное он меняется /tmp/systemd-httpd.service-XXXXXX/tmp/.
Хотел перед загрузкой файла проверять через exec антивирусом.
Однако тупо не знаю как получить путь к временному файлу.
У меня Fedora 23