Troubles moving plugins and tmp out of web root

I’m moving my phpList installation to a new host. On the old host, I had the plugins and tmp folders for phpList outside of the web root, and I wanted to do the same in the new environment. I updated my config.php file accordingly, but something must be wrong with the permissions, because I either get a message (on the plugins page) that the plugin directory is not writable or I get a white screen of death and a 500 HTTP result shown in the Apache access log but nothing written to the Apache error log.

I’m not seeing a PHP-specific error log even though the PHP log refers to the error log being opened. Per the php.ini, it looks like the error log should be written in /tmp (must be a default setting, I wouldn’t have chosen that), but there’s no error log there.

OS is debian 11. The owner of the directory structure and files for the plugins is root, with the group being one that includes the Apache user. If write permissions are limited to owner (i.e., root), I get the “not writable” message (makes sense). If I then give write permissions to group, I get the WSOD. Without an error being written to an error log, I’m not sure how to debug this.

So, for now, I commented out the line in config.php to put things back to their default… where the permissions don’t make much sense to me. The plugins directory itself has read, write, execute for everyone, but within that the write permissions are limited to owner (root).

@Crenel84 You might need to enable error reporting in phplist. In file admin/init.php change 0 to -1

error_reporting(0);

With a white screen, there may be html behind it if you view the page source.

1 Like

Yeah, I checked the page source but it was empty. Thanks for the tip about enabling error reporting in phpList. I tried that, but it still gives me an empty result with no errors written to any log I can see. It seems really weird that adding write permissions causes this empty result and taking it away restores the regular UI with a “not writable” message from phpList. Also confusing that PHP is configured to write its error log to /tmp but there’s no log there, not even an empty file.

And… now I’m completely confused, because I just sent a test campaign and it was successfully processed by Amazon SES - but the Amazon SES plugin is not installed. I have been working on this move literally for weeks, it’s just getting worse, and I’m way behind on several deadlines as a result. Fun times.