很抱歉用一个可能是新手的问题来打扰大家,但我对我的 WordPress 安装中的“缺少临时文件夹”问题感到震惊。这几天我一直在寻找解决方案,搜索论坛、StackExchange 和各种来源。其中许多人说要联系我的主机,因为这可能是服务器配置问题,我这样做了,他说他在 .php 目录下重新创建了一个“tmp”文件夹。不幸的是,我仍然收到“缺少临时文件夹”错误。
我在我的 SFTP 服务器上包含了文件夹的路径/层次结构的图像,该服务器正在运行 nginX:
我尝试过包括该行
define('WP_TEMP_DIR', 'DIRECTORY')
(其中 DIRECTORY 是 .php 中临时文件夹的地址/路径)但这并没有解决问题。
然后我尝试包括
define('WP_TEMP_DIR', dirname(__FILE__) . '/wp-content/temp/')
(这次逐字)第一行代码被注释掉。
这段代码导致了 HTTP:// 500 错误。如果我注释掉上面的行,该网站工作正常(除了缺少临时文件夹问题),所以这是导致问题的代码,但我想知道它导致 500 错误的事实是否意味着我已经接近了(我可能只是在欺骗自己)。
如果这是一个错误的地方,或者是一个愚蠢的问题,我深表歉意,我对 WordPress 和 PHP 是全新的,并且(除了这个问题)喜欢它,但我似乎无法解决它!
尝试此链接:
如果没有帮助,请尝试备份 tmp 文件夹 -> 删除 tmp 文件夹 -> 重新创建。有时,tmp 中存储的垃圾数据可能会导致此问题。
在 WordPress 根目录中创建一个具有 777 权限的“temp”文件夹。这可以通过您的 FTP 程序来完成。
编辑您的“php.ini”文件
在 php.ini 文件中添加以下内容:
upload_max_filesize = 16M
upload_tmp_dir = on
upload_tmp_dir = /home/username/public_html/wordpressDir/temp
我不小心从我的计算机(Macbook)中删除了 tmp 文件夹,并在本地主机 WordPress 网站上遇到了该问题,并按照以下步骤解决了该问题:
首先,必须通过以下代码检查临时文件夹位置。
var_dump(sys_get_temp_dir());
在我的例子中,输出是 /var/tmp
然后,我们必须通过以下代码检查该文件夹是否存在。
var_dump(file_exists(sys_get_temp_dir()));
就我而言,该文件夹不存在,因为我已经删除了该文件夹。
如果该文件夹不存在,则创建一个名为tmp的新文件夹。 打开终端并导航到文件夹
/private/var
并创建一个名为 tmp 的新文件夹。
如果问题还没有解决,或者文件夹已经存在,那么我们必须检查文件夹的权限。
要检查并验证托管提供商配置中的
upload_tmp_dir
设置,请按照以下步骤操作:
phpinfo()
方法创建 PHP 信息文件: 在 Web 服务器的文档根目录中创建一个名为
phpinfo.php
的新 PHP 文件(例如 /var/www/html
)。
<?php
phpinfo();
?>
访问 PHP 信息文件: 打开网络浏览器并导航至
http://your-domain.com/phpinfo.php
。这将显示 PHP 配置信息。
搜索
upload_tmp_dir
:
在输出中查找 upload_tmp_dir
指令。如果已设置,它将显示临时目录的路径。
php.ini
找到
php.ini
文件:
您可以从 php.ini
输出中找到 phpinfo()
的位置或使用通用路径。例如,如果您在 Ubuntu 中使用 PHP-FPM,则路径通常为:
/etc/php/{version}/fpm/php.ini
将
{version}
替换为您的 PHP 版本,例如 7.4
。
编辑
php.ini
文件:
在文本编辑器中打开 php.ini
文件。例如,使用 nano
:
sudo nano /etc/php/{version}/fpm/php.ini
查找并设置
upload_tmp_dir
:
搜索 upload_tmp_dir
设置。您可以通过按 Ctrl + W
中的 nano
并输入 upload_tmp_dir
来完成此操作。
如果存在
upload_tmp_dir
,请将路径更新为所需的临时目录。
如果不存在,请添加以下行来指定路径:
upload_tmp_dir = /path/to/your/temp/folder
将
/path/to/your/temp/folder
替换为您希望 PHP 存储临时文件的实际目录路径(例如,/var/lib/php/sessions
)。
保存并退出: 保存更改并退出编辑器(例如,按
Ctrl + X
,然后按 Y
确认 nano
中的更改)。
重新启动 PHP-FPM 和 Web 服务器: 重新启动 PHP-FPM 和您的 Web 服务器(Nginx 或 Apache)以应用更改。例如:
sudo systemctl restart php{version}-fpm
sudo systemctl restart nginx
将
{version}
替换为您的 PHP 版本(例如,7.4
)。
upload_tmp_dir
的指定目录具有正确的权限,以便 PHP 可以对其进行写入。