1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
<?php defined("SYSPATH") or die("No direct script access."); /** * Gallery - a web based photo album viewer and editor * Copyright (C) 2000-2013 Bharat Mediratta * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or (at * your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ /** * Command line parameters: * -h Database host (default: localhost) * -u Database user (default: root) * -p Database user password (default: ) * -d Database name (default: gallery3) * -x Table prefix (default: ) */ if (installer::already_installed()) { print "Gallery 3 is already installed.\n"; return; }
$errors = installer::check_environment(); if ($errors) { oops(implode($errors, "\n")); }
$config = parse_cli_params(); if (!installer::connect($config)) { oops("Unable to connect to the database.\n" . mysql_error() . "\n"); } else if (!installer::select_db($config)) { oops("Database {$config['dbname']} doesn't exist and can't be created. " . "Please create the database by hand."); } else if (is_string($count = installer::db_empty($config)) || !$count) { if (is_string($count)) { oops($count); } else { oops("Database {$config['dbname']} already has Gallery 3 tables in it. \n" . " Please remove the Gallery 3 tables, change your prefix,\n" . " or specify an empty database.\n"); } } else if (!installer::unpack_var()) { oops("Unable to create files inside the 'var' directory"); } else if (!installer::unpack_sql($config)) { oops("Failed to create database tables\n" . mysql_error()); } else if (!installer::create_database_config($config)) { oops("Couldn't create var/database.php"); } else { system("chmod -R 777 " . VARPATH); try { list ($user, $password) = installer::create_admin($config); print "Your Gallery has been successfully installed!\n"; print "We've created an account for you to use:\n"; print " username: $user\n"; print " password: $password\n"; print "\n";
installer::create_private_key($config); exit(0); } catch (Exception $e) { oops($e->getMessage()); } }
function oops($message) { print "Oops! Something went wrong during the installation:\n\n";
print "==> " . $message; print "\n"; print "For help you can try:\n"; print " * The Gallery 3 FAQ - http://codex.galleryproject.org/Gallery3:FAQ\n"; print " * The Gallery Forums - http://galleryproject.org/forum\n"; print "\n\n** INSTALLATION FAILED **\n"; exit(1); }
function parse_cli_params() { $config = array("host" => "localhost", "user" => "root", "password" => "", "dbname" => "gallery3", "prefix" => "", "g3_password" => "", "type" => function_exists("mysqli_set_charset") ? "mysqli" : "mysql");
$argv = $_SERVER["argv"]; for ($i = 1; $i < count($argv); $i++) { switch (strtolower($argv[$i])) { case "-d": $config["dbname"] = $argv[++$i]; break; case "-h": list ($config["host"], $config["port"]) = explode(":", $argv[++$i]); break; case "-u": $config["user"] = $argv[++$i]; break; case "-p": $config["password"] = $argv[++$i]; break; case "-x": $config["prefix"] = $argv[++$i]; break; case "-g3p": $config["g3_password"] = $argv[++$i]; break; } }
return $config; }
|