diff options
author | 2011-08-11 21:19:05 +0100 | |
---|---|---|
committer | 2011-08-11 21:19:05 +0100 | |
commit | 20aaffd05379b748bb7455bdbbee2d92a13c370a (patch) | |
tree | 801be92b9ffaaa68c0b758c7e915034550145a6b /install.php | |
parent | Combine configs, fix image download path via a new config option, add initscript (diff) | |
download | gentoaster-20aaffd05379b748bb7455bdbbee2d92a13c370a.tar.gz gentoaster-20aaffd05379b748bb7455bdbbee2d92a13c370a.tar.bz2 gentoaster-20aaffd05379b748bb7455bdbbee2d92a13c370a.zip |
Added basic installer script and updated README appropriately
Diffstat (limited to 'install.php')
-rw-r--r-- | install.php | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/install.php b/install.php new file mode 100644 index 0000000..8bb3515 --- /dev/null +++ b/install.php @@ -0,0 +1,74 @@ +<? + + // Gentoaster installer + // Licensed under GPL v3, see COPYING file + + // Check we're running as root + $processUser = posix_getpwuid(posix_geteuid()); + if($processUser['name'] != "root") { + die("This installer must be run as root\n"); + } + + // Load the configurations (the web config chainloads the daemon config) + echo "Loading configuration\n"; + require_once "web/config.php"; + + // Basic configuration path sanity checks + echo "Checking configuration sanity\n"; + if(!file_exists(GENTOASTER_PATH."/install.php")) { + die("GENTOASTER_PATH is set incorrectly\n"); + } + + // Check database configuration is sane + echo "Connecting to database\n"; + $db = new mysqli( + MYSQL_HOSTNAME, + MYSQL_USERNAME, + MYSQL_PASSWORD + ); + + if (mysqli_connect_errno()) { + die("Could not connect to MySQL server: ".mysqli_connect_error()."\n"); + } + + // If we reached here, MySQL details are fine + echo "Database connection is OK\n"; + + + // Make sure we have a dump file to use + if (file_exists(GENTOASTER_PATH."/gentoaster.sql")) { + // Prep MySQL details for shell args + $mysqlHostname = escapeshellarg(MYSQL_HOSTNAME); + $mysqlUsername = escapeshellarg(MYSQL_USERNAME); + $mysqlDatabase = mysql_escape_string(MYSQL_DATABASE); + + // Create shell component for password if required + if (strlen(MYSQL_PASSWORD) > 0) { + $mysqlPassword = " -p ".escapeshellarg(MYSQL_PASSWORD)." "; + } else { + $mysqlPassword = " "; + } + + // Drop any existing database here + system('echo "DROP DATABASE IF EXISTS '.$mysqlDatabase.';" | mysql -u '.$mysqlUsername.$mysqlPassword); + + // Create a new database + system('echo "CREATE DATABASE '.$mysqlDatabase.';" | mysql -u '.$mysqlUsername.$mysqlPassword); + + // Import the database dump into that database + system('mysql -u '.$mysqlUsername.$mysqlPassword.$mysqlDatabase.' < gentoaster.sql'); + } else { + die("SQL file not found, check GENTOASTER_PATH\n"); + } + + // Add the initscript for the daemon + echo "Adding initscript symlink\n"; + system("rm -f /etc/init.d/gentoaster"); + system("ln -s ".GENTOASTER_PATH."/gentoaster /etc/init.d/gentoaster"); + system("chmod +x ".GENTOASTER_PATH."/gentoaster"); + + echo "Starting Gentoaster daemon\n"; + exec("/etc/init.d/gentoaster start"); + + echo "If you didn't see any errors, the install was successful\n"; + echo "Try visiting the site at ".GENTOASTER_URL." to make sure everything works\n";
\ No newline at end of file |