[NC15] php-7.2 occ unhandled exception

Support intro

Sorry to hear you’re facing problems :slightly_frowning_face:

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 :heart:

Nextcloud version: 15.0.0
Operating system and version: OpenBSD 6.4
Apache or nginx version: nginx/1.14.1
PHP version: PHP 7.2.13 (cli) (built: Dec 12 2018 17:14:20) ( NTS )

The issue you are facing:

$ php-7.2 occ maintenance:mode --on 
An unhandled exception has been thrown:
Doctrine\DBAL\DBALException: Failed to connect to the database: An exception occured in driver: SQLSTATE[HY000] [2002] No such file or directory in /var/www/htdocs/cld/www/nextcloud/lib/private/DB/Connection.php:64

Is this the first time you’ve seen this error?: Y

Nextcloud log:

{"reqId":"9qnRbcEGrXTnp4wP5uOB","level":3,"time":"2019-01-28T13:38:16+00:00","remoteAddr":"88.136.16.221","user":"user","app":"PHP","method":"GET","url":"\/settings\/ajax\/checksetup","message":"Zend OPcache can't be temporary enabled (it may be only disabled till the end of request) at Unknown#0","userAgent":"Mozilla\/5.0 (X11; OpenBSD amd64; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Iridium\/2018.5 Safari\/537.36 Chrome\/67.0.3396.40","version":"15.0.0.10"}
{"reqId":"lvv2TFoeJU7HVaHCM1f6","level":3,"time":"2019-01-28T13:38:43+00:00","remoteAddr":"88.136.16.221","user":"user","app":"PHP","method":"GET","url":"\/ocs\/v2.php\/apps\/notifications\/api\/v2\/notifications","message":"Zend OPcache can't be temporary enabled (it may be only disabled till the end of request) at Unknown#0","userAgent":"Mozilla\/5.0 (X11; OpenBSD amd64; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Iridium\/2018.5 Safari\/537.36 Chrome\/67.0.3396.40","version":"15.0.0.10"}
{"reqId":"eLPAGCqANlB8FTtWrHHc","level":3,"time":"2019-01-28T13:39:14+00:00","remoteAddr":"88.136.16.221","user":"user","app":"PHP","method":"GET","url":"\/ocs\/v2.php\/apps\/notifications\/api\/v2\/notifications","message":"Zend OPcache can't be temporary enabled (it may be only disabled till the end of request) at Unknown#0","userAgent":"Mozilla\/5.0 (X11; OpenBSD amd64; Linux x86_64) AppleWebKit\/537.36 (KHTML, like Gecko) Iridium\/2018.5 Safari\/537.36 Chrome\/67.0.3396.40","version":"15.0.0.10"}

=> the folder ‘/var/www’ is the chroot web.

=> MySQL is accessible by the web server and PHP.
The socket setted as, into /etc/my.cnf, for the client et the daemon:
socket = /var/www/var/run/mysql/mysql.sock

$ ls -al /var/www/var/run/mysql/                                
total 8
drwx--x--x  2 _mysql  _mysql  512 Jan 27 08:02 .
drwxr-xr-x  3 root    daemon  512 Oct 14  2017 ..
srwxrwxrwx  1 _mysql  _mysql    0 Jan 27 08:02 mysql.sock

$ netstat -an | grep "\.3306"
tcp          0      0  127.0.0.1.3306         *.*                    LISTEN

How I can remediate at this problem?..
(in the fact, I cant upgrade to 15.0.2, as exemple).

OK, it seems resolved by adding/modifying thoses PHP directives:

(...)
pdo_mysql.default_socket=/var/www/var/run/mysql/mysql.sock
(...)

PS: it seems necessary to create a php-cli.ini by copying php-7.2.ini to avoid confusion between differents PHP modes.


But now, when i try:

