more pre-install checks to sort out broken environments

This commit is contained in:
Friendika 2010-11-25 15:33:32 -08:00
parent 0a03a710b3
commit 9fb967ae34
2 changed files with 43 additions and 2 deletions

View File

@ -95,6 +95,9 @@ function install_content(&$a) {
$o .= check_php($phpath); $o .= check_php($phpath);
$o .= check_keys();
require_once('datetime.php'); require_once('datetime.php');
$tpl = load_view_file('view/install_db.tpl'); $tpl = load_view_file('view/install_db.tpl');
@ -115,12 +118,44 @@ function check_php(&$phpath) {
$o = ''; $o = '';
$phpath = trim(shell_exec('which php')); $phpath = trim(shell_exec('which php'));
if(! strlen($phpath)) { if(! strlen($phpath)) {
$o .= t('Could not find a command line version of PHP in the web server PATH.'); $o .= t('Could not find a command line version of PHP in the web server PATH.') . EOL;
$o .= t('This is required. Please adjust the configuration file .htconfig.php accordingly.'); $o .= t('This is required. Please adjust the configuration file .htconfig.php accordingly.') . EOL;
}
if(strlen($phpath)) {
$str = autoname(8);
$cmd = "$phpath testargs.php $str";
$result = trim(shell_exec($cmd));
if($result != $str) {
$o .= t('The command line version of PHP on your system does not have "register_argc_argv" enabled.') . EOL;
$o .= t('This is required for message delivery to work.') . EOL;
}
} }
return $o; return $o;
} }
function check_keys() {
$o = '';
$res = false;
if(function_exists('openssl_pkey_new'))
$res=openssl_pkey_new(array(
'digest_alg' => 'sha1',
'private_key_bits' => 4096,
'encrypt_key' => false ));
// Get private key
if(! $res)
$o .= t('Error: the "openssl_pkey_new" function on this system is not able to generate encryption keys') . EOL;
return $o;
}
function check_funcs() { function check_funcs() {
if((function_exists('apache_get_modules')) && (! in_array('mod_rewrite',apache_get_modules()))) if((function_exists('apache_get_modules')) && (! in_array('mod_rewrite',apache_get_modules())))
notice( t('Error: Apache webserver mod-rewrite module is required but not installed.') . EOL); notice( t('Error: Apache webserver mod-rewrite module is required but not installed.') . EOL);

6
testargs.php Normal file
View File

@ -0,0 +1,6 @@
<?php
if(($argc > 1) && isset($argv[1]))
echo $argv[1];
else
echo '';