Blank page after standalone install completes.

Hello,

I have installed the standalone version of Formulize on Ubuntu Server 10.04.3 LTS running the following:

  • Apache/2.2.14 (Ubuntu)
  • MySQL client version: 5.1.62
  • PHP extension: mysqli

The install wizard completes without issues, all the tables and data are created but as soon as I click the final 'Next' button all I get is a blank page. I can find no errors in any log files, including PHP after turning log_errors on.

I have confirmed

memory_limit 128M
max_execution_time 120

are set per the getting started guide but still nothing.

I am stuck. Any ideas/suggestions? Please let me know if there is any info you need me to provide (PHP setting, etc).

Thank you in advance!

Comments

Sorry, this is fixed now

Hello,

I believe this was fixed a little while ago, but I am very sorry to say that it has no been pushed to our public site yet.  What you need to do is open up this file:

/install/page_end.php

And change the very last line from this:

include '/install_tpl.php';

To this:

include 'install_tpl.php';

ie: remove the slash.  Yes, that's that simple (stupid eh?)

It actually works on some systems, I think if you have Formulize installed in the document root folder, then it doesn't make a difference maybe.  But anyway, without the slash it should work everywhere.

It is possible that your installation completed OK and you just got a blank page at the end.  If you point your web browser as the root folder (ie: one level up from /install) then maybe you can login to your site anyway?  But it would be safest to make this one change and then delete the installation and rerun the installer.

*Another bug...*

There is another bug in the core that we resolved at the same time as this one, and you can read details here: http://www.freeformsolutions.ca/en/forum/using-formulize-no-internet-access

If you are going to be creating users, you will need that fix.  If you're just using this yourself as the admin user, then it doesn't matter. 

Again, my apologies.  Thank you very much for your interest in Formulize.  Might I ask where you learned about it?

Take it easy, good luck with your site,

--Julian

 

 

 

Still blank

Hi Julian,

I started a new install from scratch and made the modification to /install/page_end.php before beginning. Unfortunately, I still get a blank page. However, I now get the following errors in the PHP log:

  • PHP Warning:  include(./language/english/finish.php): failed to open stream: No such file or directory in [...]/formulize/install/page_end.php on line 35
  • PHP Warning:  include(): Failed opening './language/english/finish.php' for inclusion (include_path='.') in [...]/formulize/install/page_end.php on line 35
  • PHP Warning:  include_once(./class/dbmanager.php): failed to open stream: No such file or directory in [...]/formulize/install/page_end.php on line 47
  • PHP Warning:  include_once(): Failed opening './class/dbmanager.php' for inclusion (include_path='.') in [...]/formulize/install/page_end.php on line 47
  • PHP Fatal error:  Class 'db_manager' not found in [...]/formulize/install/page_end.php on line 48

Also, once I click the last 'Next' button ('Show my site' I think the tooltip is), the install folder gets deleted. This did not happen before so I assume I am one step closer... but, it still does not work. It appears the install folder is being deleted before the files get included. I've tinkered with the code in page_end.php but so far have not had much luck. It is likely (well, definitely) due to the fact that I am far from a wiz at PHP coding.

To answer your question about where I heard about Formulize; it was basically an internet search. I eventually ended up at Freeform Solutions and was intrigued by what Formulize is designed to do, so I decided to try it.

Thanks for your help!

Wow, sorry for this trouble

Hello,

The problem is with how the paths are defined in the "include" lines in that file.  I wonder if you remove the dot from the two include lines that have "./ at thestart of the path, that will work.

ie: 

include "./language/$wizard->language/finish.php";

becomes:

include "/language/$wizard->language/finish.php";

and:

include_once './class/dbmanager.php';

becomes:

include_once '/class/dbmanager.php';

But I'm not positive.  Clearly they work as is on some installs, which points to an obscure PHP config issue, or maybe even an OS level issue about how paths are read or an Apache configuration related to how the base folder is determined.  The dot should mean, "start in my current folder, ie: where this script is, and then add this other info."  Clearly the "current folder" definition is different on your system than some others. 

If you run the install and get to this point again, and it fails, you can edit that file and reload the page and it should be OK.  You can reload it as many times as it takes till you get a path that works.  The absolute fall back would be to use an explicit path, ie: var/mydomain.com/public_html/formulize/class/dbmanager.php  I don't know what the actual root of your path will be, that depends on the server, but if you use the full path, then it's guarnateed to work.