$ php-7.2 occ -h                    
PHP Warning:  fileperms(): stat failed for /htdocs/cld/nextcloud-data/nextcloud.log in /var/www/htdocs/cld/www/nextcloud/lib/private/Log/File.php on line 140
{"reqId":"i3wQUVbLOiC2nVhm7G7o","level":3,"time":"2019-01-28T19:39:10+00:00","remoteAddr":"","user":"--","app":"PHP","method":"","url":"--","message":"fileperms(): stat failed for \/htdocs\/cld\/nextcloud-data\/nextcloud.log at \/var\/www\/htdocs\/cld\/www\/nextcloud\/lib\/private\/Log\/File.php#140","userAgent":"--","version":"15.0.0.10"}
{"reqId":"i3wQUVbLOiC2nVhm7G7o","level":2,"time":"2019-01-28T19:39:10+00:00","remoteAddr":"","user":"--","app":"no app in context","method":"","url":"--","message":"Temporary directory \/var\/www\/tmp is not present or writable","userAgent":"--","version":"15.0.0.10"}
PHP Warning:  fileperms(): stat failed for /htdocs/cld/nextcloud-data/nextcloud.log in /var/www/htdocs/cld/www/nextcloud/lib/private/Log/File.php on line 140
{"reqId":"i3wQUVbLOiC2nVhm7G7o","level":3,"time":"2019-01-28T19:39:10+00:00","remoteAddr":"","user":"--","app":"PHP","method":"","url":"--","message":"is_writable(): open_basedir restriction in effect. File(\/tmp\/) is not within the allowed path(s): (\/var\/www\/cache:\/var\/www\/htdocs:\/var\/www\/tmp) at \/var\/www\/htdocs\/cld\/www\/nextcloud\/lib\/private\/TempManager.php#260","userAgent":"--","version":"15.0.0.10"}
PHP Warning:  fileperms(): stat failed for /htdocs/cld/nextcloud-data/nextcloud.log in /var/www/htdocs/cld/www/nextcloud/lib/private/Log/File.php on line 140
{"reqId":"i3wQUVbLOiC2nVhm7G7o","level":3,"time":"2019-01-28T19:39:10+00:00","remoteAddr":"","user":"--","app":"PHP","method":"","url":"--","message":"fileperms(): stat failed for \/htdocs\/cld\/nextcloud-data\/nextcloud.log at \/var\/www\/htdocs\/cld\/www\/nextcloud\/lib\/private\/Log\/File.php#140","userAgent":"--","version":"15.0.0.10"}
{"reqId":"i3wQUVbLOiC2nVhm7G7o","level":2,"time":"2019-01-28T19:39:10+00:00","remoteAddr":"","user":"--","app":"no app in context","method":"","url":"--","message":"Temporary directory \/tmp\/ is not present or writable","userAgent":"--","version":"15.0.0.10"}

Votre répertoire n'est pas valide
Assurez-vous que le répertoire de données contient un fichier ".ocdata" à sa racine.

Impossible de créer le dossier "data"
Ce problème est généralement résolu en donnant au serveur web un accès en écriture au répertoire racine. Voir https://docs.nextcloud.com/server/14/go.php?to=admin-dir_permissions

An unhandled exception has been thrown:
Exception: Environment not properly prepared. in /var/www/htdocs/cld/www/nextcloud/lib/private/Console/Application.php:166
Stack trace:
#0 /var/www/htdocs/cld/www/nextcloud/console.php(95): OC\Console\Application->loadCommands(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#1 /var/www/htdocs/cld/www/nextcloud/occ(11): require_once('/var/www/htdocs...')
#2 {main}PHP Warning:  fileperms(): stat failed for /htdocs/cld/nextcloud-data/nextcloud.log in /var/www/htdocs/cld/www/nextcloud/lib/private/Log/File.php on line 140
{"reqId":"i3wQUVbLOiC2nVhm7G7o","level":3,"time":"2019-01-28T19:39:10+00:00","remoteAddr":"","user":"--","app":"PHP","method":"","url":"--","message":"fileperms(): stat failed for \/htdocs\/cld\/nextcloud-data\/nextcloud.log at \/var\/www\/htdocs\/cld\/www\/nextcloud\/lib\/private\/Log\/File.php#140","userAgent":"--","version":"15.0.0.10"}
{"reqId":"i3wQUVbLOiC2nVhm7G7o","level":3,"time":"2019-01-28T19:39:10+00:00","remoteAddr":"","user":"--","app":"PHP","method":"","url":"--","message":"chmod(): No such file or directory at \/var\/www\/htdocs\/cld\/www\/nextcloud\/lib\/private\/Log\/File.php#141","userAgent":"--","version":"15.0.0.10"}

