PHP中的sys_temp_dir和upload_tmp_dir有什么区别?

时间:2015-05-07 19:09:17

标签: php apache

或者更确切地说,无论如何在PHP中设置系统临时目录(不是上传临时目录)?

当我跑步时

echo sys_get_temp_dir();

我得到/tmp。 我跑的时候

ini_get('upload_tmp_dir');

我得到了我在php.ini文件中指定的目录。反正有没有改变PHP用于sys temp目录的内容?

我一直在我的/tmp目录中显示随机文件。这些以“php”为前缀,然后有一系列随机数字和字母。据我所知,这些可能是由PHP tmpfile或tempnam生成的。 httpd是在创建它们时使用它们的过程。它们是填满我整个/tmp分区并将我的服务器关闭的大量文件。我无法弄清楚他们来自哪里。我可以将/tmp分区大小从500MB增加到2GB,但如果可以,我宁愿避免这样做。

我不明白sys_get_temp_dir()从哪里拉/tmp。我搜索的所有内容都告诉我更改.ini中的upload_tmp_dir,但这些是两个不同的东西。

2 个答案:

答案 0 :(得分:2)

在php.ini中,您应该为此设置不同的设置:

; sys_temp_dir = "/tmp"
; upload_tmp_dir =

答案 1 :(得分:0)

/tmp中的文件是您的会话文件。 PHP默认将这些写入磁盘。如果您运行session_save_path

,则可以看到此信息
echo session_save_path();

然后你可以再次运行该功能来改变路径,但听起来你的会话太多了。

您可以通过storing your sessions inside your database而不是磁盘来帮助避免这种情况。您还可以PHP do more session cleanups