MySQL is required because the sitemap uses MySQL-specific syntax to generate a temporary table. Some (very few that we've seen) web hosts consider the ability to create temporary tables a security risk and do not allow this function to their customers. Temporary tables are not visible via tools like phpMyAdmin as they only exist for the duration of the script that uses them, and they are only available to that instance of the script. Multiple users can create unique temporary tables at the same time.
To my knowledge, the only other addon that uses this approach is mSearch (on which that part of nukeSEO is based). So, if you are able to use mSearch, we can rule out that as a possibility. If you're not using mSearch, you can verify this by asking your host or by trying to execute an SQL command like:
Code:CREATE TEMPORARY TABLE nuke_temp (
`id` VARCHAR(20) NOT NULL ,
`relevance` INT NOT NULL ,
`date` INT NOT NULL ,
`title` TEXT NOT NULL ,
`rid` INT NOT NULL ,
`desc` TEXT NOT NULL ,
`author` TEXT NOT NULL ,
`searchmodule` TEXT NOT NULL ,
INDEX ( `relevance` ),
INDEX ( `date` )
)
|
You might also be able to verify this by checking your error log or by turning on the PHP display_errors variable. Probably the easiest way to verify this is to see if the CREATE TEMPORARY TABLES priviledge is available on the Add Users To Your Databases function in your MySQL Account Maintenance function in cPanel.
Remedy (config.php database user doesn't have authority to create tables): grant this access to the database user.
Remedy (host doesn't allow access to this function): request that the host upgrade MySQL and / or allow this access since the security issue associated with temporary tables was resolved long ago.
Regarding the patch update, if you look at the code in modules/Sitemap/index.php, you'll find this:
Code:if(!defined('MODULE_FILE')) { header("Location: ../../index.php"); die(); }
|
This approach is designed to ensure that a visitor doesn't try to access the file directly, and requires that the patch level 2.9 (I believe) or higher is in place. If the variable MODULE_FILE isn't defined (typically in the modules.php file), the script will try to redirect to the index page before stopping. It should result in a page not found error, rather than a blank page, but a blank page is possible.
Remedy: Add the definition statement for MODULE_FILE defined in the 2.9 patch to your modules.php file.
If these things don't explain the blank page, please post or pm a link to your site so I can take a look. I frequently obtain temporary FTP accounts on users' site to help diagnose and resolve problems, and would be happy to
commit to assisting you in this manner. Thus far, the only issue we haven't been able to resolve involved a web host who did not allow temporary tables.