phpList broken after server update

I’ve got a puzzler. I run a server w cPanel CENTOS 6.7 on a VPS box
and after I ran easyapache3 with cPanel’s WHM,
all three user installs of phpList broke.
But they broke in a funny way AND no error messages (even with Verbose turned on)
Both Apache and PHP were updated to the latest versions so after confirming all the phpList installs were broken
(details to come)
I recompiled, trying to install the older versions of Apache and PHP again.
Still fail.
I’m guessing it’s some setting on PHPMyAdmin or something that was changed as part of the upgrade.
I went to the hosting folks, Inmotionhosting and asked for support.
They duplicated the problem and gave it back to me.
And so I come to you.

Details of problem (three 3.3.1 installs(diff users on server), one with cron for processqueue, two through browser, all identical issues)

After first compile, no connection to database at all. Realized I had to install MySQLi as well as MySQL and recompile again.
Result: phpList connect, no problems. Log in all seems well.
Start campaign of 1800 members.
phpList Log says: the typical: One campaign to process, Please leave window open take a while, etc, Report of processing will be sent by email
(AND I GET THIS EMAIL.)
Processing message 7
Looking for subscribers
Found them: 1800 to process
then I get

select id from phplist_message where status not in ("draft", "sent", "prepared", "suspended") and embargo

and it won’t try to send in batches.
It will process one user and stop, and then at some point go

User select query select distinct u.id from phplist_listuser as listuser inner join phplist_user_user as u ON u.id = listuser.userid inner join phplist_listmessage as listmessage ON listuser.listid = listmessage.listid left join phplist_usermessage as um ON (um.messageid = 1580 and um.userid = listuser.userid) where listmessage.messageid = 1580 and listmessage.listid = listuser.listid and u.id = listuser.userid and um.userid IS NULL and u.confirmed and !u.blacklisted and !u.disabled

The newsletter does NOT go out, and at some point, the process stops.
If it’s a manual queue, I can hit Process Queue again
On the one with the cron, this repeats ticking down the user count by one.

On a short test campaign with two users, I get the email that the campaign has started and the email that the campaign has stopped. But not the newsletter emails, obviously. So the email function works.

But wait! There’s more!

I did a fresh install on a test domain. I couldn’t get it to install.
Barebones config, I get the “You need to initialize database” link, I click that.
It goes through most of the listings from the first

Initialize table attribute... ok

all the way through

Initialize plugin CKEditorPlugin

and then the page quits loading.
Nothing. I get it to the next page and get the dashboard with the first option being the link saying
Continue the Configuration process of phpList
But if I click that or ANY button or no button at all (I’ve repeated this a few times)
I get a blank page. No code, nothing.
Click on the /lists/ page? Also dead blank. Nothing.
Edit the code on the index.php to show PHP errors? Nothing. (belt and suspenders)

So, the new install is useless.

Meanwhile, back at the installs that are fine but won’t send campaigns, I can see lists, alter users, all the good stuff.
So, the database connection works.
The Database Structure page is all green Thumbs Up, by the way.

Just not phpList.

I need help.

Thanks

Current PHP and MySQL info from the ini dump file

PHP Version 5.6.31

