2006-08-19 09:04:45 +02:00
< ? php
2012-05-17 10:23:14 +02:00
function initial_sanity_check ( $link ) {
2010-12-21 07:29:07 +01:00
2012-05-17 10:23:14 +02:00
$errors = array ();
2010-12-21 07:29:07 +01:00
2012-05-17 10:23:14 +02:00
if ( ! file_exists ( " config.php " )) {
array_push ( $errors , " Configuration file not found. Looks like you forgot to copy config.php-dist to config.php and edit it. " );
} else {
2011-01-11 10:20:00 +01:00
2012-05-17 10:23:14 +02:00
require_once " sanity_config.php " ;
2006-08-20 12:27:25 +02:00
2012-05-17 10:23:14 +02:00
if ( function_exists ( 'posix_getuid' ) && posix_getuid () == 0 ) {
array_push ( $errors , " Please don't run this script as root. " );
}
2006-10-01 12:05:20 +02:00
2012-09-15 15:18:43 +02:00
if ( version_compare ( " 5.3.0 " , phpversion ()) == 1 ) {
array_push ( $errors , " PHP version 5.3.0 or newer required. " );
2012-08-23 21:17:32 +02:00
}
2012-05-17 10:23:14 +02:00
if ( CONFIG_VERSION != EXPECTED_CONFIG_VERSION ) {
2012-07-10 13:24:04 +02:00
array_push ( $errors , " Configuration file (config.php) has incorrect version. Update it with new options from config.php-dist and set CONFIG_VERSION to the correct value. " );
2012-05-17 10:23:14 +02:00
}
2006-10-01 12:05:20 +02:00
2012-05-17 10:23:14 +02:00
if ( ! is_writable ( CACHE_DIR . " /images " )) {
array_push ( $errors , " Image cache is not writable (chmod -R 777 " . CACHE_DIR . " /images) " );
}
2006-10-01 12:05:20 +02:00
2012-05-17 10:23:14 +02:00
if ( ! is_writable ( CACHE_DIR . " /export " )) {
array_push ( $errors , " Data export cache is not writable (chmod -R 777 " . CACHE_DIR . " /export) " );
2011-12-13 16:20:26 +01:00
}
2006-10-01 12:05:20 +02:00
2012-05-17 10:23:14 +02:00
if ( GENERATED_CONFIG_CHECK != EXPECTED_CONFIG_VERSION ) {
array_push ( $errors ,
" Configuration option checker sanity_config.php is outdated, please recreate it using ./utils/regen_config_checks.sh " );
}
2006-10-01 12:05:20 +02:00
2012-05-17 10:23:14 +02:00
foreach ( $requred_defines as $d ) {
if ( ! defined ( $d )) {
array_push ( $errors ,
" Required configuration file parameter $d is not defined in config.php. You might need to copy it from config.php-dist. " );
}
}
if ( SESSION_EXPIRE_TIME < 60 ) {
array_push ( $errors , " SESSION_EXPIRE_TIME set in config.php is too low, please set it to an integer value >= 60 " );
}
2006-12-08 06:36:10 +01:00
2012-05-17 10:23:14 +02:00
if ( SESSION_EXPIRE_TIME < SESSION_COOKIE_LIFETIME ) {
array_push ( $errors , " SESSION_EXPIRE_TIME set in config.php should be >= to SESSION_COOKIE_LIFETIME " );
}
2010-06-10 12:29:55 +02:00
2012-05-17 10:23:14 +02:00
if ( SINGLE_USER_MODE ) {
$link = db_connect ( DB_HOST , DB_USER , DB_PASS , DB_NAME );
2010-06-10 12:29:55 +02:00
2012-05-17 10:23:14 +02:00
if ( $link ) {
$result = db_query ( $link , " SELECT id FROM ttrss_users WHERE id = 1 " );
if ( db_num_rows ( $result ) != 1 ) {
array_push ( $errors , " SINGLE_USER_MODE is enabled in config.php but default admin account is not found. " );
}
2011-12-13 16:20:26 +01:00
}
2010-06-10 12:29:55 +02:00
}
2007-09-20 05:00:19 +02:00
2012-05-17 10:23:14 +02:00
if ( SELF_URL_PATH == " http://yourserver/tt-rss/ " ) {
if ( $_SERVER [ 'HTTP_REFERER' ]) {
array_push ( $errors ,
" Please set SELF_URL_PATH to the correct value for your server (possible value: <b> " . $_SERVER [ 'HTTP_REFERER' ] . " </b>) " );
} else {
array_push ( $errors , " Please set SELF_URL_PATH to the correct value for your server. " );
}
2011-12-13 16:20:26 +01:00
}
2007-09-25 06:06:21 +02:00
2012-05-17 10:23:14 +02:00
if ( ! is_writable ( ICONS_DIR )) {
array_push ( $errors , " ICONS_DIR defined in config.php is not writable (chmod -R 777 " . ICONS_DIR . " ). \n " );
}
2007-09-25 06:06:21 +02:00
2012-05-17 10:23:14 +02:00
if ( ! is_writable ( LOCK_DIRECTORY )) {
array_push ( $errors , " LOCK_DIRECTORY defined in config.php is not writable (chmod -R 777 " . LOCK_DIRECTORY . " ). \n " );
}
2011-12-14 06:38:56 +01:00
2012-05-17 10:23:14 +02:00
if ( ini_get ( " open_basedir " )) {
array_push ( $errors , " PHP configuration option open_basedir is not supported. Please disable this in PHP settings file (php.ini). " );
}
2010-06-30 10:57:11 +02:00
2012-05-17 10:23:14 +02:00
if ( ! function_exists ( " curl_init " ) && ! ini_get ( " allow_url_fopen " )) {
array_push ( $errors , " PHP configuration option allow_url_fopen is disabled, and CURL functions are not present. Either enable allow_url_fopen or install PHP extension for CURL. " );
}
2010-06-30 10:57:11 +02:00
2012-05-17 10:23:14 +02:00
if ( ! function_exists ( " json_encode " )) {
array_push ( $errors , " PHP support for JSON is required, but was not found. " );
}
2011-11-06 19:07:52 +01:00
2012-05-17 10:23:14 +02:00
if ( DB_TYPE == " mysql " && ! function_exists ( " mysql_connect " )) {
array_push ( $errors , " PHP support for MySQL is required for configured DB_TYPE in config.php. " );
}
2010-11-01 10:18:06 +01:00
2012-05-17 10:23:14 +02:00
if ( DB_TYPE == " pgsql " && ! function_exists ( " pg_connect " )) {
array_push ( $errors , " PHP support for PostgreSQL is required for configured DB_TYPE in config.php " );
}
2010-12-27 13:09:30 +01:00
2012-05-17 10:23:14 +02:00
if ( ! function_exists ( " mb_strlen " )) {
array_push ( $errors , " PHP support for mbstring functions is required but was not found. " );
}
2012-03-19 18:23:59 +01:00
2012-05-17 10:23:14 +02:00
if ( ! function_exists ( " hash " )) {
array_push ( $errors , " PHP support for hash() function is required but was not found. " );
}
2010-12-27 13:09:30 +01:00
2012-05-17 10:23:14 +02:00
if ( ! function_exists ( " ctype_lower " )) {
array_push ( $errors , " PHP support for ctype functions are required by HTMLPurifier. " );
}
2010-12-27 13:09:30 +01:00
2012-05-17 10:23:14 +02:00
if ( ini_get ( " safe_mode " )) {
array_push ( $errors , " PHP safe mode setting is not supported. " );
}
2010-12-27 13:09:30 +01:00
2012-05-17 10:23:14 +02:00
if (( PUBSUBHUBBUB_HUB || PUBSUBHUBBUB_ENABLED ) && ! function_exists ( " curl_init " )) {
array_push ( $errors , " PHP support for CURL is required for PubSubHubbub. " );
}
2010-12-27 13:09:30 +01:00
2012-05-17 10:23:14 +02:00
if ( ! class_exists ( " DOMDocument " )) {
array_push ( $errors , " PHP support for DOMDocument is required, but was not found. " );
}
2011-12-13 16:20:26 +01:00
}
2011-10-18 08:44:23 +02:00
2012-05-17 10:23:14 +02:00
if ( count ( $errors ) > 0 && $_SERVER [ 'REQUEST_URI' ]) { ?>
< html >
< head >
< title > Startup failed </ title >
< meta http - equiv = " Content-Type " content = " text/html; charset=utf-8 " >
< link rel = " stylesheet " type = " text/css " href = " utility.css " >
</ head >
< body >
< div class = " floatingLogo " >< img src = " images/logo_wide.png " ></ div >
2010-12-27 13:09:30 +01:00
2012-05-17 10:23:14 +02:00
< h1 > Startup failed </ h1 >
2011-04-01 07:42:15 +02:00
2012-05-17 10:23:14 +02:00
< p > Tiny Tiny RSS was unable to start properly . This usually means a misconfiguration or an incomplete upgrade . Please fix
errors indicated by the following messages :</ p >
2011-04-05 14:25:07 +02:00
2012-05-17 10:23:14 +02:00
< ? php foreach ( $errors as $error ) { echo format_error ( $error ); } ?>
2011-08-16 06:56:52 +02:00
2012-05-17 10:23:14 +02:00
< p > You might want to check tt - rss < a href = " http://tt-rss.org/wiki " > wiki </ a > or the
< a href = " http://tt-rss.org/forum " > forums </ a > for more information . Please search the forums before creating new topic
for your question .</ p >
2011-12-13 16:20:26 +01:00
</ body >
</ html >
2011-04-12 17:29:45 +02:00
2012-05-17 10:23:14 +02:00
< ? php
die ;
} else if ( count ( $errors ) > 0 ) {
echo " Tiny Tiny RSS was unable to start properly. This usually means a misconfiguration or an incomplete upgrade. \n " ;
echo " Please fix errors indicated by the following messages: \n \n " ;
foreach ( $errors as $error ) {
echo " * $error\n " ;
}
2012-07-10 13:11:55 +02:00
echo " \n You might want to check tt-rss wiki or the forums for more information. \n " ;
2012-05-17 10:23:14 +02:00
echo " Please search the forums before creating new topic for your question. \n " ;
exit ( - 1 );
}
2006-10-01 12:05:20 +02:00
}
2012-05-17 10:23:14 +02:00
initial_sanity_check ( $link );
2005-11-23 18:20:17 +01:00
?>