diff options
Diffstat (limited to 'setup.php')
-rw-r--r-- | setup.php | 204 |
1 files changed, 204 insertions, 0 deletions
diff --git a/setup.php b/setup.php new file mode 100644 index 0000000..8cba5bd --- /dev/null +++ b/setup.php @@ -0,0 +1,204 @@ +<?php + +/* Check some files/directories before continue.... */ + +$dirs = array( + "/ratatoeskr" => False, + "/ratatoeskr/templates" => False, + "/ratatoeskr/templates/transc" => True, + "/ratatoeskr/templates/src" => False, + "/ratatoeskr/templates/src/usertemplates" => True, + "/ratatoeskr/templates/src/plugintemplates" => True, + "/ratatoeskr/templates/src/systemtemplates" => False, + "/ratatoeskr/translations" => False, + "/ratatoeskr/licenses" => False, + "/ratatoeskr/libs" => False, + "/ratatoeskr/sys" => False, + "/ratatoeskr/setup" => False, + "/ratatoeskr/cms_style" => False, + "/ratatoeskr/cms_style/images" => False, + "/ratatoeskr/plugin_extradata" => True, + "/ratatoeskr/plugin_extradata/public" => True, + "/ratatoeskr/plugin_extradata/private" => True, + "/images" => True, + "/images/previews" => True +); +$files = array( + "/.htaccess", + "/ratatoeskr/templates/src/systemtemplates/users.html", + "/ratatoeskr/templates/src/systemtemplates/pluginlist.html", + "/ratatoeskr/templates/src/systemtemplates/backend_login.html", + "/ratatoeskr/templates/src/systemtemplates/confirminstall.html", + "/ratatoeskr/templates/src/systemtemplates/pluginhelp.html", + "/ratatoeskr/templates/src/systemtemplates/tag_addtranslation.html", + "/ratatoeskr/templates/src/systemtemplates/settings.html", + "/ratatoeskr/templates/src/systemtemplates/tag_deleted.html", + "/ratatoeskr/templates/src/systemtemplates/areyousure.html", + "/ratatoeskr/templates/src/systemtemplates/articles.html", + "/ratatoeskr/templates/src/systemtemplates/image_list.html", + "/ratatoeskr/templates/src/systemtemplates/repos.html", + "/ratatoeskr/templates/src/systemtemplates/templates.html", + "/ratatoeskr/templates/src/systemtemplates/error.html", + "/ratatoeskr/templates/src/systemtemplates/instant_select.tpl", + "/ratatoeskr/templates/src/systemtemplates/plugininstall.html", + "/ratatoeskr/templates/src/systemtemplates/comments_list.html", + "/ratatoeskr/templates/src/systemtemplates/tags_overview.html", + "/ratatoeskr/templates/src/systemtemplates/sections.html", + "/ratatoeskr/templates/src/systemtemplates/image_embed.html", + "/ratatoeskr/templates/src/systemtemplates/master.html", + "/ratatoeskr/templates/src/systemtemplates/content_write.html", + "/ratatoeskr/templates/src/systemtemplates/user.html", + "/ratatoeskr/templates/src/systemtemplates/single_comment.html", + "/ratatoeskr/templates/src/systemtemplates/setup_dbsetup.html", + "/ratatoeskr/templates/src/systemtemplates/setup_done.html", + "/ratatoeskr/templates/src/systemtemplates/setup_master.html", + "/ratatoeskr/templates/src/systemtemplates/setup_select_lang.html", + "/ratatoeskr/templates/src/usertemplates/master.html", + "/ratatoeskr/templates/src/usertemplates/standard.html", + "/ratatoeskr/templates/src/usertemplates/some_useful_tags", + "/ratatoeskr/templates/.htaccess", + "/ratatoeskr/translations/de.php", + "/ratatoeskr/translations/en.php", + "/ratatoeskr/backend.php", + "/ratatoeskr/libs/markdown.php", + "/ratatoeskr/libs/stupid_template_engine.php", + "/ratatoeskr/libs/kses.php", + "/ratatoeskr/.htaccess", + "/ratatoeskr/setup/create_tables.php", + "/ratatoeskr/setup/setup.php", + "/ratatoeskr/sys/plugin_api.php", + "/ratatoeskr/sys/translation.php", + "/ratatoeskr/sys/urlprocess.php", + "/ratatoeskr/sys/pluginpackage.php", + "/ratatoeskr/sys/db.php", + "/ratatoeskr/sys/utils.php", + "/ratatoeskr/sys/pwhash.php", + "/ratatoeskr/sys/default_settings.php", + "/ratatoeskr/sys/init_ste.php", + "/ratatoeskr/sys/models.php", + "/ratatoeskr/sys/textprocessors.php", + "/ratatoeskr/languages.php", + "/ratatoeskr/frontend.php", + "/ratatoeskr/cms_style/layout.css", + "/ratatoeskr/cms_style/login.css", + "/ratatoeskr/cms_style/images/add.png", + "/ratatoeskr/cms_style/images/delete.png", + "/ratatoeskr/cms_style/images/sortarrow_up_outline.png", + "/ratatoeskr/cms_style/images/black_transparent.png", + "/ratatoeskr/cms_style/images/sortarrow_down_outline.png", + "/ratatoeskr/cms_style/images/success.png", + "/ratatoeskr/cms_style/images/dead_emoticon.png", + "/ratatoeskr/cms_style/images/sortarrow_up_filled.png", + "/ratatoeskr/cms_style/images/sortarrow_down_filled.png", + "/ratatoeskr/cms_style/images/notice.png", + "/ratatoeskr/cms_style/images/login_bg.jpg", + "/ratatoeskr/cms_style/images/error.png", + "/ratatoeskr/main.php", + "/ratatoeskr/plugin_extradata/private/.htaccess", + "/session_doctor.php", + "/index.php", + "/setup.php", + "/css.php" +); + +$missing_files = array(); +$missing_dirs = array(); +$missing_perms = array(); + +foreach($dirs as $dir => $needs_w_perms) +{ + if(!is_dir(dirname(__FILE__) . $dir)) + $missing_dirs[] = $dir; + elseif($needs_w_perms and (!@is_writable(dirname(__FILE__) . $dir))) + $missing_perms[] = $dir; +} + +foreach($files as $file) +{ + if(!is_file(dirname(__FILE__) . $file)) + $missing_files[] = $file; +} + +/* Also check for the correct PHP version, some PHP extensions and if we are running on apache. */ +$missing_requirements = array(); + +if(!defined('PHP_VERSION_ID')) +{ + $version = explode('.', PHP_VERSION); + define('PHP_VERSION_ID', ($version[0] * 10000 + $version[1] * 100 + $version[2])); +} + +if(PHP_VERSION_ID < 50300) + $missing_requirements[] = "You need PHP version 5.3.0 or later."; + +$available_extensions = get_loaded_extensions(); + +if(strpos($_SERVER["SERVER_SOFTWARE"], "Apache") === False) + $missing_requirements[] = "You need an Apache WWW server for Ratatöskr."; + +if(!in_array("gd", $available_extensions)) + $missing_requirements[] = "You need the gd PHP extension."; +if(!in_array("session", $available_extensions)) + $missing_requirements[] = "You need the session PHP extension."; +if(!in_array("mysql", $available_extensions)) + $missing_requirements[] = "You need the mysql PHP extension."; + +if(!in_array("hash", $available_extensions)) + $missing_requirements[] = "You need the hash PHP extension."; +elseif(!in_array("sha1", hash_algos())) + $missing_requirements[] = "The SHA1 hash algorythm must be available."; + +if((!empty($missing_dirs)) or (!empty($missing_files)) or (!empty($missing_perms)) or (!empty($missing_requirements))): +?> +<html> +<head> + <title>Ratatöskr installer</title> +</head> +<body> + <h1>Ratatöskr can not be installed, because...</h1> + <?php if(!empty($missing_requirements)): ?> + + <h2>...these requirements are not met:</h2> + <ul> + <?php foreach($missing_requirements as $req): ?> + <li><?php echo htmlspecialchars($req); ?></li> + <?php endforeach; ?> + </ul> + + <?php endif; if(!empty($missing_dirs)): ?> + + <h2>...these directories are missing:</h2> + <ul> + <?php foreach($missing_dirs as $dir): ?> + <li><?php echo htmlspecialchars($dir); ?></li> + <?php endforeach; ?> + </ul> + + <?php endif; if(!empty($missing_files)): ?> + + <h2>...these files are missing:</h2> + <ul> + <?php foreach($missing_files as $file): ?> + <li><?php echo htmlspecialchars($file); ?></li> + <?php endforeach; ?> + </ul> + + <?php endif; if(!empty($missing_perms)): ?> + + <h2>...we do not have writing permissions to these directories:</h2> + <ul> + <?php foreach($missing_perms as $dir): ?> + <li><?php echo htmlspecialchars($dir); ?></li> + <?php endforeach; ?> + </ul> + + <?php endif; ?> +</body> +</html> +<?php +die(); +endif; + +require_once(dirname(__FILE__) . "/ratatoeskr/setup/setup.php"); + +?> |