Hey guys, I'm wondering about how ISPConfig deals with the PHP Sessions on a debian system. It seems, that the normal cron by php (/etc/cron.d/php) executes, but won't flush the ones of the hosting sites. On a pretty old forum thread (2010-ish) I read that the cron.daily.php should handle the task. Unfortunately this file has been merged to cron.php as well as the classes in "server/lib/classes/cron.d" - but none of them seem to handle anything in relation to the php sessions in $client/tmp/. Problably I overread it in my quick lookup. Can someone enlighten me on this?
Oh, my bad. Thanks for hinting. As the records come from the db, would you mind implementing a session timeout input field per site/record? The user may then decide when a php session needs to get garbage collected. Dropdown "by day" (-mtime) or "by minute" (-mmin) with an input field for the number of days/minutes.
Hello, i have also the problem that the tmp folder gets not cleaned up. If i run cron_debug.php --cronjob=200-logfiles.inc.php then i get the following output Code: sh: line 0: cd: ?: No such file or directory sh: line 0: cd: ?: No such file or directory sh: line 0: cd: ?: No such file or directory sh: line 0: cd: ?: No such file or directory sh: line 0: cd: ?: No such file or directory sh: line 0: cd: ?: No such file or directory sh: line 0: cd: ?: No such file or directory finished. How can i fix this?
It was just a guess. I looked at file 200-logfiles.inc.php and there was shell command with cd. That command would fail like No such file or directory if $tmp_path is not set.
i have only tested with that command because i have found it in a board thread. My problem is that my tmp folders dont gets cleaned up and gwoing each day 2GB of files.
Code: var=$(locate 200-logfiles.inc.php) && nano $var; This will open the file, presuming you have no copy of it, you will need to be root to access that file. However, the code block you want to look at is: Code: $sql = "SELECT domain_id, domain, document_root, system_user FROM web_domain WHERE server_id = ?"; $records = $app->db->queryAllRecords($sql, $conf['server_id']); $app->uses('system'); if(is_array($records)) { foreach($records as $rec){ $tmp_path = realpath($rec['document_root'].'/tmp'); if($tmp_path != '' && strlen($tmp_path) > 10 && is_dir($tmp_path) && $app->system->is_user($rec['system_user'])){ exec("cd ?; find . -mtime +1 -name 'sess_*' | grep -v -w .no_delete | xargs rm > /dev/null 2> /dev/null", $tmp_path); } } } Looking at this, you first want to check that document_root is set under web_domain table for any affected website. Also, I recall reading a thread a day or so ago about the server_id not being set somewhere which might be the problem, although i suspect not if the logs are clearing properly. If none of these are the issue then I am not sure what would cause this for you, in one of my php websites: du -h /var/www/clients/client2/web1 outputs a total disk usage of 207M for an entire php website with its tmp directory being ~ 31M. It seems for me that clean up is taking place for the website under the latest version of ISPConfig and Ubuntu 18.04 and running on php7.2 FPM. I am not sure these details matter but I am trying to provide as much information as possible about a system that appears to be working as expected.