Page 1 of 1
reqcheck.php
Posted: Sat Apr 06, 2013 1:12 pm
by cmb
Hello Community,
you may have already noticed, that I've written a small script, which is meant to check, if a server fulfills the requirements to run CMSimple_XH (so before uploading the whole shebang, the user has to upload a single script only):
reqcheck.php. Of course this is only a draft; more checks could be implemented and it should be internationalized (and a bit styling won't hurt either).
What do think about it? Do you consider it useful? If so, we might put it on SourceForge.
Christoph
Re: reqcheck.php
Posted: Sat Apr 06, 2013 1:23 pm
by snafu
cmb wrote:What do think about it? Do you consider it useful? If so, we might put it on SourceForge.
good, yes, yes
Re: reqcheck.php
Posted: Sat Apr 06, 2013 2:20 pm
by svasti
I have seen something like that from another CMSes. I tried once one and got as answers that my server wasn't capable enough. We could put it also on cmsimple-xh.org ?
svasti
Re: reqcheck.php
Posted: Sat Apr 06, 2013 3:28 pm
by oldnema
Great idea - to test hosting before installing CMSimple_XH!
Josef
Re: reqcheck.php
Posted: Sat Oct 28, 2017 12:28 pm
by cmb
I'm coming back to this topic after a long time, because recently I got a support request which could only be solved by some (educated) guess: it turned out that the mbstring extension was missing on the server, so CMSimple_XH 1.7.1 produced a
white screen of death without any help from the debug mode.
Thus, I overhauled the old reqcheck.php script for CMSimple_XH 1.7.1, and would suggest to add it to the repo and default download of CMSimple_XH, so it can be maintained along with the rest of the core, and users can use it before or after installing CMSimple_XH; ideally before, but at least after such errors occur.
The script as it currently is:
Code: Select all
<?php
/**
* Copyright 2013-2017 Christoph M. Becker
*
* This file is part of ReqCheck_XH.
*
* ReqCheck_XH is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* ReqCheck_XH is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with ReqCheck_XH. If not, see <http://www.gnu.org/licenses/>.
*/
if (isset($_GET['phpinfo'])) {
echo phpinfo();
exit;
}
$version = 'CMSimple_XH 1.7.1';
$title = "$version Requirements Check";
$checks = array();
$checks['the Webserver is supported'] = preg_match('/apache|nginx|iis/i', $_SERVER['SERVER_SOFTWARE']) ? 'okay' : 'warn';
$checks['the PHP Version is at least 5.3.7'] = version_compare(PHP_VERSION, '5.3.7', '>=') ? 'okay' : 'fail';
foreach (array('json', 'mbstring', 'session') as $ext) {
$checks['the PHP extension "' . $ext . '" is installed'] = extension_loaded($ext) ? 'okay' : 'fail';
}
$checks['magic_quotes_runtime is off'] = !get_magic_quotes_runtime() ? 'okay' : 'warn';
$checks['safe_mode is off'] = !ini_get('safe_mode') ? 'okay' : 'warn';
$checks['session.use_trans_sid is off'] = !ini_get('session.use_trans_sid') ? 'okay' : 'warn';
$checks['session.use_only_cookies is off'] = ini_get('session.use_only_cookies') ? 'okay' : 'warn';
$checks['session.cookie_lifetime is zero'] = ini_get('session.cookie_lifetime') == 0 ? 'okay' : 'warn';
$checks['the function fsockopen is available'] = function_exists('fsockopen') ? 'okay' : 'warn';
$fail = $warn = false;
foreach ($checks as $state) {
switch ($state) {
case 'fail':
$fail = true;
break;
case 'warn':
$warn = true;
break;
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title><?php echo $title?></title>
<style type="text/css">
.okay, .warn, .fail {padding: 0.7em; padding-left: 36px; border-radius: 7px}
.okay {background: #e1f8cb url('data:image/gif;base64,R0lGODlhEAAQAGYAACH5BAEAAAAALAAAAAAQABAApgEAACm1IRykGkDFOC69JJDmfiu3IgudDWPeSi+/JDnQJjjQJB60HE7KRSWtIBu1GkHHMBykGTXBK0HULVzaRjXOIjXNIzTPIUjVMSe8Ik3JRSGpHBagFV/fSiK6GhuhGAuhDMD3r2/fWx6lGq3unVPaNWDOU9H5v0rRMBCjEV3dOcf3s2TUVE3UM1rcRGfhT4Lbc0zPOyGtIBSaFQynDYHkbbj1pi++JWjZV4HjbErUMV/VUDbPIjLALWfhUSe0IHjlXxiaFp7rgGvTW43neTPGIsv4uB+3Fz3OLcX4szbOJS69JW3gVg2nDiq2IkrXMBSYFRSbFTbLJBO0EWnhQZHocye2HCS0HiauH7Dxmx64Fiu1H3nbaDC+JVbaQQqfDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeCgACCg4SFhoeIiTE4iYRaOwVWjQAeLCQvW41HXEYdRR+JNDAnLlIRUQAyHIUgJiteChszABJCQ1+DTRpJFAsOUIIQVFUNBwApPSEiPF1Bgw8oKkADUxk2ORcBWIUMLSVMPllEFQQjh1c6Twg1SgkBiT8YExZLTpMGSDfvkwACAomBAAA7') no-repeat 10px; color: #37620d; border: 1px solid #c6d880}
.warn {background: #ffffbb url('data:image/gif;base64,R0lGODlhEAAQAGYAACH5BAEAAAAALAAAAAAQABAApgEAAPKyK/TPQ/TMP/O6L/KuKcJzEtl7TfXQRYGBgtCVSfbVcfPDJeukRSclJvKhI2hoavOvKfO6MPfVRtCYDykoKbFbD++gKtyKHuqZP/GlJqZdCTIwM/vnoPXRQ8aOF/KmJtSRTPCwDPGuKe+PFNhxTfned/TSRfPAUOuGDfe3J/CvCcd2FOyiQe2fJHNzd/WyK/TQQ/bUY/TITPTLPvO+GvrTaemxYPCzEC4tLiopKvXPRTQ0NvO8KSgmKGNjZvrnmPPHduCOHisqK/TJOfTLP/TJSfTURs2ORfrnpNamIvC4GaNcCfG2HPXSTNmKHfbTZ+SaQKxeCjc2OPfjbs+BFO2JD/jnjffgmtGAGPTGNOeWIfXSS+KtWPSjI+vBc8t7F+vAdvfbd/fQauKPHvjTae+GCPbVYvOnJvTOP/bRTvbQUzw7PfTFS/bRWfO5K/O+HfuwKeqYIPC3F/XPP9OEGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAewgACCg4SFhoIlB4eGB19hiouDNzJQXZGCUUkLC2UhkQ0dagkJMzYKiw0may8/RmOnhi1YYm5sUz1tKEiGQUBnDDwcK28qVYUZE2kDNUMVIgQBMBaDKRN0MQNwPg440BER0wAXVAgCNEQUFEsSAQVxBuJXHuUDDBAQTdAFaF4GZidO6CnJoeODPhAPNpA4wmWHgCJaKjiYw26EhgdMAFhxIWcLGSEYntTJAoaFASkAAgEAOw==') no-repeat 10px; color: #756730; border: 1px solid #ffd324}
.fail {background: #fbe5e2 url('data:image/gif;base64,R0lGODlhEAAQAGYAACH5BAEAAAAALAAAAAAQABAApgEAAP///+43LdFGTvFaQO9BMfFgRO4yK7cTF/JiRu9BMslHUN1BTOssMeoXAPI0LfR1YPR1ZO0kJsZJT+sIFeZxb/h0ZvJdQJkJDPFlRskcIOwzGvVmR6ELEfqnlvzi3OwgCbApLvNnTtAeIewxGMUVFfWekfikj/ElKPFhRPafheVGT/FcQPNtWO89LfFTOvJhRu0pKPApKPJiRPFZQONeY+woEccZHvFfRO87HvNoUewkDdsfJO4pKLwVGrxES9pXWPBYUPFnR/mpmv719PJoTPotK+gQHO9EJ+85HuQhJbYTF/U1KesVIPN9bO8yK/N9be0yHedCTOEiJu0yK5wJDe9zcfeJcu83GuwoE/WLaugmKPFONfR0YfFZS/Z1ZvFdTPWGctMfJPJnS+8/K/FZP/VzZ8AYHO9jXtgfI+4kJvFcSeVycfBCJwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeogACCg4SFhoIDA4eGAxVsiouDNV0RQJGCDENQTl8LkQweIgEBYBaehytXOqNrZhOHUiZhLaNkXkE/hlYnEG2jIC5MJYUDHCwEWKM7BQIPIYMDaBcpBEmjNsxPDwiCDVoJBmUvDg4bCgIHRtwNKjPgBEijUcwHMigIFBlF7zmjWfQ91FRpImQMDBw0uHwgQuIclRgSMAA4skXJFB5pxIzQcOOMjyUdAAQCADs=') no-repeat 10px; color: #992213; border: 1px solid #f2a197}
ul {list-style: none}
</style>
</head>
<body>
<h1><?php echo $title?></h1>
<?php if ($fail):?>
<p class="fail"><b>Sorry, there appear to be serious issues! Most likely <?php echo $version?> will not run on this server with the current PHP configuration!</b></p>
<?php elseif ($warn):?>
<p class="warn"><b>Hmm, there appear to be minor issues! <?php echo $version?> may not run smoothly on this server with the current PHP configuration!</b></p>
<?php else:?>
<p class="okay"><b>All is well! <?php echo $version?> is supposed to run smoothly on this server!</b></p>
<?php endif?>
<h2>Details</h2>
<?php foreach ($checks as $check => $state):?>
<div class="<?php echo $state?>">Checking that <?php echo $check?> – <?php echo $state?></div>
<?php endforeach?>
<p><a href="?phpinfo">PHP Info</a></p>
</body>
</html>
Respective issue on Github:
https://github.com/cmsimple-xh/cmsimple-xh/issues/325.
Re: reqcheck.php
Posted: Fri Feb 22, 2019 1:19 pm
by frase
cmb wrote: ↑Sat Oct 28, 2017 12:28 pm
Thus, I overhauled the old reqcheck.php script for CMSimple_XH 1.7.1, and would suggest to add it to the repo and default download of CMSimple_XH, so it can be maintained along with the rest of the core, and users can use it before or after installing CMSimple_XH; ideally before, but at least after such errors occur.
It looks very good to me.
But I wonder how the inexperienced user should start the script before installing XH.
Maybe first upload it as index.php alone - and then overwrite it during the XH installation?
Or maybe you should build an installation routine after all?
It's all just a question of documentation - but how do you make it "very simple"?
Re: reqcheck.php
Posted: Fri Feb 22, 2019 3:18 pm
by frase
Maybe you prefer a file that is aligned to the
XH Style Guide?
Then you could try the following.
reqcheck.zip