0byt3m1n1
Path:
/
data
/
applications
/
aps
/
tikiwiki
/
3.2.0-5
/
standard
/
htdocs
/
lib
/
setup
/
[
Home
]
File: tikisetup.class.php
<?php // $Id: tikisetup.class.php 18054 2009-04-17 09:44:45Z luciash $ // Copyright (c) 2002-2009, Luis Argerich, Garland Foster, Eduardo Polidor, et. al. // All Rights Reserved. See copyright.txt for details and a complete list of authors. // Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for // details. //this script may only be included - so its better to die if called directly. class TikiSetup extends TikiInit { /*! Check that everything is set up properly \static */ function check($tikidomain='') { static $checked; if ($checked) { return; } $checked = true; $errors = ''; /* if (strpos($_SERVER['SERVER_SOFTWARE'],'IIS')==TRUE){ if (array_key_exists('PATH_TRANSLATED', $_SERVER)) { $docroot = dirname($_SERVER['PATH_TRANSLATED']); } else { $docroot = getcwd(); } } else{ $docroot = getcwd(); } */ $docroot = getcwd(); if (ini_get('session.save_handler') == 'files') { $save_path = ini_get('session.save_path'); // check if we can check it. The session.save_path can be outside // the open_basedir paths. $open_basedir=ini_get('open_basedir'); if (empty($open_basedir)) { if (!is_dir($save_path)) { $errors .= "The directory '$save_path' does not exist or PHP is not allowed to access it (check open_basedir entry in php.ini).\n"; } else if (!is_writeable($save_path)) { $errors .= "The directory '$save_path' is not writeable.\n"; } } if ($errors) { $save_path = TikiSetup::tempdir(); if (is_dir($save_path) && is_writeable($save_path)) { session_save_path($save_path); $errors = ''; } } } $wwwuser = ''; $wwwgroup = ''; if (TikiSetup::isWindows()) { $wwwuser = 'SYSTEM'; $wwwgroup = 'SYSTEM'; } if (function_exists('posix_getuid')) { $user = @posix_getpwuid(@posix_getuid()); $group = @posix_getpwuid(@posix_getgid()); $wwwuser = $user ? $user['name'] : false; $wwwgroup = $group ? $group['name'] : false; } if (!$wwwuser) { $wwwuser = 'nobody (or the user account the web server is running under)'; } if (!$wwwgroup) { $wwwgroup = 'nobody (or the group account the web server is running under)'; } static $dirs = array( 'backups', 'dump', 'img/wiki', 'img/wiki_up', 'modules/cache', 'temp', 'templates_c', # 'var', # 'var/log', # 'var/log/irc', ); foreach ($dirs as $dir) { if (!is_dir("$docroot/$dir/$tikidomain")) { $errors .= "The directory '$docroot/$dir/$tikidomain' does not exist.\n"; } else if (!is_writeable("$docroot/$dir/$tikidomain")) { $errors .= "The directory '$docroot/$dir/$tikidomain' is not writeable by $wwwuser.\n"; } } if ($errors) { $PHP_CONFIG_FILE_PATH = PHP_CONFIG_FILE_PATH; ob_start(); phpinfo (INFO_MODULES); $httpd_conf = 'httpd.conf'; if (preg_match('/Server Root<\/b><\/td><td\s+align="left">([^<]*)</', ob_get_contents(), $m)) { $httpd_conf = $m[1] . '/' . $httpd_conf; } ob_end_clean(); print " <html><body> <h2><font color='red'>Tiki is not properly set up:</font></h2> <pre> $errors "; if ($tikidomain) { $install_link = '?multi='.urlencode($tikidomain); } if (!TikiSetup::isWindows()) { print "Your options: 1- With FTP access: a) Change the permissions (chmod) of the directories to 777. b) Create any missing directories c) <a href='tiki-install.php$install_link'>Execute the Tiki installer again</a> (Once you have executed these commands, this message will disappear!) or 2- With shell (SSH) access, you can run the command below. a) Run setup.sh and follow the instructions: \$ bash \$ cd $docroot \$ sh setup.sh The script will offer you options depending on your server configuration. b) <a href='tiki-install.php$install_link'>Execute the Tiki installer again</a> (Once you have executed these commands, this message will disappear!) <hr> If you have problems accessing a directory, check the open_basedir entry in $PHP_CONFIG_FILE_PATH/php.ini or $httpd_conf. <hr> <a href='http://doc.tikiwiki.org/Installation' target='_blank'>Consult the tikiwiki.org installation guide</a> if you need more help or <a href='http://tikiwiki.org/tiki-forums.php' target='_blank'>visit the forums</a> </pre></body></html>"; } exit; } } }