Файлы временно загружаются в / root / tmp вместо / tmp - PullRequest
2 голосов
/ 14 февраля 2012

У меня есть простая форма загрузки, вот начальный и конечный теги:

<form action="post.php" method="post" enctype="multipart/form-data">
</form>

При отправке я получаю 500 внутренних ошибок сервера.И журналы apache показывают следующие записи (имя хоста и ip отредактированы):

[Tue Feb 14 00:08:32 2012] [error] [client xxx.xxx.xxx.xxx] ModSecurity: Input filter: Failed to create temporary file: /root/tmp/20120214-000832-TznsTkPj2kkAAE5LYREAAAAB-request_body-xqZDkt [hostname "xxxxxxxxxx.com"] [uri "/app/221/product/post.php"] [unique_id "TznsTkPj2kkAAE5LYREAAAAB"]
[Tue Feb 14 00:08:37 2012] [error] [client xxx.xxx.xxx.xxx] ModSecurity: Input filter: Failed to delete temporary file: /root/tmp/20120214-000832-TznsTkPj2kkAAE5LYREAAAAB-request_body-xqZDkt [hostname "xxxxxxxxxx.com"] [uri "/app/221/product/post.php"] [unique_id "TznsTkPj2kkAAE5LYREAAAAB"]

Я искал код, нигде не упоминается root или upload_tmp_dir.Все файлы кода принадлежат пользователю и группе приложения.В php.ini, upload_tmp_dir изначально не был установлен, сейчас я установил его на /tmp, но это также не решило проблему.

Любая идея, почему он пытается загрузить на /root/tmp

1 Ответ

3 голосов
/ 14 февраля 2012

Похоже, вы должны проверить свои настройки ModSecurity , в частности настройку SecUploadDir .

Поддержка загрузки файлов

ModSecurity isспособен перехватывать файлы, загруженные с помощью POST-запросов и кодирования multipart / form-data или (с версии 1.9) с помощью PUT-запросов.

Поскольку в PHP можно установить это значение только в одном месте, оно былопроверено во время выполнения, плюс мы знаем, что у вас есть ModSecurity, запущенный из выходных данных журнала, похоже, что это, вероятно, так.

Примечания для OP:

Если вы не установили параметр SecUploadDirModSecurity не игнорирует это.Поэтому мы внесли следующие изменения: SecUploadDir / tmp SecTmpDir / tmp, и теперь он работает отлично.

Еще одна вещь, на которую я наткнулся, вы можете попробовать в ситуации, подобной этой, - полностью отключить безопасность мода.Посмотрим, устранит ли это проблему.Затем вы можете быстро сузить проблему до мод безопасности:

https://serverfault.com/questions/57210/disable-modsecurity-for-a-specific-directory

...