Linux — я продолжаю получать UPLOAD_ERR_NO_TMP_DIR при загрузке файла с использованием переполнения стека

Я пытаюсь загрузить файл на моем сервере Apache в Fedora 25 (32-разрядная версия), используя PHP 7.0.15.

Я получаю Ошибка UPLOAD_ERR_NO_TMP_DIR, хотя я установил соответствующие (и даже больше, чем должен был, но сейчас работаю локально) разрешения для каталогов загрузки, и я изменил владельца каталога на apache.

Я пытаюсь загрузить файл .docx размером 6 КБ, мой upload_tmp_dir в php.ini установлен в /home/temporary,

ls -l возвращает следующий код:

drwxrwxrwx.  2 apache root           4096 Feb 11 20:14 temporary

sys_get_tmp_dir() возвращает правильный путь: /home/temporary

Но я все еще получаю ошибку 6

debug outputArray
(
[userfile] => Array
(
[name] => rus.docx
[type] =>
[tmp_name] =>
[error] => 6
[size] => 0
)
)

Что может вызвать эту проблему?

-1

Решение

Поместите временный каталог в /var/www или же /var/www/html,

Помимо этого действия вы также должны предоставить Apache rewrite разрешения с semanage.

1

Другие решения

Вам нужно проверить несколько вещей в вашем php.ini, Убедитесь, что вы попали правильно php.ini:

  • upload_tmp_dirЭто каталог, в котором PHP хранит временные файлы при загрузке.
  • open_basedir: Ограничивает PHP операции чтения / записи правами на указанный путь и его подкаталоги. Убедитесь, что upload_tmp_dir находится внутри этого пути!
  • post_max_size: Увеличьте размер в соответствии с загруженным размером.
  • upload_max_filesize: Допустимый предел размера файла.

Если вы хотите настроить параметры каталога tmp, попробуйте изменить /etc/profile или же /etc/environment по вашему выбору (только для текущего сеанса или за все время) и выше проверок работает с ним.

2

По вопросам рекламы [email protected]