the folder ‘data’ is not on root nexctloud!

Nobody can help me?!

How can I update if I cant resolve the problem?!

Hi,

I’m on mobile phone right and can’t really copy and paste parts of your error messages. But read them again. There are some descriptions of what exactly is wrong and failing.
Like tmp in Nextcloud folder missing, .ocdata in nc data dir missing and probably wrong file permissions for
/htdocs/cld/nextcloud-data/nextcloud.log

I’ve seen thoses messages… but i access, my and my users, with browser web, without any problem, at all. (folders, notes, calenders, talk,…)
The webui is fully fonctional!

why occ not run whitout problem?

Thoses are absolutly falses!

I explain:

  • /var/www is a chroot web under OpenBSD (by default)
  • /var/www/htdocs is the folder for web domains.
  • /var/www/tmp is the folder for temporary datas.
$ ls -al /var/www/                                                                                                           
total 72
drwxr-xr-x  18 root  daemon   512 Oct 11 21:18 .
drwxr-xr-x  32 root  wheel   1024 Jan  1 20:44 ..
drwxr-xr-x  11 www   daemon   512 Dec 27 12:28 .ht
drwxr-xr-x  13 root  daemon   512 Jan  7 19:35 acme
drwxr-xr-x   2 root  daemon   512 Jan 28 13:08 bin
drwx-----T  17 www   daemon   512 Dec 27 12:28 cache
drwxr-xr-x   2 root  daemon   512 Oct 11 21:18 cgi-bin
drwxr-xr-x  10 root  daemon   512 Dec 27 12:28 conf
drwxr-xr-x   3 root  daemon   512 Nov  8  2017 etc
drwxr-xr-x  13 root  daemon   512 Jan 28 14:45 htdocs
drwxr-xr-x   2 root  daemon   512 Nov 28 01:32 html
drwxr-xr-x  13 root  daemon  1024 Dec 27 12:28 logs
drwx-----T   2 root  daemon  2048 Aug 30 12:05 lost+found
drwxr-xr-x   2 root  daemon   512 Nov 28 01:32 modules
drwxr-xr-x  12 root  daemon  1024 Jan 29 18:48 run
drwxr-xr-x  12 www   www     2048 Jan  1 15:05 tmp
drwxr-xr-x   4 root  daemon   512 Mar  7  2018 usr
drwxr-xr-x   3 root  daemon   512 Jun 24  2017 var

$ ls -al /var/www/tmp/                                                                                                       
total 48
drwxr-xr-x  12 www                   www     2048 Jan  1 15:05 .
drwxr-xr-x  18 root                  daemon   512 Oct 11 21:18 ..
(...)
drwxr-xr-x   2 cld  www      512 Jan 30 11:39 cld
(...)

=> My webdomain is cld.stephane-huc.net!
=> The user domain on my server is ‘cld’ and is part of the group ‘www’.

The NC is hosting into:

$ ls -al /var/www/htdocs/cld/                                                                               
total 24
drwx---r-x   6 root                  wheel                  512 Dec 12 17:00 .
drwxr-xr-x  13 root                  daemon                 512 Jan 28 14:45 ..
drwxrwx---  29 cld  www                   1024 Jan 30 07:00 nextcloud-data
drwxr-x---   3 cld  www                    512 Dec 12 16:59 www

