On 04/10/2017 01:23 PM, John Iliffe wrote:
On Monday 10 April 2017 11:53:35 Daniel Verite wrote:
John Iliffe wrote:
So, the problem is resolved, although I have no idea why it was
necessary.
The key seems to be the PrivateTmp=true in the systemd service.
Apache is not chrooted as demonstrated upthread, but that
setting alone makes the normal, system-wide /tmp inaccessible
to its processes, including the postgres Unix domain socket opened
there.
I suspect that your attempt to set PrivateTmp=false as a test was
missed by systemd for some reason. You could probably insist
in that direction and eventually make it work, but I don't see
how it's better than the alternative /var/pgsql or localhost through
TCP.
Also, I now have several hundred programmes to update to add the host
path and none of them will now be portable.
Given that you set two directories: /tmp and /var/pgsql,
I would think you can let the other apps use /tmp as before
and have only Apache use /var/pgsql ?
Yes, I will do that, but there are several hundred PHP web page scripts to
be updated. Presumably if one script opens two different databases then
both of the pg_connect() instances will need to be updated.
Seems to me that it would be easier to try:
PrivateTmp=false
in the httpd systemd file.
Best regards,
--
Adrian Klaver
adrian.klaver@xxxxxxxxxxx
--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general