我似乎无法在任何地方找到这些信息所以我想我在这里问。
目前我将PHP会话路径(session.save_path)设置为服务器硬盘上的文件夹。
我创建了一个简单的PHP程序,如下所示:
<?php echo "TEST"; ?>
然后我用strace执行它,并且最长时间的strace日志中的进程是shmdt()
,当我匹配数字时,它引用了session.save_path中的sem文件。
我可以尝试缓解此问题的一种方法是为php会话文件创建一个ram磁盘,但我希望能够在PHP配置文件本身中添加一个配置条目,以便PHP了解它有足够的空间来在删除旧条目之前使用。
我需要什么配置条目才能完成此任务?
如果可能,我可以使用哪些配置条目来消除shmdt()
电话?
我在PHP 5.5.29版本中测试了我的脚本。
答案 0 :(得分:0)
我理解您正在尝试的是防止会话文件存储在会话文件夹(session.save_path)中。
如果您有权访问PHP配置文件(php.ini),则必须调整&#34; session.gc_maxlifetime&#34;的值。到您需要的最长持续时间,以便从服务器中删除文件。
PHP文档: http://ar.php.net/manual/en/session.configuration.php#ini.session.gc-maxlifetime
要为&#34; RAM磁盘&#34;分配空间,需要对服务器进行root访问。如果是这种情况,您必须执行以下操作:
mkdir /var/sessions
vi /etc/fstab
none /var/sessions tmpfs defaults,size=50M 1 2
保存&#34; fstab&#34;。
挂载新的RAM磁盘:
mount -a
注意:在&#34; 4&#34;点,我正在分配50 Mb的RAM空间。您必须在服务器RAM中分配可供用户使用的空间。
我希望这会有所帮助。