The Infamous Blank Page and Other Weird Installation Errors
Hello Friends,
I’ve been busy for some time
First of all, this article is regarding the infamous blank page problem, blank module pages, file stream errors, and other weird things, a problem that
a lot of people come across, whether during installation, or after installation with certain modules. I’m assuming that we’re working on Windows XP SP2 with IIS, PHP 5.0.2 and MySQL 4.0.21. The blank page problem is an infamous one, one that many people are encountering, considering the many forum posts with this as heading.
Most of the blank page problems, and problems regarding blank module pages, first encounter with the administration menu, whereas it loops, are related to security- and permission settings. I’ll try to solve this problems in a “quick and easy local installation” point of view.
First, suppose you’ve set up your PHP (whether 4.x or 5.x branch), MySQL 4.x, Apache or IIS installations correctly. You’re ABSOLUTELY sure everything is correct, that’s one condition!
Each and everyone of us can easily check the correct directives to use in your php.ini file. However, I will include the most important ones to use for the afore mentioned configuration of mine:
register_globals = on
display_errors = on
doc_root = c:\inetpub\wwwroot
extension_dir = c:/php/extensions
cgi.force_redirect = 0
fastcgi.impersonate = 1
;extension=php_mysql.dll
You can simply test a working PHP installation with a little script
phpinfo();
?>
Put this little piece of code in a simple text file, then save it as test.php. Afterwards put this file in your webserver root. That is:
For Windows inetpub\wwwroot\
For Apache can differ, but mostly something like \Apache\htdocs\
Now you have to open your browser, and type:
http://localhost/test.php, and press enter.
If you’re NOT seeing a screen with a bunch of info regarding PHP, then something is wrong, otherwise you’re all set up and already sure PHP is working.
After this it’s time for MySQL. To make it easy for you to start, use MySQL version 4.0.21. This one is very stable, and is the most easy to configure everything and get it working. So download it from
http://www.mysql.com and install it. For some reason version 4.1.7 was very unstable for me…
Important: I’m not assuming anyone want a “secure” localhost setup, I’m assuming here to get up quick-and-running. So, after installation go to your mysql\bin folder and doubleclick on winmysqladmin.exe. This one opens up. You’re normally presented to enter a username and password. Enter a username and password as desired, and remember them.
Download phpMyAdmin from
http://www.phpmyadmin.net/, extract the binary, rename the folder if needed to phpmyadmin. Copy this folder to your webserver root . For IIS should become inetpub\wwwroot\phpmyadmin. Be carefull with this one, you only need the main folder where the following folders are in: css, lang, libraries, scripts, themes, and a bunch of files.
Open up your browser, typ in
http://localhost/phpmyadmin/index.phpIf your phpMyAdmin page opens up, you’re again ready and set with your MySQL installation and sure it is working.
Now were going one step further with the most important one of all, Xoops. First download your XOOPS binary (in my case this was version 2.0.9 Beta). Extract this binary to a folder of choice. Inside this folder are again 2 folders: docs (documentation), and XOOPS 2.0.9. Rename the folder XOOPS 2.0.9 to XOOPS and copy it to the webserver root. The path of this folder becomes:
c:\inetpub\wwwroot\xoops
This is a critical point. At this point one should be ready-and-set for installation of xoops. However, in most cases this will not work because of security settings, unneeded services that are enabled, and wrong permissions being set. An overview:
First of all we’re going to remove an unnecessary service, one that blocks us in what we want to achieve:
1. Double-click on the My Computer icon on your desktop
2. Select Tools Folder Options
3. Select the View tab
4. Deselect(!) the “Use simple file sharing (Recommended)” option and click ok to dismiss the dialog box.
So, no we’ve managed to remove a unnecessary service, and enabled us to set permissions on individual files and folders.
Next we’re going to check if the iusr_account exists in your IIS configuration, and is enabled on the Website. (Normally this should be the case, if it is not follow these steps):
1. Open up Control Panel, click on Administrative Tools -> Internet Information Services
2. Expand the node
(local computer)
3. Expand “Web Sites”
4. Select (right-click) on the Default Web Site node and select properties
5. Select the Directory Security tab
6. Click in “Anonymous access and authentication control” on Edit
7. Here “Anonymous access” should be turned on
8. The mentioned user name should be of the IUSR-type. The IUSR-account is the Internet Guest account. If it is not, click on Browse, click on Advanced, and click on Find Now.
9. Normally you should be presented a list of users on your machine. One of them should be listed as IUSR_xxxxxx where xxxxxx is your computername (you can see this by rightclicking the My Computer icon on your desktop, selecting Properties and click on the Computer Name tab). Select this user and click on OK.
Our guest account is set up and running, which is needed to run and access our XOOPS website locally.
One of the most important ones to enable XOOPS to run correctly is to set the appropriate permissions on the files and folders in your XOOPS folder in your webserver root. So use Explorer to browse to your inetpub\wwwroot\xoops folder. (Remember, this is not a safe setup!!)
1. Right-click your XOOPS folder and select properties
2. Select the Security tab
3. Select the Advanced button
4. In the Permission entries listbox, look up the “Internet Guest Account”, select it, and click on Edit
5. Select Full Control for the Internet Guest Account and click OK
6. In the “Advanced Security Settings for xxxx” select the “Replace permission entries on all child objects with entries shown here that apply to child objects” option box and click on OK.
7. Dismiss the dialog box.
This latest step is used to set full control to the Internet Guest Account user for access to your XOOPS folder. However, I assume this is not a secure configuration and should not be used for production use. If you want to experiment, or are developing at home, this setup is quick-and-easy, and allows you to get up and running fast, without spending to much time on configuring, measuring, searching out problems.
So, these were my findings, and problems I encountered with Xoops. And luckily, I’ve managed to solve them using the steps above. I’ll undoubted have made mistakes, or have been misinformed myself regarding some things. So I welcome any comments, corrections, alternatives to this article. Eventually the goal is to get rid of a lot of these very “strange” problems.
In the future I’m planning detailed, easy-to-follow step-by-step installation instructions for php, xoops, mysql, etc… mainly because of the fact there’s a lack of it, or just because of the overflow of so-called installation-manuals…
Have fun and good luck,
And oh, I almost forgot: “Heil to the XOOPS Development Team”
Memento