$ ls -al /var/www/htdocs/cld/nextcloud-data/                                                                
total 892
drwxrwx---  29 cld  www      1024 Jan 30 07:00 .
drwx---r-x   6 root                  wheel     512 Dec 12 17:00 ..
-rw-r--r--   1 cld  www       324 Dec 11 15:24 .htaccess
-rw-r--r--   1 cld  www         0 Dec 11 15:24 .ocdata
drwxr-xr-x   2 cld  www       512 Dec 14 23:21 __groupfolders
drwxr-xr-x  11 cld  www       512 Dec 12 23:19 appdata_ocb6rmomguf3
drwxr-xr-x   2 cld  www       512 Dec 12 17:48 files_external
(...)
-rw-r-----   1 cld  www    252294 Jan 31 11:45 nextcloud.log
-rw-r--r--   1 cld  www     15212 Jan 30 07:00 nextcloud.log.0.gz
-rw-r--r--   1 cld  www     15445 Jan 30 02:00 nextcloud.log.1.gz
-rw-r--r--   1 cld  www     18023 Jan 29 21:00 nextcloud.log.2.gz
-rw-r--r--   1 cld  www     15358 Jan 28 23:00 nextcloud.log.3.gz
-rw-r--r--   1 cld  www     16143 Jan 28 17:00 nextcloud.log.4.gz
-rw-r--r--   1 cld  www     14995 Jan 27 23:00 nextcloud.log.5.gz
-rw-r--r--   1 cld  www     13555 Jan 26 14:00 nextcloud.log.6.gz
(...)

$ ls -al /var/www/htdocs/cld/www/                                                                           
total 12
drwxr-x---   3 cld  www     512 Dec 12 16:59 .
drwx---r-x   6 root                  wheel   512 Dec 12 17:00 ..
drwxr-xr-x  14 cld  www    1024 Jan 28 22:12 nextcloud

$ ls -al /var/www/htdocs/cld/www/nextcloud/                                                                 
total 232
drwxr-xr-x  14 cld  www   1024 Jan 28 22:12 .
drwxr-x---   3 cld  www    512 Dec 12 16:59 ..
-rw-r--r--   1 cld  www   2928 Dec 11 15:24 .htaccess
-rw-r--r--   1 cld  www    163 Dec 10 11:21 .user.ini
drwxr-xr-x  32 cld  www   1024 Dec 10 11:26 3rdparty
-rw-r--r--   1 cld  www  12063 Dec 10 11:21 AUTHORS
-rw-r--r--   1 cld  www  34520 Dec 10 11:21 COPYING
drwxr-xr-x  52 cld  www   1536 Jan 28 14:27 apps
drwxr-xr-x   2 cld  www    512 Jan 31 01:36 config
-rw-r--r--   1 cld  www   3650 Dec 10 11:21 console.php
drwxr-xr-x  18 cld  www    512 Dec 10 11:26 core
-rw-r--r--   1 cld  www   4979 Dec 10 11:21 cron.php
-rw-r--r--   1 cld  www    156 Dec 10 11:21 index.html
-rw-r--r--   1 cld  www   3172 Dec 10 11:21 index.php
drwxr-xr-x   6 cld  www    512 Dec 10 11:21 lib
-rw-r--r--   1 cld  www    283 Dec 10 11:21 occ
drwxr-xr-x   2 cld  www    512 Dec 10 11:21 ocm-provider
drwxr-xr-x   2 cld  www    512 Jan  3 19:07 ocs
drwxr-xr-x   2 cld  www    512 Dec 10 11:21 ocs-provider
-rw-r--r--   1 cld  www   2969 Dec 10 11:21 public.php
-rw-r--r--   1 cld  www   5139 Dec 10 11:21 remote.php
drwxr-xr-x   4 cld  www    512 Dec 10 11:21 resources
-rw-r--r--   1 cld  www     26 Dec 10 11:21 robots.txt
drwxr-xr-x  12 cld  www    512 Dec 10 11:24 settings
-rw-r--r--   1 cld  www   2232 Dec 10 11:21 status.php
drwxr-xr-x   3 cld  www    512 Dec 10 11:21 themes
drwxr-xr-x   2 cld  www    512 Dec 10 11:23 updater
-rw-r--r--   1 cld  www    363 Dec 10 11:25 version.php

