2006-08-19 09:04:45 +02:00
< ? php
2007-03-05 10:04:55 +01:00
require_once " functions.php " ;
2005-11-23 18:20:17 +01:00
if ( ! file_exists ( " config.php " )) {
2011-12-13 16:20:26 +01:00
$err_msg = " Configuration file not found. Looks like you forgot to copy config.php-dist to config.php and edit it. " ;
} else {
2010-12-21 07:29:07 +01:00
2011-12-21 06:14:43 +01:00
define ( 'EXPECTED_CONFIG_VERSION' , 25 );
2012-03-05 09:08:39 +01:00
define ( 'SCHEMA_VERSION' , 90 );
2010-12-21 07:29:07 +01:00
2011-12-13 16:20:26 +01:00
require_once " config.php " ;
require_once " sanity_config.php " ;
2011-01-11 10:20:00 +01:00
2012-02-17 14:36:18 +01:00
if ( function_exists ( 'posix_getuid' ) && posix_getuid () == 0 ) {
$err_msg = " Please don't run this script as root. " ;
}
2011-12-13 16:20:26 +01:00
if ( CONFIG_VERSION != EXPECTED_CONFIG_VERSION ) {
$err_msg = " Configuration file (config.php) has incorrect version. Update it with new options from config.php-dist and set CONFIG_VERSION to the correct value. " ;
2011-01-11 10:20:00 +01:00
}
2006-08-20 12:27:25 +02:00
2011-12-13 16:20:26 +01:00
$purifier_cache_dir = CACHE_DIR . " /htmlpurifier " ;
2006-10-01 12:05:20 +02:00
2011-12-13 16:20:26 +01:00
if ( ! is_writable ( $purifier_cache_dir )) {
$err_msg = " HTMLPurifier cache directory should be writable by anyone (chmod -R 777 $purifier_cache_dir ) " ;
}
2006-10-01 12:05:20 +02:00
2011-12-27 18:09:22 +01:00
if ( ! is_writable ( CACHE_DIR . " /images " )) {
$err_msg = " Image cache is not writable (chmod -R 777 " . CACHE_DIR . " /images) " ;
}
if ( ! is_writable ( CACHE_DIR . " /export " )) {
$err_msg = " Data export cache is not writable (chmod -R 777 " . CACHE_DIR . " /export) " ;
}
2011-12-13 16:20:26 +01:00
if ( GENERATED_CONFIG_CHECK != EXPECTED_CONFIG_VERSION ) {
$err_msg = " 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
2011-12-13 16:20:26 +01:00
foreach ( $requred_defines as $d ) {
if ( ! defined ( $d )) {
$err_msg = " Required configuration file parameter $d is not defined in config.php. You might need to copy it from config.php-dist. " ;
}
}
2006-10-01 12:05:20 +02:00
2011-12-13 16:20:26 +01:00
if ( SESSION_EXPIRE_TIME < 60 ) {
$err_msg = " SESSION_EXPIRE_TIME set in config.php is too low, please set it to an integer value >= 60 " ;
}
2006-10-01 12:05:20 +02:00
2011-12-13 16:20:26 +01:00
if ( SESSION_EXPIRE_TIME < SESSION_COOKIE_LIFETIME ) {
$err_msg = " SESSION_EXPIRE_TIME set in config.php should be >= to SESSION_COOKIE_LIFETIME " ;
}
2006-12-08 06:36:10 +01:00
2011-12-13 16:20:26 +01:00
if ( SINGLE_USER_MODE ) {
$link = db_connect ( DB_HOST , DB_USER , DB_PASS , DB_NAME );
2010-06-10 12:29:55 +02:00
2011-12-13 16:20:26 +01:00
if ( $link ) {
$result = db_query ( $link , " SELECT id FROM ttrss_users WHERE id = 1 " );
2010-06-10 12:29:55 +02:00
2011-12-13 16:20:26 +01:00
if ( db_num_rows ( $result ) != 1 ) {
$err_msg = " SINGLE_USER_MODE is enabled in config.php but default admin account is not found. " ;
}
2010-06-10 12:29:55 +02:00
}
}
2007-09-20 05:00:19 +02:00
2011-12-13 16:20:26 +01:00
if ( SELF_URL_PATH == " http://yourserver/tt-rss/ " ) {
if ( $_SERVER [ 'HTTP_REFERER' ]) {
$err_msg = " Please set SELF_URL_PATH to the correct value for your server (possible value: <b> " . $_SERVER [ 'HTTP_REFERER' ] . " </b>) " ;
} else {
$err_msg = " Please set SELF_URL_PATH to the correct value for your server. " ;
}
}
2007-09-25 06:06:21 +02:00
2011-12-13 16:20:26 +01:00
if ( ! is_writable ( ICONS_DIR )) {
$err_msg = " ICONS_DIR defined in config.php is not writable (chmod -R 777 " . ICONS_DIR . " ). \n " ;
}
2007-09-25 06:06:21 +02:00
2011-12-14 06:38:56 +01:00
if ( ! is_writable ( LOCK_DIRECTORY )) {
$err_msg = " LOCK_DIRECTORY defined in config.php is not writable (chmod -R 777 " . LOCK_DIRECTORY . " ). \n " ;
}
2011-12-13 16:20:26 +01:00
if ( ini_get ( " open_basedir " )) {
$err_msg = " 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
2011-12-13 16:20:26 +01:00
if ( ! function_exists ( " curl_init " ) && ! ini_get ( " allow_url_fopen " )) {
$err_msg = " 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
2011-12-13 16:20:26 +01:00
if ( ! function_exists ( " json_encode " )) {
$err_msg = " PHP support for JSON is required, but was not found. " ;
}
2011-11-06 19:07:52 +01:00
2011-12-13 16:20:26 +01:00
if ( DB_TYPE == " mysql " && ! function_exists ( " mysql_connect " )) {
$err_msg = " PHP support for MySQL is required for configured DB_TYPE in config.php. " ;
}
2010-11-01 10:18:06 +01:00
2011-12-13 16:20:26 +01:00
if ( DB_TYPE == " pgsql " && ! function_exists ( " pg_connect " )) {
$err_msg = " PHP support for PostgreSQL is required for configured DB_TYPE in config.php " ;
}
2010-12-27 13:09:30 +01:00
2011-12-13 16:20:26 +01:00
if ( ! function_exists ( " mb_strlen " )) {
$err_msg = " PHP support for mbstring functions is required, but was not found. " ;
}
2010-12-27 13:09:30 +01:00
2011-12-13 16:20:26 +01:00
if ( ! function_exists ( " ctype_lower " )) {
$err_msg = " PHP support for ctype functions are required by HTMLPurifier. " ;
}
2010-12-27 13:09:30 +01:00
2011-12-13 16:20:26 +01:00
if ( ini_get ( " safe_mode " )) {
$err_msg = " PHP safe mode setting is not supported. " ;
}
2010-12-27 13:09:30 +01:00
2011-12-13 16:20:26 +01:00
if (( PUBSUBHUBBUB_HUB || PUBSUBHUBBUB_ENABLED ) && ! function_exists ( " curl_init " )) {
$err_msg = " PHP support for CURL is required for PubSubHubbub. " ;
}
2010-12-27 13:09:30 +01:00
2011-12-13 16:20:26 +01:00
if ( ! class_exists ( " DOMDocument " )) {
$err_msg = " PHP support for DOMDocument is required, but was not found. " ;
}
2010-12-27 13:09:30 +01:00
}
2012-02-17 14:36:18 +01:00
if ( $err_msg && defined ( $_SERVER [ 'REQUEST_URI' ])) { ?>
2011-12-13 16:20:26 +01:00
< html >
< head >
< title > Fatal error </ title >
< meta http - equiv = " Content-Type " content = " text/html; charset=utf-8 " >
< link rel = " stylesheet " type = " text/css " href = " utility.css " >
</ head >
2011-10-18 08:44:23 +02:00
2011-12-13 16:20:26 +01:00
< div class = " floatingLogo " >< img src = " images/logo_wide.png " ></ div >
2010-12-27 13:09:30 +01:00
2011-12-13 16:20:26 +01:00
< h1 > Fatal error </ h1 >
2011-04-01 07:42:15 +02:00
2011-12-13 16:20:26 +01:00
< p > Tiny Tiny RSS was unable to initialize properly . This usually means a misconfiguration or an incomplete upgrade . Please fix
the error indicated by the following message :</ p >
2011-04-05 14:25:07 +02:00
2011-12-13 16:20:26 +01: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-08-16 06:56:52 +02:00
2011-12-13 16:20:26 +01:00
< body >
< ? php echo format_error ( $err_msg ) ?>
</ body >
</ html >
2011-04-12 17:29:45 +02:00
2011-12-13 16:20:26 +01:00
< ? php
die ;
2012-02-17 14:36:18 +01:00
} else if ( $err_msg ) {
die ( " [sanity_check] $err_msg\n " );
2006-10-01 12:05:20 +02:00
}
2005-11-23 18:20:17 +01:00
?>