// Check the subdirs used for file uploads
$fileSubdirs = array('avatar', 'file');
foreach ($fileSubdirs as $fileSubdir) {
- $fileFullPath = INSTALLDIR."/$fileSubdir/";
- if (!is_writable($fileFullPath)) {
+ $fileFullPath = INSTALLDIR."/$fileSubdir";
+ if (!file_exists($fileFullPath)) {
+ $pass = $pass && mkdir($fileFullPath);
+ } elseif (!is_dir($fileFullPath)) {
+ $this->warning(sprintf('GNU social expected a directory but found something else on this path: %s', $fileFullPath),
+ 'Either make sure it goes to a directory or remove it and a directory will be created.');
+ $pass = false;
+ } elseif (!is_writable($fileFullPath)) {
$this->warning(sprintf('Cannot write to %s directory: <code>%s</code>', $fileSubdir, $fileFullPath),
sprintf('On your server, try this command: <code>chmod a+w %s</code>', $fileFullPath));
$pass = false;
$this->updateStatus("Checking database...");
$conn = $this->connectDatabase($dsn);
+ if (!$conn instanceof DB_common) {
+ // Is not the right instance
+ throw new Exception('Cannot connect to database: ' . $conn->getMessage());
+ }
+
// ensure database encoding is UTF8
if ($this->dbtype == 'mysql') {
// @fixme utf8m4 support for mysql 5.5?
}
}
- if (!$conn instanceof DB_common) {
- // Is not the right instance
- throw new Exception('Cannot connect to database: ' . $conn->getMessage());
- }
-
$res = $this->updateStatus("Creating database tables...");
if (!$this->createCoreTables($conn)) {
$this->updateStatus("Error creating tables.", true);
'sitename' => $this->sitename,
'server' => $this->server,
'path' => $this->path,
- 'ssl' => in_array($this->ssl, array('never', 'sometimes', 'always'))
+ 'ssl' => in_array($this->ssl, array('never', 'always'))
? $this->ssl
: 'never',
'db_database' => $this->db['database'],
$data['email'] = $this->adminEmail;
}
try {
- $user = User::register($data);
+ $user = User::register($data, true); // true to skip email sending verification
} catch (Exception $e) {
return false;
}