As you seen:

  • The folder NC datas ‘nextcloud-data’ is outside the web root ‘www’ ot the site.
  • The file ‘.ocdata’ is in the folder NC datas.

If I chmod 0644 on file ‘nextcloud.log’, when i re-run php-7.2 occ, occ chmod 0640!
Egual, i test to chmod 0755 on NC datas folder, the occ gives chmod 0770!

# su -l cld
$ cd /var/www/htdocs/cld/www/nextcloud/
$ php-7.2 occ -h
PHP Warning:  fileperms(): stat failed for /htdocs/cld/nextcloud-data/nextcloud.log in /var/www/htdocs/cld/www/nextcloud/lib/private/Log/File.php on line 140
{"reqId":"WqJ8GvMcA4hG9EMQgs6m","level":3,"time":"2019-01-31T10:15:29+00:00","remoteAddr":"","user":"--","app":"PHP","method":"","url":"--","message":"fileperms(): stat failed for \/htdocs\/cld\/nextcloud-data\/nextcloud.log at \/var\/www\/htdocs\/cld\/www\/nextcloud\/lib\/private\/Log\/File.php#140","userAgent":"--","version":"15.0.0.10"}
{"reqId":"WqJ8GvMcA4hG9EMQgs6m","level":2,"time":"2019-01-31T10:15:29+00:00","remoteAddr":"","user":"--","app":"no app in context","method":"","url":"--","message":"Temporary directory \/var\/www\/tmp is not present or writable","userAgent":"--","version":"15.0.0.10"}
Votre répertoire n'est pas valide
Assurez-vous que le répertoire de données contient un fichier ".ocdata" à sa racine.

Impossible de créer le dossier "data"
Ce problème est généralement résolu en donnant au serveur web un accès en écriture au répertoire racine. Voir https://docs.nextcloud.com/server/14/go.php?to=admin-dir_permissions

An unhandled exception has been thrown:
Exception: Environment not properly prepared. in /var/www/htdocs/cld/www/nextcloud/lib/private/Console/Application.php:166
Stack trace:
#0 /var/www/htdocs/cld/www/nextcloud/console.php(95): OC\Console\Application->loadCommands(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#1 /var/www/htdocs/cld/www/nextcloud/occ(11): require_once('/var/www/htdocs...')
#2 {main}PHP Warning:  fileperms(): stat failed for /htdocs/cld/nextcloud-data/nextcloud.log in /var/www/htdocs/cld/www/nextcloud/lib/private/Log/File.php on line 140
{"reqId":"WqJ8GvMcA4hG9EMQgs6m","level":3,"time":"2019-01-31T10:15:30+00:00","remoteAddr":"","user":"--","app":"PHP","method":"","url":"--","message":"fileperms(): stat failed for \/htdocs\/cld\/nextcloud-data\/nextcloud.log at \/var\/www\/htdocs\/cld\/www\/nextcloud\/lib\/private\/Log\/File.php#140","userAgent":"--","version":"15.0.0.10"}
{"reqId":"WqJ8GvMcA4hG9EMQgs6m","level":3,"time":"2019-01-31T10:15:30+00:00","remoteAddr":"","user":"--","app":"PHP","method":"","url":"--","message":"chmod(): No such file or directory at \/var\/www\/htdocs\/cld\/www\/nextcloud\/lib\/private\/Log\/File.php#141","userAgent":"--","version":"15.0.0.10"}

And I repeat: I’ve 0 problem to run correctly with the webui of NC! (all functions into the website run correctly)

nobody can really help me to understand why occ malfunction?!

if i cant resolve, i cant update NC. Very bad!

One day, maybe… someone will help me!
really, futur hope?

The solve is explain: https://chargen.one/h3artbl33d/fixing-nextcloud-on-openbsd-with-a-chroot

In Fr: https://blog.stephane-huc.net/systeme/openbsd/nextcloud#chroot-php

1 Like