System	Linux myserver.com 2.6.32-042stab113.11 #1 SMP Thu Oct 27 16:59:03 MSK 2016 x86_64
Build Date	Aug 16 2017 13:25:43
Configure Command	'./configure' '--disable-fileinfo' '--disable-opcache' '--enable-bcmath' '--enable-calendar' '--enable-ftp' '--enable-gd-native-ttf' '--enable-intl' '--enable-libxml' '--enable-pdo=shared' '--enable-sockets' '--enable-sqlite-utf8' '--prefix=/usr/local' '--with-apxs2=/usr/local/apache/bin/apxs' '--with-curl=/opt/curlssl/' '--with-enchant=/usr' '--with-freetype-dir=/usr' '--with-gd' '--with-icu-dir=/usr' '--with-imap=/opt/php_with_imap_client/' '--with-imap-ssl=/usr' '--with-jpeg-dir=/usr' '--with-kerberos' '--with-libdir=lib64' '--with-libxml-dir=/opt/xml2/' '--with-mcrypt=/opt/libmcrypt/' '--with-mysql' '--with-mysqli' '--with-openssl=/usr' '--with-openssl-dir=/usr' '--with-pcre-regex=/opt/pcre' '--with-pdo-mysql=shared' '--with-pdo-sqlite=shared' '--with-pic' '--with-png-dir=/usr' '--with-xpm-dir=/usr' '--with-xsl=/opt/xslt/' '--with-zlib' '--with-zlib-dir=/usr' 'CFLAGS= '--param' 'ggc-min-expand=1' '--param' 'ggc-min-heapsize=4096'' 'LDFLAGS= '-L/usr/X11R6/lib64'' 'CXXFLAGS= '--param' 'ggc-min-expand=1' '--param' 'ggc-min-heapsize=4096''
Server API	CGI/FastCGI
Virtual Directory Support	disabled
Configuration File (php.ini) Path	/usr/local/lib
Loaded Configuration File	/usr/local/lib/php.ini
Scan this dir for additional .ini files	(none)
Additional .ini files parsed	(none)
PHP API	20131106
PHP Extension	20131226
Zend Extension	220131226
Zend Extension Build	API220131226,NTS
PHP Extension Build	API20131226,NTS
Debug Build	no
Thread Safety	disabled
Zend Signal Handling	disabled
Zend Memory Manager	enabled
Zend Multibyte Support	disabled
IPv6 Support	enabled
DTrace Support	disabled
Registered PHP Streams	https, ftps, compress.zlib, php, file, glob, data, http, ftp, phar
Registered Stream Socket Transports	tcp, udp, unix, udg, ssl, sslv3, sslv2, tls, tlsv1.0, tlsv1.1, tlsv1.2
Registered Stream Filters	zlib.*, convert.iconv.*, mcrypt.*, mdecrypt.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk

mysql

MySQL Support	enabled
Active Persistent Links	0
Active Links	0
Client API version	mysqlnd 5.0.11-dev - 20120503 - $Id: 76b08b24596e12d4553bd41fc93cccd5bac2fe7a $
Directive	Local Value	Master Value
mysql.allow_local_infile	On	On
mysql.allow_persistent	On	On
mysql.connect_timeout	60	60
mysql.default_host	no value	no value
mysql.default_password	no value	no value
mysql.default_port	no value	no value
mysql.default_socket	/var/tmp/mysql.sock	/var/tmp/mysql.sock
mysql.default_user	no value	no value
mysql.max_links	Unlimited	Unlimited
mysql.max_persistent	Unlimited	Unlimited
mysql.trace_mode	Off	Off
mysqli

MysqlI Support	enabled
Client API library version	mysqlnd 5.0.11-dev - 20120503 - $Id: 76b08b24596e12d4553bd41fc93cccd5bac2fe7a $
Active Persistent Links	0
Inactive Persistent Links	0
Active Links	0
Directive	Local Value	Master Value
mysqli.allow_local_infile	On	On
mysqli.allow_persistent	On	On
mysqli.default_host	no value	no value
mysqli.default_port	3306	3306
mysqli.default_pw	no value	no value
mysqli.default_socket	/var/tmp/mysql.sock	/var/tmp/mysql.sock
mysqli.default_user	no value	no value
mysqli.max_links	Unlimited	Unlimited
mysqli.max_persistent	Unlimited	Unlimited
mysqli.reconnect	Off	Off
mysqli.rollback_on_cached_plink	Off	Off
mysqlnd

mysqlnd	enabled
Version	mysqlnd 5.0.11-dev - 20120503 - $Id: 76b08b24596e12d4553bd41fc93cccd5bac2fe7a $
Compression	supported
core SSL	supported
extended SSL	supported
Command buffer size	4096
Read buffer size	32768
Read timeout	31536000
Collecting statistics	Yes
Collecting memory statistics	No
Tracing	n/a
Loaded plugins	mysqlnd,debug_trace,auth_plugin_mysql_native_password,auth_plugin_mysql_clear_password,auth_plugin_sha256_password
API Extensions	mysqli,mysql,pdo_mysql

Bumping to ask if there were any clues.

And now I know.
Fixed this, I think.

When recompiling a server w PHP, make sure you check the box that says
mbstring

Was researching this, and discovered that on some servers it phpList will give a blank page on a new install unless mbstring is installed. Well, with cPanel and easyapache, the checkbox for my setup wasn’t checked for that.
I’m an idiot that didn’t know what it was for. (I don’t include things for which I have no idea what they do)

Well, the “blank page after install” was my clue.
Tried it, recompiled and that (I think, still testing) was it.