【发布时间】:2017-06-30 14:14:32
【问题描述】:
我正在尝试使用 PHP 7.0.15 在 Fedora 25(32 位)上的 Apache 服务器上上传文件。
我收到 UPLOAD_ERR_NO_TMP_DIR 错误,尽管我已经为上传目录设置了适当的(甚至超过了我应该拥有的,但我目前在本地工作)权限并且我已经更改目录的所有者为 apache。
我正在尝试上传一个 6kB 大的 .docx 文件,我在 php.ini 中的 upload_tmp_dir 设置为 /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
)
)
什么会导致这个问题?
【问题讨论】:
-
php 接受你的 upload_tmp_dir 吗?在运行时检查 phpinfo() 中的正确值?
-
@Roman 是的,那里的路径是正确的,所以问题可能出在权限的某个地方
-
尝试更改 php.ini 中的 tmp 目录
-
很可能 SELinux(或您的发行版拥有的工具)不允许从对世界开放的服务(例如 http)访问主目录(从概念上讲是私有的)。
-
运行
ls -halZ /home/temporary会得到什么?
标签: php linux apache server fedora-25