Can Create Folders But Not Files - Softaculous Install of NextCloud -

Hello all. This is my first post and I’ve searched for answers but found none describing this exact topic.

I’m testing a setup of NC with my ISP. There is no shell access, so I can’t perform a manual install (easily). Their method of install is via Softaculous.

I use it to setup NC and once I’m on as Admin, I can create users, groups, change settings, etc. All good. I can traverse the default directory structure. I can create folders, but I can’t upload or drag-n-drop files (using chrome as that is the only one documented as supporting d&d).

Updates fail, even if I edit the example text file and try to save the edited version. Then I get a message like “There was a problem saving your changes. Click to resume editing.” For new files, I get “FORBIDDEN” up at the top of the window with no other details. Nothing shows up in the admin’s log.

Everything “seems” to be setup properly, but somehow it seems to be pointing to .htaccess as the source of the issue and yet, I can’t see anything abnormal. I’ve deleted and recreated the installation in various paths without any change in behavior.

So, it is surely a permission issue but how & why… I have no clue and I’m wondering if it is a result of the Softaculous installer. Files are owned by the httpd daemon and when I create a test directory, it shows up with that owner and permissions 755, which, if the upload and update are driving the httpd for files in that directory, it should allow write/create at the least during my testing.

NC is
The db is MySQL/Maria 5.6.35
I set PHP to v7.1.7
It’s running Apache 2.4

Has anyone come across this issue and resolved it or can someone please point me in the right direction? Thanks in advance!


I found a debug toggle inside the code. It seems to be related to this 3rd party app GuzzleHttp, or at least this is the only error I can find. Looks like a traceback. Here is the diagnostic:

GuzzleHttp\Exception\ClientException: Client error response [url] [status code] 400 [reason phrase] Bad Request

/home/xxxxx/public_html/nextcloudtest/3rdparty/guzzlehttp/guzzle/src/Subscriber/HttpError.php - line 32: GuzzleHttp\Exception\RequestException create(Object(GuzzleHttp\Message\Request), Object(GuzzleHttp\Message\Response))

/home/xxxxx/public_html/nextcloudtest/3rdparty/guzzlehttp/guzzle/src/Event/Emitter.php - line 108: GuzzleHttp\Subscriber\HttpError->onComplete(Object(GuzzleHttp\Event\CompleteEvent), ‘complete’)

/home/xxxxx/public_html/nextcloudtest/3rdparty/guzzlehttp/guzzle/src/RequestFsm.php - line 91: GuzzleHttp\Event\Emitter->emit(‘complete’, Object(GuzzleHttp\Event\CompleteEvent))

/home/xxxxx/public_html/nextcloudtest/3rdparty/guzzlehttp/guzzle/src/RequestFsm.php - line 132: GuzzleHttp\RequestFsm->__invoke(Object(GuzzleHttp\Transaction))

/home/xxxxx/public_html/nextcloudtest/3rdparty/react/promise/src/FulfilledPromise.php - line 25: GuzzleHttp\RequestFsm->GuzzleHttp{closure}(Array)

/home/xxxxx/public_html/nextcloudtest/3rdparty/guzzlehttp/ringphp/src/Future/CompletedFutureValue.php - line 55: React\Promise\FulfilledPromise->then(Object(Closure), NULL, NULL)

/home/xxxxx/public_html/nextcloudtest/3rdparty/guzzlehttp/guzzle/src/Message/FutureResponse.php - line 43: GuzzleHttp\Ring\Future\CompletedFutureValue->then(Object(Closure), NULL, NULL)

/home/xxxxx/public_html/nextcloudtest/3rdparty/guzzlehttp/guzzle/src/RequestFsm.php - line 134: GuzzleHttp\Message\FutureResponse proxy(Object(GuzzleHttp\Ring\Future\CompletedFutureArray), Object(Closure))

/home/xxxxx/public_html/nextcloudtest/3rdparty/guzzlehttp/guzzle/src/Client.php - line 165: GuzzleHttp\RequestFsm->__invoke(Object(GuzzleHttp\Transaction))

/home/xxxxx/public_html/nextcloudtest/3rdparty/guzzlehttp/guzzle/src/Client.php - line 150: GuzzleHttp\Client->send(Object(GuzzleHttp\Message\Request))

/home/xxxxx/public_html/nextcloudtest/lib/private/Http/Client/Client.php - line 204: GuzzleHttp\Client->post(‘https //push-no…’, Array)

/home/xxxxx/public_html/nextcloudtest/apps/notifications/lib/Push.php - line 120: OC\Http\Client\Client->post(‘https //push-no…’, Array)

/home/xxxxx/public_html/nextcloudtest/apps/notifications/lib/App.php - line 48: OCA\Notifications\Push->pushToDevice(Object(OC\Notification\Notification))

/home/xxxxx/public_html/nextcloudtest/lib/private/Notification/Manager.php - line 187: OCA\Notifications\App->notify(Object(OC\Notification\Notification))

/home/xxxxx/public_html/nextcloudtest/apps/firstrunwizard/lib/Notification/BackgroundJob.php - line 53: OC\Notification\Manager->notify(Object(OC\Notification\Notification))

/home/xxxxx/public_html/nextcloudtest/lib/private/BackgroundJob/Job.php - line 59: OCA\FirstRunWizard\Notification\BackgroundJob->run(Array)

/home/xxxxx/public_html/nextcloudtest/lib/private/BackgroundJob/QueuedJob.php - line 43: OC\BackgroundJob\Job->execute(Object(OC\BackgroundJob\JobList), Object(OC\Log))

/home/xxxxx/public_html/nextcloudtest/cron.php - line 147: OC\BackgroundJob\QueuedJob->execute(Object(OC\BackgroundJob\JobList), Object(OC\Log))


.htaccess issue in the install path.

Hi, are you able to provide more details about what was wrong with the .htaccess file and what you changed?