Blank Administrator Screen After Upgrade From Freepbx 2.9 to 2.11.0rc1

I attempted to upgrade from a functioning Freepbx 2.9 system to 2.11.0rc1 using the tarball.

cd /usr/src/
wget http://mirror.freepbx.org/freepbx-2.11.0rc1.tar.gz
tar zxvf freepbx-2.11.0rc1.tar.gz
cd freepbx-2.11.0rc1
./start_asterisk start # for upgrades use: amportal start
./install_amp

As far as I can see, the upgrade completed successfully, (see below), and the system will at least make and receive calls, so Asterisk looks to be more or less functional. However, the administration GUI returns blank pages. Also, module_admin list shows that all of the modules which were upgraded are disabled, (see futher below). All attempts to start the new modules fail, (amportal reload, module_admin enable, rebooting the system).

module_admin reload produces the following error:

./module_admin reload
Error(s) have occured, the following is the retrieve_conf output:
exit: 255
PHP Parse error: syntax error, unexpected T_FUNCTION in /var/lib/asterisk/bin/retrieve_conf on line 677

There are no related errors being logged in the httpd error log. I am at a loss as to how to enable the updated modules at this point since all the ways that I know to do so from the command line don’t work, and I don’t have a functioning GUI. Some guidance would be greatly appreciated.

freepbx-2.11.0rc1]# ./install_amp
Checking for PEAR DB…OK
Checking for PEAR Console::Getopt…OK
Checking user…OK
Checking if Asterisk is running…running with PID: 2930…OK
Checking for /etc/amportal.conf…OK
Reading /etc/amportal.conf…parsed amp_conf variables from /etc/amportal.conf:
amp_conf [ASTMANAGERHOST] => [127.0.0.1]
amp_conf [AMPMGRPASS] => [amp111]
amp_conf [ASTMANAGERPORT] => [5038]
amp_conf [ASTMANAGERPROXYPORT] => []
amp_conf [AMPMGRUSER] => [admin]
amp_conf [AMPBACKUPEMAILFROM] => []
amp_conf [AMPBACKUPADVANCED] => [FALSE]
amp_conf [DAYNIGHTTCHOOK] => [FALSE]
amp_conf [DAHDISHOWDIGITALCHANS] => [FALSE]
amp_conf [AMPLOCALBIN] => []
amp_conf [FPBXDBUGFILE] => [/tmp/freepbx_debug.log]
amp_conf [DEVEL] => [FALSE]
amp_conf [FPBXDBUGDISABLE] => [TRUE]
amp_conf [DEVELRELOAD] => [TRUE]
amp_conf [CFRINGTIMERDEFAULT] => [0]
amp_conf [ZAP2DAHDICOMPAT] => [TRUE]
amp_conf [ENABLECW] => [TRUE]
amp_conf [DISABLECUSTOMCONTEXTS] => [FALSE]
amp_conf [DYNAMICHINTS] => [FALSE]
amp_conf [USEDEVSTATE] => [TRUE]
amp_conf [CONCURRENCYLIMITDEFAULT] => [0]
amp_conf [FCBEEPONLY] => [FALSE]
amp_conf [DIVERSIONHEADER] => [FALSE]
amp_conf [NOOPTRACE] => [0]
amp_conf [CWINUSEBUSY] => [TRUE]
amp_conf [ASTSTOPPOLLINT] => [2]
amp_conf [AMPBADNUMBER] => [TRUE]
amp_conf [USEGOOGLEDNSFORENUM] => [FALSE]
amp_conf [ASTSTOPTIMEOUT] => [120]
amp_conf [AUTOMIXMON] => [FALSE]
amp_conf [ASTAGIDIR] => [/var/lib/asterisk/agi-bin]
amp_conf [ASTVARLIBDIR] => [/var/lib/asterisk]
amp_conf [ASTETCDIR] => [/etc/asterisk]
amp_conf [ASTLOGDIR] => [/var/log/asterisk]
amp_conf [ASTMODDIR] => [/usr/lib/asterisk/modules]
amp_conf [ASTRUNDIR] => [/var/run/asterisk]
amp_conf [ASTSPOOLDIR] => [/var/spool/asterisk]
amp_conf [AMPCGIBIN] => [/var/www/cgi-bin ]
amp_conf [AMPBIN] => [/var/lib/asterisk/bin]
amp_conf [AMPSBIN] => [/usr/sbin]
amp_conf [AMPWEBROOT] => [/var/www/html]
amp_conf [MOHDIR] => [moh]
amp_conf [FOPDISABLE] => [FALSE]
amp_conf [FOPPASSWORD] => [passw0rd]
amp_conf [FOPSORT] => [extension]
amp_conf [FOPWEBROOT] => [/var/www/html/panel]
amp_conf [FOPRUN] => [TRUE]
amp_conf [BADDESTABORT] => [FALSE]
amp_conf [XTNCONFLICTABORT] => [FALSE]
amp_conf [CHECKREFERER] => [TRUE]
amp_conf [SERVERINTITLE] => [FALSE]
amp_conf [CUSTOMASERROR] => [TRUE]
amp_conf [RELOADCONFIRM] => [TRUE]
amp_conf [USECATEGORIES] => [TRUE]
amp_conf [MODULEADMINWGET] => [TRUE]
amp_conf [MAXCALLS] => []
amp_conf [USEQUEUESTATE] => [FALSE]
amp_conf [CDRDBHOST] => []
amp_conf [CDRDBNAME] => []
amp_conf [CDRDBPASS] => []
amp_conf [CDRDBPORT] => []
amp_conf [CDRDBTABLENAME] => []
amp_conf [CDRDBTYPE] => []
amp_conf [CDRDBUSER] => []
amp_conf [AMPADMINLOGO] => [logo.png]
amp_conf [AMPSYSLOGLEVEL] => [FILE]
amp_conf [AMPDISABLELOG] => [FALSE]
amp_conf [AMPEXTENSIONS] => [extensions]
amp_conf [AUTHTYPE] => [database]
amp_conf [AMPVMUMASK] => [007]
amp_conf [AMPWEBADDRESS] => []
amp_conf [AMPASTERISKGROUP] => [asterisk]
amp_conf [AMPASTERISKUSER] => [asterisk]
amp_conf [AMPDEVGROUP] => [asterisk]
amp_conf [AMPDEVUSER] => [asterisk]
amp_conf [AMPASTERISKWEBGROUP] => [asterisk]
amp_conf [AMPASTERISKWEBUSER] => [asterisk]
amp_conf [AMPENGINE] => [asterisk]
amp_conf [AMPMPG123] => [TRUE]
amp_conf [SSHPORT] => []
amp_conf [AMPPLAYKEY] => []
amp_conf [PARKINGPATCH] => [FALSE]
amp_conf [TCMAINT] => [TRUE]
amp_conf [TCINTERVAL] => [60]
amp_conf [AMPDBUSER] => [freepbx]
amp_conf [AMPDBPASS] => [fpbx]
amp_conf [AMPDBHOST] => [localhost]
amp_conf [AMPDBNAME] => [asterisk]
amp_conf [AMPDBENGINE] => [mysql]
amp_conf [datasource] => []
amp_conf [AMPENABLEDEVELDEBUG] => []
OK
Checking for /etc/asterisk/asterisk.conf…OK
Reading /etc/asterisk/asterisk.conf…OK
Using asterisk as PBX Engine
Checking for Asterisk version…1.8.7.0
Checking for selinux…OK
Connecting to database…OK
Checking current version of AMP…2.11.0rc1
Installing new FreePBX files…OK (609 files copied, 0 skipped)
amportal…fpbx…freepbx_engine…freepbx_setting…gen_amp_conf.php…done
apply username/password changes to conf files:
running apply_conf.sh from freepbx_settings
Bootstrapping Configuration Settings
Updating configuration…
/etc/asterisk/cdr_mysql.conf user: [freepbx] password: [fpbx] hostname: [localhost]
/etc/asterisk/manager.conf user: [admin] secret: [amp111]
Adjusting File Permissions…

