"Debug Information", "version" => "0.1", "author" => "Starbeamrainbowlabs", "description" => "Adds a debug action for administrator use only that collects a load of useful information to make reporting bugs easier.", "id" => "page-debug-info", "code" => function() { global $settings, $env; /** * @api {get} ?action=debug Get a debug dump * @apiName Debug * @apiGroup Utility * @apiPermission Moderator * * @apiUse UserNotModeratorError */ /* * ██████ ███████ ██████ ██ ██ ██████ * ██ ██ ██ ██ ██ ██ ██ ██ * ██ ██ █████ ██████ ██ ██ ██ ███ * ██ ██ ██ ██ ██ ██ ██ ██ ██ * ██████ ███████ ██████ ██████ ██████ */ add_action("debug", function() { global $settings, $env, $paths, $version; header("content-type: text/plain"); if(!$env->is_admin) { exit("You must be logged in as an moderator in order to generate debugging information."); } $title = "$settings->sitename debug report"; echo("$title\n"); echo(str_repeat("=", strlen($title)) . "\n"); echo("Powered by Pepperminty Wiki version $version.\n"); echo("This report may contain personal information.\n\n"); echo("Environment: "); echo(var_export($env, true)); echo("\nPaths: "); var_dump(var_export($paths, true)); echo("\nServer information:\n"); echo("uname -a: " . php_uname() . "\n"); echo("Path: " . getenv("PATH") . "\n"); echo("Temporary directory: " . sys_get_temp_dir() . "\n"); echo("Server: " . $_SERVER["SERVER_SOFTWARE"] . "\n"); echo("Web root: " . $_SERVER["DOCUMENT_ROOT"] . "\n"); echo("Web server user: " . exec("whoami") . "\n"); echo("PHP version: " . phpversion() . "\n"); echo("index.php location: " . __FILE__ . "\n"); echo("index.php file permissions: " . substr(sprintf('%o', fileperms("./index.php")), -4) . "\n"); echo("Current folder permissions: " . substr(sprintf('%o', fileperms(".")), -4) . "\n"); echo("Storage directory permissions: " . substr(sprintf('%o', fileperms($env->storage_prefix)), -4) . "\n"); echo("Loaded extensions: " . implode(", ", get_loaded_extensions()) . "\n"); echo("Settings:\n-----\n"); $settings_export = explode("\n", var_export($settings, true)); foreach ($settings_export as &$row) { if(preg_match("/(sitesecret|email)/i", $row)) $row = "********* secret *********"; } echo(implode("\n", $settings_export)); echo("\n-----\n"); exit(); }); if($env->is_admin) { add_help_section("810-debug-information", "Gathering debug information", "
As a moderator, $settings->sitename gives you the ability to generate a report on $settings->sitename's installation of Pepperminty Wiki for debugging purposes.
To generate such a report, visit the debug
action or click here.