[Rev 4201] blank page when trying to install/update database schema
-
@Stefan-Kaegi said:
When I run ‘./installfog.sh’ everything looks ok. But when I try to update the database schema via ’http://172.30.40.25/fog/management’ I only see a blank page. I tried to skip the database update and finish the installation. But all i can see now when going to ’http://172.30.40.25/fog’ or ’http://172.30.40.25/fog/management’ is a blank page. Hard refreshing the page didn’t help.
I believe i figured out the issue, as well as the error you were seeing from FOGCore.
Query was null because the link was not connected due to the load issues we’ve been trying to fight lately
I believe I finally got to the bottom of it.
-
@Tom-Elliott Could be related to load but in this case I am fairly sure that
query() on null
is coming from mysqli class not being available. I just had that on one of my test debian systems when playing with the different php mysql packages. Seams likephp5-mysqlnd
from dotdeb is not properly configured to offer mysqli as it is used in FOG. Maybe it’s just a php.ini thing, I am not sure.
Exchanging php5-mysqlnd with php5-mysql solved that for me! -
Hi
i have tried to fix this using this command but no joy
sudo apt-get install php5-mysql .
i still am getting a blank page. I am using the svn
13 2015] [notice] Apache/2.2.22 (Debian) mod_ssl/2.2.22 OpenSSL/1.0.1e configured – resuming normal operations
[Thu Oct 29 10:33:52 2015] [error] [client ::1] PHP Warning: mysqli::query() expects parameter 2 to be long, string given in /var/www/html/fog/lib/db/MySQL.class.php on line 63
[Thu Oct 29 10:33:52 2015] [error] [client ::1] PHP Warning: mysqli::query() expects parameter 2 to be long, string given in /var/www/html/fog/lib/db/MySQL.class.php on line 63
[Thu Oct 29 10:33:52 2015] [error] [client ::1] PHP Fatal error: Call to a member function query() on null in /var/www/html/fog/lib/fog/FOGCore.class.php on line 276
[Thu Oct 29 10:33:52 2015] [error] [client ::1] File does not exist: /var/www/favicon.ico -
Please update to trunk and try again. Those lines of code do not match with what I see in the code. Very hard to find an issue then. Update can be done as you described earlier in this thread.
-
I installed php5-mysql (and removed php5-mysqlnd) , updated trunk as you described and run the installfog.sh again. But I still get the blank page. It seems like installfog.sh installs php5-mysqlnd again:
... * Installing package: php5-mysqlnd............................OK ...
It doesn’t work either when I try to install php5-mysql after the installation again.
My apache error log file stills looks the same. -
Here is my FOGCore.class.php file:
FOGCore.class.php -
Thanks for uploading FOGCore.class.php. But without knowing the exact line number where the error happened I am unable to help you. I am very sorry for all this messages forth an back without getting anywhere yet. But we need full information to be able to help you. Line number (error log) and code (either upload or tell us the exact revision number).
I tried to reproduce this but I can’t unfortunately!! Installed php5-mysqlnd (which removed php5-mysql) and it is still working for me here. I wish I would have payed more attention on why it didn’t work for me in the first place but I guess it was just too late at night.
-
@irishfoguser it appears you are not updating. I state this because ‘PHP Warning: mysqli::query() expects parameter 2 to be long, string given’ will only occur in async mysqli calls specifically from the poll method. I have moved away from async calls.
How exactly are you updating and reinstalling? My guess is you are in bin which will not update all of the files. If svn is downloaded to /root under folder trunk, you must be in /root/trunk not /root/trunk/bin.
-
I udpated again today. So now I’m on Rev 4244.
Apache error.log: error.log
FOGCore.class.php: FOGCore.class.php -
Thanks for the information. This definitely seams like an un-initialized DB object. I am kind of new in the Developers Team and still catching up with all the details. Didn’t know about debugging needs to be switched on to see possible errors when loading the MySQL library. Would you please edit your /var/www/html/fog/lib/fog/FOGBase.class.php (change
false
totrue
<?php abstract class FOGBase { protected $debug = true; ...
Then reload the page and see what you get.
-
@Stefan-Kaegi This isn’t possible. Are you really sure you’re updated?
I ask because you report the Rev number, but what is the version in your cloud?
-
That’s how I update:
cd /root/ svn checkout https://svn.code.sf.net/p/freeghost/code/trunk cd trunk/bin/ ./installfog.sh
How can I see which version my cloud has?
I updated today to Rev 4270. Seems like I have a new problem now. The Fog Installer stops at the following point:.... * Enabling apache and fpm services on boot....................OK * Creating SSL Certificate....................................OK * Creating auth pub key and cert..............................OK * Resetting SSL Permissions...................................OK * Setting up SSL FOG Server...................................OK * Restarting Apache2 for fog vhost............................OK * Changing permissions on apache log files....................OK * Backing up database.........................................Failed!
I added the line ‘protected $debug = true;’ to my FOGBase.class.php in section ‘abstract class FOGBase’
Now my Apache error log shows:[Mon Nov 02 09:46:50 2015] [error] [client 172.30.34.61] PHP Fatal error: Cannot redeclare FOGBase::$debug in /var/www/html/fog/lib/fog/FOGBase.class.php on line 5 [Mon Nov 02 09:46:50 2015] [error] [client 172.20.60.31] PHP Fatal error: Cannot redeclare FOGBase::$debug in /var/www/html/fog/lib/fog/FOGBase.class.php on line 5 [Mon Nov 02 09:46:50 2015] [error] [client 172.20.60.31] PHP Fatal error: Cannot redeclare FOGBase::$debug in /var/www/html/fog/lib/fog/FOGBase.class.php on line 5
Line 5 is where i added the line.
-
My changed FOGBase.class.php file:
FOGBase.class.php -
@Stefan-Kaegi said:
I added the line ‘protected $debug = true;’ to my FOGBase.class.php in section ‘abstract class FOGBase’
PHP is not happy if you add another variable with the same name. Just change the value from ‘false’ to ‘true’. Don’t worry about it being ‘public’ or ‘protected’. This was changed by Tom at some point. Just change its value and see what you get.
-
I changed FOGBase.class.php as you described. Here is my Apache Error Log as it looks now:
error.log -
If something goes wrong with the database connection you should be seeing this on the web interface (top left). Like this:
-
I don’t see anything on the webinterface. Still a blank page.
-
I am kind of lost with this. Apache error log tells us that it cannot issue a query from a null object which means that the DB object is not properly initialized. But why don’t you see any errors from the inizialisation code?? @Tom-Elliott Any ideas?
The “Backing up database” issue should be solved as far as I know. Please update and try again. After running the installer your changes in /var/www/html/fog/lib/fog/FOGBase.class.php will be lost. You might want to enable debug again and see what you get.
-
I updated again to Rev 4278 . But the Installer stills stopps at ‘Backing up database’.
-
Wohoo, didn’t pay enough attention when reading this. I had a different issue in mind but it’s unrelated (https://forums.fogproject.org/topic/5972/rev-5020-upgrade-error), sorry for that.
“Backing up database” is done via wget requesting a database export from the web interface. Sure this is not working in your case as we still haven’t tracked down the real cause of your grumpy DB connection. So you need to modify the installer script I am afraid. Open trunk/bin/installfog.sh in an editor and see if you can find this lines (should be around 440):
... dots "Backing up database" if [ -d "$backupPath/fog_web_${version}.BACKUP" ]; then if [ ! -d "$backupPath/fogDBbackups" ]; then mkdir -p $backupPath/fogDBbackups >/dev/null 2>&1 fi wget --no-check-certificate -O $backupPath/fogDBbackups/fog_sql... fi errorStat $? ...
Simply add a comment sign (
#
) in front of thewget
command, save the file and run the installer again. I hope this time it’ll run till the end.