we are facing internal server error if we tries uploading any files. after installing and config of redis and apcu in our centos 7 with nextcloud.
first what i found on apache log file after i restart httpd service
zend_mm_heap corrupted
then i also found error on nextcloud log
Error PHP Redis::connect(): connect() failed: No such file or directory at /var/www/html/nextcloud/lib/private/RedisFactory.php#82
under config.php
here is what i paste
‘memcache.local’ => ‘\OC\Memcache\APCu’,
‘memcache.locking’ => ‘\OC\Memcache\Redis’,
‘filelocking.enabled’ => true,
‘redis’ =>
array (
‘host’ => ‘/tmp/redis.sock’,
‘port’ => 0,
‘timeout’ => 0.0,
),
On Centos 7, I’ve this config:
/etc/redis.conf file:
port 0
unixsocket /var/run/redis/redis.sock
unixsocketperm 775
and in the nextcloud config file:
'filelocking.enabled' => true,
'memcache.local' => '\\OC\\Memcache\\APCu',
'memcache.distributed' => '\\OC\\Memcache\\Redis',
'memcache.locking' => '\\OC\\Memcache\\Redis',
'redis' =>
array (
'host' => '/var/run/redis/redis.sock',
'port' => 0,
'timeout' => 0,
)
Also the next command should return a PONG:
reds-cli -s /var/run/redis/redis.sock ping
Maybe this will help you.
3 Likes
This is not necessary for single server systems.
Nice idea to test the redis server directly first. In @rsumook case would be:
redis-cli -s /tmp/redis.sock ping
Having a look into the code, it seems that your webserver can’t reach the socket file: https://github.com/nextcloud/server/blob/master/lib/private/RedisFactory.php#L82 (by the way you see there, that timeout = 0.0
is set by default, thus could be left out
)
The reason could be, that web server is somehow limited in having a look into the /tmp
folder on certain systems. I got e.g. a problem when setting the tmp php upload folder to /var/tmp/php_upload_tmp
: Missing upload-tmp or not writable - #6 by MichaIng
So I would really follow the default socket location:
nano /etc/redis.conf
unixsocket /var/run/redis/redis.sock
service redis-server restart
nano /var/www/html/nextcloud/config/config.php
'host' => '/var/run/redis/redis.sock',
service apache2 restart
its weird yesterday i removed this code to make our nc working again because all users cant upload files with internal server error.

under redis.conf
i modified unixsocket to /tmp/redis.sock because i run whereis redis.socket in the terminal and unixsocketperm from 770 to 775

then i restarted the httpd and redis service
but i got error on page
[root@stp1200 config]# redis-cli -s /var/run/redis/redis.sock ping
PONG
[root@stp1200 config]#
you are correct Michalng i follow the default socket location then its working fine
edit the redis.conf

then i added memcache diributed actually even without this my nc still working

no more warning errors for memcache except https