Steve, if you're reading this...have you guys changed the "./language includes in the installer in recent version because you found this didn't work?  I just copied that structure when making the "./class/dbmanager include statement.

--Julian

Try __DIR__

Hello,

I realized that one thing you could try that should work in all situations is this:

include __DIR__."/language/$wizard->language/finish.php";

Using __DIR__ will give you the full path to the directory where the current file resides, and so that should be foolproof.  Note it's two underscores before and after the DIR part. 

There are other places in the installer where the ./ notation is used, and you did not run into a problem there, so I am a bit stumped why it's an issue here.  But anyway, __DIR__ should be pretty rock solid.  Let us know how it goes.

--Julian

Using relative paths can lead to problems

We haven't made any adjustments (yet) to the relative paths in the installer - but we are going to be working on the entire installer soon..

@Frio - from the earlier posts, it appears you are installing in a subdirectory on your web host - is that correct? In that case, removing the dot will cause problems, because the slash will take you back to the document root of your site.

When you say you are clicking on the final 'Next' button, that should be after the selected modules and the Protector module are installed - or at least the Protector module, if you deselected the modules included. Is this correct? There are earlier steps where database tables and date insertion occurs and I want to be sure we're at the same place.

From a purely technical aspect, PHP interprets ./ as the current working directory, which may be the same as the location of the file, but not necessarily. I've been caught by that before. If a script uses that notation and then is included by another file in a different location, the reference will be the directory of the including file, not that of the included file. Likewise, ../ refers to the parent of the current working directory.

Using __DIR__ . "/" in place of "./" is referencing the path in an absolute fashion instead of a relative manner. Less ambiguity and no chance of the file being included by another script and changing the current working directory for this file.

Same result using __DIR__

Hello,

After adding __DIR__. to the two includes in /install/page_end.php and doing a complete clean install, I still get the same blank page result. Also, the same 5 errors are generated (see previous post).

I am installing all three modules (Profile, Content, and Formlize). All tables get created and they get populated with data. No errors there. The installation is in a sub folder of the root.

When I get a chance, I may setup another virtual server and install Forumulize at the root to see of that makes any difference. Do you think this could make a difference?

Any other suggestions/ideas?

 

 

Installer removes itself before Formulize is through with it

At the final step of the install, the install files are deleted, if the system permissions allow. It appears your install isn't properly detecting the completion of the installation and is trying to load files that have already been deleted. If everything else has completed successfully, the the only thing left incomplete is cleanup and the Formulize custom system configuration.

Would you provide the URI of the blank page and the page before?

This was suggested in an earlier post.

I mentioned in an earlier post that it appeared the install folder was being removed before the files were included. I tried tinkering with the code but had no luck.

Since this is hosted on a server at home, I'd rather not post the url. If you send me an email, I will gladly reply with the full url. I could even create a test site and DB for you to run through the setup if you think that would help.

Make sure you're not leaving the dot in there

Hello,

The only thing I can think of is to make sure you're not just adding __DIR__ and that you're also removing the dot, ie:

__DIR__."/language/$wizard->language/finish.php";

NOT:

__DIR__."./language/$wizard->language/finish.php";

The dot is used when you're trying to create a relative path.  Using __DIR__ should give you an absolute path to the current folder, and then you can just add other folders after that, no need for the dot.

Though I would have thought the two are actually equivalent.

If you check the notices it will tell you what path it's trying to include, and when you're using __DIR__ it should list the entire path, so you know exactly where it's looking (it should not be exactly the same as the first time you saw them, when they would have begun with ./).  That should tell you where it's going wrong, it will tell you what path it thinks the files are in.  That should be a clue about what's going wrong here.

--Julian

Dots were removed

HI Julian,

I did remove the dots when I added __DIR__ . Also, I setup a virtual server yesterday so that formulize was at the root but I still got the same result.

Site information

Frio -

You can contact me at skenow (at) impresscms (dot) org - would you be able to provde a URI to start the install, FTP access and DB access?

Steve

It looks to me like the problem is that page_end.php won't load

Hello,

I would be happy to take a look too, if you would like to forward your info to formulize at freeformsolutions dot ca too.  It can coordinate with Steve, who knows the install process best, and I know the Formulize hacks that have been made in it.

I am confused why/when the deleting of the files would be relevant...it seems that the problem is when page_end.php is trying to load, and that is inside the install folder, so presumably the install folder wouldn't be deleted yet?  Anyway, it would be great to figure this out and fix it in case it's affecting others.

--Julian