create storage directories automatically

This commit is contained in:
Mikael Nordfeldth 2015-12-28 00:35:02 +01:00
parent 2f836e2a59
commit c0ef167514

View File

@ -135,8 +135,14 @@ abstract class Installer
// Check the subdirs used for file uploads // Check the subdirs used for file uploads
$fileSubdirs = array('avatar', 'file'); $fileSubdirs = array('avatar', 'file');
foreach ($fileSubdirs as $fileSubdir) { foreach ($fileSubdirs as $fileSubdir) {
$fileFullPath = INSTALLDIR."/$fileSubdir/"; $fileFullPath = INSTALLDIR."/$fileSubdir";
if (!is_writable($fileFullPath)) { 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), $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)); sprintf('On your server, try this command: <code>chmod a+w %s</code>', $fileFullPath));
$pass = false; $pass = false;