返回

Plesk 上传临时目录无法修改,如何解决?

php

无法修改 tmp_upload_dir:Plesk 下的常见问题及解决方案

当你试图上传图像并处理它们时,突然发现无法访问位于 "/tmp" 文件夹中的上传文件,而且修改 upload_tmp_dir 无济于事,这可能会让人感到沮丧。本文将深入探讨这个问题,分析其原因,并提供逐步解决方法。

问题

在通过 POST 请求将图像上传到服务器并进行处理时,遇到了无法访问位于 "/tmp" 文件夹中的上传文件的错误。

错误信息

Warning: getimagesize(): open_basedir restriction in effect. File(/tmp/phpQ3Y7XN/image.png) is not within the allowed path(s): (/var/www/vhosts/XXXXX/: /tmp/:/tmp/*) Warning: getimagesize(/tmp/phpQ3Y7XN/image.png): Failed to open stream: Operation not permitted

原因分析

造成该问题的原因可能是因为 Plesk Obsidian 对上传临时目录进行了限制。

解决步骤

步骤 1:登录 Plesk 面板

访问 Plesk 控制面板并使用凭据登录。

步骤 2:转到“网站和域名”

从 Plesk 界面中,导航到“网站和域名”部分。

步骤 3:选择受影响的域

在受影响的域上,单击鼠标右键并选择“设置”。

步骤 4:找到“上传临时目录”设置

在“PHP 设置”选项卡中,找到“上传临时目录”设置。

步骤 5:修改上传临时目录

将路径设置为文档根目录中的有效路径,例如:"/var/www/vhosts/XXXXX/webroot/tmp"。

步骤 6:保存更改

单击“确定”保存更改并应用新设置。

步骤 7:重新启动 PHP-FPM

重新启动 PHP-FPM 服务以使更改生效。

验证

重新启动后,再次尝试上传图像。如果一切正常,上传的图像应该会出现在指定的临时目录中。

其他注意事项

  • 确保指定的路径具有适当的权限,以便 Web 服务器进程可以写入。
  • 如果仍然遇到问题,请联系 Plesk 支持团队。

常见问题解答

1. 为什么修改 upload_tmp_dir 不起作用?

这是由于 Plesk 对上传临时目录施加了额外的限制。

2. 如何检查上传临时目录的权限?

使用以下命令检查权限:

ls -la /var/www/vhosts/XXXXX/webroot/tmp

输出应显示类似以下内容:

drwxrwxrwx 3 www-data www-data 4096 Aug 23 14:40 /var/www/vhosts/XXXXX/webroot/tmp

3. 是否需要重新启动 Web 服务器?

重新启动 PHP-FPM 服务就足够了。

4. 如何联系 Plesk 支持团队?

登录 Plesk 面板并点击右上角的“支持”。

5. 是否还有其他方法可以解决此问题?

临时禁用 ModSecurity 可能有助于解决问题,但这是不建议的做法。