OwnCloud Will not Write into Config Directory

Steps to reproduce

  1. Create a new database
  2. Download the zip files and unpack
  3. Run the web-installer

Expected behaviour

Owncloud should go to an interface where it asks you to input details such as use the sqlite Database or a Maria database, the name of the database etc. and then complete the instalation.

Actual behaviour

Installation stops with the following message:
Can’t write into config directory!

This can usually be fixed by giving the webserver write access to the config directory.

Server configuration

Ubuntu 18.04
50GB Memory
2GB Working Memory.

Web server:

Maria 10.4.16
PHP version:
PHP 7.4.12
ownCloud version: (see ownCloud admin page)

Updated from an older ownCloud or fresh install:
Where did you install ownCloud from:
IP file
Signing status (ownCloud 9.0 and above):

Login as admin user into your ownCloud and access 
paste the results into https://gist.github.com/ and puth the link here.

The content of config/config.php:

Log in to the web-UI with an administrator account and click on
'admin' -> 'Generate Config Report' -> 'Download ownCloud config report'
This report includes the config.php settings, the list of activated apps
and other details in a well sanitized form.


If you have access to your command line run e.g.:
sudo -u www-data php occ config:list system
from within your ownCloud installation folder

*ATTENTION:* Do not post your config.php file in public as is. Please use one of the above
methods whenever possible. Both, the generated reports from the web-ui and from occ config:list
consistently remove sensitive data. You still may want to review the report before sending.
If done manually then it is critical for your own privacy to dilligently
remove *all* host names, passwords, usernames, salts and other credentials before posting.
You should assume that attackers find such information and will use them against your systems.

List of activated apps:

If you have access to your command line run e.g.:
sudo -u www-data php occ app:list
from within your ownCloud installation folder.

Are you using external storage, if yes which one: local/smb/sftp/…

Are you using encryption: yes/no

Are you using an external user-backend, if yes which one: LDAP/ActiveDirectory/Webdav/…

LDAP configuration (delete this part if not used)

With access to your command line run e.g.:
sudo -u www-data php occ ldap:show-config
from within your ownCloud installation folder

Without access to your command line download the data/owncloud.db to your local
computer or access your SQL server remotely and run the select query:
SELECT * FROM `oc_appconfig` WHERE `appid` = 'user_ldap';

Eventually replace sensitive data as the name/IP-address of your LDAP server or groups.

Client configuration


Operating system:


Web server error log

Insert your webserver log here
AH01071: Got error 'PHP message: {"reqId":"c39b8ef0-f0d1-4618-907e-46896ea1e7ac","level":3,"time":"2020-11-10T09:48:13+00:00","remoteAddr":"","user":"--","app":"PHP","method":"GET","url":"\\/owncloud\\/status.php","message":"touch(): Utime failed: Permission denied at \\/var\\/www\\/vhosts\\/e4p.ch\\/httpdocs\\/owncloud\\/lib\\/private\\/Config.php#280"}PHP message: {"reqId":"c39b8ef0-f0d1-4618-907e-46896ea1e7ac","level":3,"time":"2020-11-10T09:48:13+00:00","remoteAddr":"","user":"--","app":"PHP","method":"GET","url":"\\/owncloud\\/status.php","message":"fopen(\\/var\\/www\\/vhosts\\/e4p.ch\\/httpdocs\\/owncloud\\/config\\/config.php): failed to open stream: Permission denied at \\/var\\/www\\/vhosts\\/e4p.ch\\/httpdocs\\/owncloud\\/lib\\/private\\/Config.php#281"}PHP message: {"reqId":"c39b8ef0-f0d1-4618-907e-46896ea1e7ac","level":3,"time":"2020-11-10T09:48:13+00:00","remoteAddr":"","user":"--","app":"PHP","method":"GET","url":"\\/owncloud\\/status.php","message":"chmod(): Operation not permitted at \\/var\\/www\\/vhosts\\/e4p.ch\\/httpdocs\\/owncloud\\/lib\\/private\\/Config.php#284"}PHP message: {"reqId":"c39b8ef0-f0d1-4618-907e-46896ea1e7ac","level":4,"time":"2020-11-10T09:48:13+00:00","remoteAddr":"","user":"--","app":"remote","method":"GET","url":"\\/owncloud\\/status.php","message":"Can't write into config directory!"}'

#### ownCloud log (data/owncloud.log)

Insert your ownCloud log here

<?php /** * @author Andreas Fischer * @author Christopher Schäpers * @author Frank Karlitschek * @author Joas Schilling * @author Jörn Friedrich Dreyer * @author Kristof Provost * @author Lukas Reschke * @author martin.mattel@diemattels.at * @author Masaki Kawabata Neto * @author Morris Jobke * @author Philipp Schaffrath * @author Thomas Müller * * @copyright Copyright (c) 2020, ownCloud GmbH * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License, version 3, * as published by the Free Software Foundation. * * 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 Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License, version 3, * along with this program. If not, see * */ try { require_once __DIR__ . '/lib/base.php'; # show the version details based on config.php parameter, # but do not expose the servername in the public via url $values = \OCP\Util::getStatusInfo( null, \OC::$server->getConfig()->getSystemValue('show_server_hostname', false) !== true, \OC::$server->getConfig()->getSystemValue('use_relative_domain_name', false) === true ); if (OC::$CLI) { \print_r($values); } else { \header('Access-Control-Allow-Origin: *'); \header('Content-Type: application/json'); echo \json_encode($values); } } catch (\Throwable $ex) { try { OC_Response::setStatus(OC_Response::STATUS_INTERNAL_SERVER_ERROR); \OCP\Util::writeLog('remote', $ex->getMessage(), \OCP\Util::FATAL); } catch (\Throwable $ex2) { // log through the crashLog \header("{$_SERVER['SERVER_PROTOCOL']} 599 Broken"); \OC::crashLog($ex); \OC::crashLog($ex2); } } #### Browser log ``` Insert your browser log here, this could for example include: a) The javascript console log b) The network log c) ... ```

Ok, it seemed that there was a file ownership issue on the server. After resolving this OwnCloud setup exactly as I expected it to.

1 Like