1

我正在尝试使用 PHP 7.0.15 在 Fedora 25(32 位)上的 Apache 服务器上上传文件。

我收到了一个UPLOAD_ERR_NO_TMP_DIR 错误,即使我已经为上传目录设置了适当的(甚至超过了我应该拥有的,但我目前正在本地工作)权限,并且我已将目录的所有者更改为 apache。

我正在尝试上传一个 6kB 大的 .docx 文件,我upload_tmp_dir的 inphp.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
    )
)

什么会导致这个问题?

4

2 回答 2

3

您需要检查php.ini. 确保你打对了php.ini

  • upload_tmp_dir:这是 PHP 在上传时存储临时文件的目录。
  • open_basedir: 限制 PHP 读/写权限操作到指定路径及其子目录。确保 upload_tmp_dir 在此路径内!
  • post_max_size:使其更大以适应您上传的大小。
  • upload_max_filesize: 允许的文件大小限制。

如果您想使用 tmp 目录设置进行调整,请尝试编辑/etc/profileetc/environment您选择的 / (仅适用于当前会话或所有时间),以上检查适用于它。

于 2017-02-22T13:36:47.850 回答
1

将临时目录放在/var/wwwor下/var/www/html

除了此操作,您还需要使用 semanage 授予权限Apacherewrite

于 2017-02-21T10:06:26.163 回答