Please wait…

SETTING FILE PERMISSIONS
Permissions OK
Done
done with apply_conf.sh
creating missing #include files…OK
OK
Setting permissions on files…OK
Checking for upgrades…No further upgrades necessary
Creating or updating freepbx_conf settings…OK
Generating AMP configs…
Generating Configurations.conf, (if Asterisk is not running, you will get an error
In case of error, start Asterisk and hit the red bar in the GUI to generate the Configurations.conf files
PHP Parse error: syntax error, unexpected T_FUNCTION in /var/lib/asterisk/bin/retrieve_conf on line 677
Generating AMP configs…OK
Checking music… installed
Checking fw_ari… installed
Checking cdr… dependencies pending
Checking framework… installed
Checking core… installed
Checking recordings… installed
Checking logfiles… installed
Checking dashboard… installed
Checking voicemail… installed
Checking customappsreg… installed
Checking infoservices… installed
Checking featurecodeadmin… installed
Checking cdr… dependencies pending
Checking cdr… installed
Please update your modules and reload Asterisk by browsing to your server.


  • Note: It’s possible that if you click the red ‘Update Now’ bar BEFORE *
  • updating your modules, your machine will start dropping calls. Ensure *
  • that all modules are up to date BEFORE YOU CLICK THE RED BAR. As long *
  • as this is observed, your machine will be fully functional whilst the *
  • upgrade is in progress. *

module_admin list

Module Version Status


announcement 2.9.0.2 Enabled
asterisk-cli 2.9.0.2 Enabled
asteriskinfo 2.9.0.3 Enabled
backup 2.9.0.4 Enabled
blacklist 2.9.0.1 Enabled
builtin Enabled
bulkdids 2.9.0.2 Enabled
bulkextensions 2.9.0.5 Enabled
callback 2.9.0.4 Enabled
callforward 2.9.0.1 Enabled
callwaiting 2.9.0.0 Enabled
campon 2.9.0.0 Enabled
cdr 2.11.0.2 Disabled
cidlookup 2.9.0.5 Enabled
conferences 2.9.0.2 Enabled
core 2.11.0.0rc1.1 Disabled
customappsreg 2.11.0.0 Disabled
customcontexts 2.9.0.0 Disabled
dahdiconfig 2.9.0.1 Enabled
dashboard 2.11.0.0 Disabled
daynight 2.9.0.4 Enabled
dictate 2.9.0.0 Enabled
digiumaddoninstaller2.7.0 Enabled
directory 2.9.0.12 Enabled
directorypro 2.9.0.13 Enabled
disa 2.9.0.5 Enabled
donotdisturb 2.9.0.1 Enabled
dundicheck 2.9.0.1 Enabled
endpointman 2.9.2.9 Enabled
extensionsettings 2.9.0.0 Enabled
fax 2.9.0.6 Enabled
faxpro 2.9.0.18 Enabled
featurecodeadmin 2.10.0.3 Disabled
findmefollow 2.9.0.6 Enabled
fop2admin 1.2.11 Enabled
framework 2.11.0.0rc1.2 Disabled
fw_ari 2.10.0.5 Disabled
fw_fop 2.9.0.2 Enabled
fw_langpacks 2.9.0.1 Enabled
iaxsettings 2.9.0.5 Enabled
infoservices 2.11.0.1 Disabled
irc 2.9.0.1 Enabled
ivr 2.9.0.5 Enabled
javassh 2.9.0.0 Enabled
languages 2.9.0.3 Enabled
logfiles 2.11.0.0 Disabled
manager 2.9.0.3 Enabled
miscapps 2.9.0.2 Enabled
miscdests 2.9.0.1 Enabled
music 2.11.0.1 Disabled
outboundnotification2.9.1.2 Enabled
outroutemsg 2.9.0.1 Enabled
paging 2.9.0.6 Enabled
parking 2.9.0.4 Enabled
pbdirectory 2.9.0.2 Enabled
phonebook 2.9.0.3 Enabled
phpagiconf 2.9.0.2 Enabled
phpinfo 2.9.0.1 Enabled
pinsets 2.9.0.2 Enabled
printextensions 2.9.0.1 Enabled
queueprio 2.9.0.1 Enabled
queues 2.9.0.14 Enabled
recordings 3.3.11.9 Disabled
restart 2.9.0.2 Enabled
ringgroups 2.9.0.6 Enabled
setcid 2.9.0.1 Enabled
sipsettings 2.9.0.5 Enabled
sipstation 2.9.0.1 Disabled; Pending upgrade to 2.9.0.4
speeddial 2.9.0.1 Enabled
timeconditions 2.9.0.7 Enabled
vmblast 2.9.0.3 Enabled
vmnotify 2.9.1.8 Enabled
voicemail 2.11.0.3 Disabled
weakpasswords 2.9.0.1 Enabled

Looks like retrieve.conf needed PHP5.3. I have upgraded to 5.3.24 and that at least makes the retrieve.conf error below go away, however it does not resolve any of the other issues.

./module_admin reload
Error(s) have occured, the following is the retrieve_conf output:
exit: 255
PHP Parse error: syntax error, unexpected T_FUNCTION in /var/lib/asterisk/bin/retrieve_conf on line 677

Why not just update from the GUI?

Anyway, check your PHP error_log. If you don’t have one set up, edit your php.ini. Probably there’s some fatal error that you will be able to catch.

Unfortunately FreePBX takes over the PHP logging, but if there’s a parse error it doesn’t get a chance to, and the default log is used instead.

Should have thought of that, and sure enough, the fatal error is:

America/New_York] PHP Fatal error: Call to undefined function dl() in /var/www/html/admin/modules/digiumaddoninstaller/libdregister/digium_register.php on line 72

Line 72 is:
//now we execute dl() to actually load the module
if( !dl( $finalExtPath ) ) {
die();
}

    //if the module was loaded correctly, we must bow grab the module name
    $loadedExtensions = get_loaded_extensions();
    $thisExtName = $loadedExtensions[ sizeof( $loadedExtensions ) - 1 ];

    //lastly, we return the extension name
    return $thisExtName;

}//end dl_local()
/!dl

Under the assumption that the Digium Add-on installer was the cause of the problem here, I attempted to disable it:

amportal a ma disable digiumaddoninstaller

No joy; the same PHP fatal errors are still being logged.

So, let’s get more brutal here. Out with the Digium Add-On Installer:
yum erase freepbx-digiumaddoninstaller

Sure enough that fixes the GUI, but I am not sure what I may have broken on the Digium side of the fence.