Support intro
Sorry to hear you’re facing problems
help.nextcloud.com is for home/non-enterprise users. If you’re running a business, paid support can be accessed via portal.nextcloud.com where we can ensure your business keeps running smoothly.
In order to help you as quickly as possible, before clicking Create Topic please provide as much of the below as you can. Feel free to use a pastebin service for logs, otherwise either indent short log examples with four spaces:
example
Or for longer, use three backticks above and below the code snippet:
longer
example
here
Some or all of the below information will be requested if it isn’t supplied; for fastest response please provide as much as you can
Nextcloud version: 18.04.3 LTS
Operating system and version: Ubuntu 17.04:
Apache or nginx version: Apache2 (not sure exact Version)
PHP version (eg, 7.1):
The issue you are facing:
[PHP] Error: Redis::connect(): connect() failed: No such file or directory at /var/www/nextcloud/lib/private/RedisFactory.php#90
CONSTANTLY lol
Is this the first time you’ve seen this error? (Y/N): Y
Steps to replicate it:
- Start the server
- auto upload to external storage
- profit
The output of your Nextcloud log in Admin > Logging:
see image above... that is all I can get, downloading the log has a lot of personal info in it due to the nature of the upload ... not sure what #90 means
The output of your config.php file in /path/to/nextcloud
(make sure you remove any identifiable information!):
https://pastebin.com/dZ2dNggs
I hope that I answered the basics… but I just wanted to add a few things that may help those that are willing to help me with this.
First, I am very basic, when it comes to my Linux abilities in general. I work IT by trade, but we use nothing but windows and this is kinda of a home project.
I updated to 18.04 LTS from 16.04, and updated from Nextcloud 15 to 17. Resolved a few basic errors that seemed quite common, and then everything was running good.
Well a few days ago, my wife noted that her pictures were getting a server error when using the auto upload from her android phone… So I checked the server and notices that ALL of my external storages were no longer working… they had Red X’s or Yellow Exclamation points: :Modified screen shot below:
These were all working since I configured them a couple of years ago.
After googling the heck out of this issue, I notice that there were a couple of threads that seemed relevant, but I am not able to reproduce the steps (Some times because I just plain don’t know what I am dealing with lol) But here are a few and the notes I have after trying some of the fixes:
My /etc/group already has :www-data after redis
Talked about checking the server status… Here is mine:
root@FAMILY-CLOUD:/var/log/apache2# service redis-server status
● redis-server.service - Advanced key-value store
Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2019-11-30 21:06:05 PST; 41min ago
Docs: http://redis.io/documentation,
man:redis-server(1)
Process: 1807 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exited, status=0/SUCCESS)
Main PID: 1904 (redis-server)
Tasks: 4 (limit: 4915)
CGroup: /system.slice/redis-server.service
└─1904 /usr/bin/redis-server 127.0.0.1:6379
Nov 30 21:06:04 FAMILY-CLOUD systemd[1]: Starting Advanced key-value store...
Nov 30 21:06:05 FAMILY-CLOUD systemd[1]: Started Advanced key-value store.
I noted that I could not fine the ‘redis.sock’ file, it was not in /var/run/redis or /tmp
root@FAMILY-CLOUD:/var/log/apache2# redis-cli -s /var/run/redis/redis.sock ping
Could not connect to Redis at /var/run/redis/redis.sock: No such file or directory
I tried to research that… but many of the results I got, mainly seem to be talking about modifying configuration files (mine looked like thiers) but no one talked about how to create this redis.sock file. any my gut is telling me that this is the issue.
Also, just for the sake of having it, here is the output of my RedisFactory.php:
<?php
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
* @author Jörn Friedrich Dreyer <jfd@butonic.de>
* @author Robin Appelman <robin@icewind.nl>
* @author Robin McCorkell <robin@mccorkell.me.uk>
*
* @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 <http://www.gnu.org/licenses/>
*
*/
namespace OC;
class RedisFactory {
/** @var \Redis */
private $instance;
/** @var SystemConfig */
private $config;
/**
* RedisFactory constructor.
*
* @param SystemConfig $config
*/
public function __construct(SystemConfig $config) {
$this->config = $config;
}
private function create() {
if ($config = $this->config->getValue('redis.cluster', [])) {
if (!class_exists('RedisCluster')) {
throw new \Exception('Redis Cluster support is not available');
}
// cluster config
if (isset($config['timeout'])) {
$timeout = $config['timeout'];
} else {
$timeout = null;
}
if (isset($config['read_timeout'])) {
$readTimeout = $config['read_timeout'];
} else {
$readTimeout = null;
}
if (isset($config['password']) && $config['password'] !== '') {
$this->instance = new \RedisCluster(null, $config['seeds'], $timeout, $readTimeout, false, $config['password']);
} else {
$this->instance = new \RedisCluster(null, $config['seeds'], $timeout, $readTimeout);
}
if (isset($config['failover_mode'])) {
$this->instance->setOption(\RedisCluster::OPT_SLAVE_FAILOVER, $config['failover_mode']);
}
} else {
$this->instance = new \Redis();
$config = $this->config->getValue('redis', []);
if (isset($config['host'])) {
$host = $config['host'];
} else {
$host = '127.0.0.1';
}
if (isset($config['port'])) {
$port = $config['port'];
} else if ($host[0] !== '/') {
$port = 6379;
} else {
$port = null;
}
if (isset($config['timeout'])) {
$timeout = $config['timeout'];
} else {
$timeout = 0.0; // unlimited
}
$this->instance->connect($host, $port, $timeout);
if (isset($config['password']) && $config['password'] !== '') {
$this->instance->auth($config['password']);
}
if (isset($config['dbindex'])) {
$this->instance->select($config['dbindex']);
}
}
}
public function getInstance() {
if (!$this->isAvailable()) {
throw new \Exception('Redis support is not available');
}
if (!$this->instance instanceof \Redis) {
$this->create();
}
return $this->instance;
}
public function isAvailable() {
return extension_loaded('redis')
&& version_compare(phpversion('redis'), '2.2.5', '>=');
}
}
#82 is already set to :null:
and #90 is about passwords
Any help is appreciated … I am sorry if I provided too much or not the right please let me know what you need I will gladly get it
Thanks for the time to ready this book