June 5, 2020

Koha and Debian 9 and /tmp

I recently upgraded our library’s Koha installation to 19.11 (from 19.05), and at the same time upgraded the operating system from Debian 8 to Debian 9. This created a problem with the “Stage MARC records for import” feature in Koha. I could upload the file, and using ssh I could see the file in /tmp. But then Koha would complain that the file did not exist when it tried to import it.

This problem turns out to be the result of two things:

First, Debian 9 uses the PrivateTmp feature of systemd to run the Apache web server, This means that Apache has its own /tmp directory in a private namespace, which cannot be accessed by other processes.

Secondly, our Koha installation’s koha-conf.xml configuration file was missing a tmp_path entry. This meant that by default, Koha uploaded MARC records to /tmp, but Apache could not see them there, because it had its own private /tmp directory.

The solution was to add the missing tmp_path entry to koha-conf.xml, and point it to somewhere other than /tmp. Here is what the two related entries look like now:


Replace INSTANCE with your actual Koha instance name. Then reboot the server to make sure that Koha sees and uses the new paths correctly.