PHP上传失败需配置upload_tmp_dir:一、在宝塔中定位对应PHP版本的php.ini路径;二、取消注释并设置绝对路径如/upload_tmp;三、创建该目录并授权www用户755权限;四、重启PHP服务;五、用phpinfo()验证路径与配置文件是否生效。

如果您在宝塔面板中运行PHP应用时遇到文件上传失败、临时文件无法写入或提示“failed to open stream: No such file or directory”等错误,可能是PHP未正确配置上传缓存临时目录。以下是配置该目录的具体步骤:
一、确认PHP版本并定位php.ini路径
宝塔面板支持多PHP版本共存,需先明确当前网站使用的PHP版本,并找到其对应的php.ini配置文件位置。该路径决定了后续所有配置的生效范围。
1、登录宝塔面板,点击左侧菜单栏的软件商店,进入已安装的PHP列表。
2、在对应PHP版本右侧点击设置按钮,进入该PHP版本的管理页面。
立即学习“PHP免费学习笔记(深入)”;
3、切换到配置修改选项卡,在页面顶部可见当前php.ini的完整路径,例如:/www/server/php/80/etc/php.ini。
二、修改upload_tmp_dir参数值
upload_tmp_dir是PHP用于存放上传文件临时副本的目录,必须为绝对路径,且PHP进程需对该目录具备读、写、执行权限。若未设置或路径不可写,上传操作将直接失败。
1、在PHP设置页的配置修改选项卡中,使用页面内置编辑器或点击文件管理按钮跳转至php.ini所在目录后右键编辑。
2、在php.ini中搜索关键词upload_tmp_dir,若该行被分号注释(如;upload_tmp_dir =),则删除开头的分号。
3、将等号右侧修改为一个真实存在的、PHP可写入的绝对路径,例如:upload_tmp_dir = /www/wwwroot/upload_tmp。
4、保存php.ini文件。
三、创建并授权临时目录
指定的upload_tmp_dir路径必须预先存在,且所属用户与PHP运行用户一致(通常为www),否则PHP无法写入临时文件。宝塔默认PHP以www用户身份运行,因此目录权限必须匹配。
1、在宝塔面板左侧点击文件,进入根目录/www,新建文件夹,命名为upload_tmp(与php.ini中设置的路径一致)。
2、右键点击该文件夹,选择权限设置,将所有者设为www,用户组也设为www。
3、勾选递归设置文件权限,将数字权限设为755,点击确定。
四、重启PHP服务使配置生效
php.ini属于PHP核心运行时配置,修改后必须重启对应PHP服务进程,新参数才能被加载。仅重启Web服务器(如Nginx/Apache)无效。
1、返回宝塔面板软件商店,找到已修改的PHP版本。
2、点击其右侧的停止按钮,等待状态变为“已停止”。
3、再点击启动按钮,确保状态恢复为“正在运行”。
五、验证upload_tmp_dir是否生效
配置完成后需通过PHP脚本确认参数已正确载入且目录可写,避免因拼写错误、路径不存在或权限不足导致静默失效。
1、在网站根目录下新建一个测试文件,例如phpinfo.php,内容为:<?php phpinfo(); ?>。
2、通过浏览器访问该文件(如http://yourdomain.com/phpinfo.php),在页面中搜索upload_tmp_dir,确认显示值与php.ini中设置完全一致。
3、在同一页面查找Loaded Configuration File,确认加载的是您编辑的php.ini路径。











