Problems after upgrading to PHP7.3

    • Problems after upgrading to PHP7.3

      I've upgraded to PHP7.3 and run into trouble with OMV.

      I can get the login page displayed, but after entering my credentials I get an error:

      Source Code

      1. Error #0:
      2. OMV\Rpc\Exception: Failed to connect to socket: No such file or directory in /usr/share/php/openmediavault/rpc/
      3. Stack trace:
      4. #0 /var/www/openmediavault/rpc/ OMV\Rpc\Rpc::call('UserMgmt', 'authUser', Array, Array, 2, true)
      5. #1 [internal function]: OMVRpcServiceSession->login(Array, Array)
      6. #2 /usr/share/php/openmediavault/rpc/ call_user_func_array(Array, Array)
      7. #3 /usr/share/php/openmediavault/rpc/ OMV\Rpc\ServiceAbstract->callMethod('login', Array, Array)
      8. #4 /usr/share/php/openmediavault/rpc/proxy/ OMV\Rpc\Rpc::call('Session', 'login', Array, Array, 3)
      9. #5 /var/www/openmediavault/rpc.php(45): OMV\Rpc\Proxy\Json->handle()
      10. #6 {main}

      Running from the command line interface omv-engined -dI get:

      Source Code

      1. root@NAS:~# omv-engined -d
      2. omv-engined[15461]: Daemon process started (pid=15462)
      3. root@NAS:~# Registered data models:
      4. conf.service
      5. conf.service.afp
      6. conf.service.afp.share
      7. conf.service.ftp
      8. conf.service.ftp.modban.rule
      9. conf.service.ftp.modtls
      10. conf.service.ftp.share
      11. conf.service.letsencrypt
      12. conf.service.letsencrypt.domain
      13. conf.service.mysql
      14. conf.service.nfs
      15. conf.service.nfs.share
      16. conf.service.nginx
      17. conf.service.nginx.server
      18. conf.service.phpfpm.pool
      19. conf.service.rsync.job
      20. conf.service.rsyncd
      21. conf.service.rsyncd.module
      22. conf.service.smartmontools
      23. conf.service.smartmontools.device
      24. conf.service.smartmontools.job
      25. conf.service.smb
      26. conf.service.smb.share
      27. conf.service.ssh
      28. conf.service.zeroconf.service
      29. conf.system.apt.distribution
      30. conf.system.backup
      31. conf.system.certificate.ssh
      32. conf.system.certificate.ssl
      33. conf.system.cron.job
      35. conf.system.filesystem.mountpoint
      36. conf.system.filesystem.quota
      37. conf.system.hdparm
      38. conf.system.mdadm.device
      39. conf.system.monitoring.perfstats
      45. conf.system.notification.notification
      46. conf.system.omvextras
      47. conf.system.powermngmnt
      48. conf.system.sharedfolder
      49. conf.system.sharedfolder.privilege
      50. conf.system.syslog.remote
      51. conf.system.time
      53. conf.system.usermngmnt.homedir
      54. conf.system.usermngmnt.user
      55. conf.webadmin
      56. rpc.afp.setsettings
      57. rpc.afp.setshare
      58. rpc.apt.getchangelog
      59. rpc.apt.setsettings
      60. rpc.apt.upgrade
      61. rpc.apt.upload
      62. rpc.backup.set
      63. rpc.certificatemgmt.copysshid
      64. rpc.certificatemgmt.create
      65. rpc.certificatemgmt.createssh
      66. rpc.certificatemgmt.set
      67. rpc.certificatemgmt.setssh
      68. rpc.common.devicefile
      69. rpc.common.getlist
      70. rpc.common.objectuuid
      71. rpc.config.applychanges
      72. rpc.config.revertchanges
      73. rpc.cron.getlist
      74. rpc.cron.set
      75. rpc.diskmgmt.sethdparm
      76. rpc.diskmgmt.wipe
      77. rpc.emailnotification.set
      78. rpc.exec.getoutput
      79. rpc.exec.isrunning
      80. rpc.exec.stop
      81. rpc.filesystemmgmt.create
      82. rpc.filesystemmgmt.delete
      83. rpc.filesystemmgmt.enumeratemountedfilesystems
      84. rpc.filesystemmgmt.hasfilesystem
      85. rpc.filesystemmgmt.mount
      86. rpc.filesystemmgmt.resize
      87. rpc.filesystemmgmt.umount
      88. rpc.folderbrowser.get
      89. rpc.fstab.getbydir
      90. rpc.fstab.getbyfsname
      91. rpc.fstab.set
      92. rpc.ftp.setmodbanrule
      93. rpc.ftp.setmodtlssettings
      94. rpc.ftp.setsettings
      95. rpc.ftp.setshare
      96. rpc.iptables.setrule
      97. rpc.iptables.setrules
      98. rpc.iptables.setrules6
      99. rpc.letsencrypt.setdomain
      100. rpc.letsencrypt.setsettings
      101. rpc.locate.executesearch
      102. rpc.logfile.clear
      103. rpc.logfile.getcontent
      104. rpc.logfile.getlist
      105. rpc.mysql.dumpdatabasetosharedfolder
      106. rpc.mysql.resetpassword
      107. rpc.mysql.setsettings
      108. rpc.mysql.uploadbackup
      117. rpc.nfs.setsettings
      118. rpc.nfs.setshare
      119. rpc.nginx.getlog
      120. rpc.nginx.set
      121. rpc.nginx.setsettings
      122. rpc.notification.isenabled
      123. rpc.notification.set
      124. rpc.omvextras.dobackports
      125. rpc.omvextras.docommand
      126. rpc.omvextras.dohold
      127. rpc.omvextras.doproxmox
      128. rpc.omvextras.setrepo
      129. rpc.perfstats.set
      130. rpc.phpfpm.set
      131. rpc.plugin.install
      132. rpc.plugin.remove
      133. rpc.plugin.upload
      134. rpc.powermgmt.set
      135. rpc.powermgmt.setscheduledjob
      136. rpc.quota.set
      137. rpc.raidmgmt.add
      138. rpc.raidmgmt.create
      139. rpc.raidmgmt.delete
      140. rpc.raidmgmt.getdetail
      141. rpc.raidmgmt.getslaves
      142. rpc.raidmgmt.grow
      143. rpc.raidmgmt.remove
      144. rpc.rsync.set
      145. rpc.rsyncd.setmodule
      146. rpc.rsyncd.setsettings
      147. rpc.session.login
      148. rpc.sharemgmt.delete
      149. rpc.sharemgmt.getfileacl
      150. rpc.sharemgmt.getprivilegesbyrole
      151. rpc.sharemgmt.set
      152. rpc.sharemgmt.setfileacl
      153. rpc.sharemgmt.setprivileges
      154. rpc.sharemgmt.setprivilegesbyrole
      158. rpc.smb.setsettings
      159. rpc.smb.setshare
      160. rpc.ssh.set
      161. rpc.syslog.setsettings
      162. rpc.system.reboot
      163. rpc.system.setdate
      164. rpc.system.settimesettings
      165. rpc.system.shutdown
      166. rpc.system.standby
      167. rpc.usermngmt.authuser
      168. rpc.usermngmt.deletegroup
      169. rpc.usermngmt.deleteuser
      170. rpc.usermngmt.getgroup
      171. rpc.usermngmt.getuser
      172. rpc.usermngmt.importgroup
      173. rpc.usermngmt.importuser
      174. rpc.usermngmt.setgroup
      175. rpc.usermngmt.setsettings
      176. rpc.usermngmt.setuser
      177. rpc.usermngmt.setuserbycontext
      178. rpc.webgui.setpassword
      179. rpc.webgui.setsettings
      180. rpc.zeroconf.set
      181. Registered filesystem backends:
      182. btrfs
      183. exfat
      184. ext
      185. ext2
      186. ext3
      187. ext4
      188. fuseblk
      189. hfsplus
      190. iso9660
      191. jfs
      192. msdos
      193. none
      194. ntfs
      195. reiserfs
      196. udf
      197. ufs
      198. umsdos
      199. vfat
      200. xfs
      201. PHP Fatal error: Uncaught Error: Class 'DOMDocument' not found in /usr/share/php/openmediavault/config/
      202. Stack trace:
      203. #0 /usr/share/php/openmediavault/config/ OMV\Config\DatabaseBackend->load()
      204. #1 /usr/share/php/openmediavault/config/ OMV\Config\Database->__construct()
      205. #2 /usr/share/openmediavault/engined/rpc/ OMV\Config\Database::getInstance()
      206. #3 /usr/share/php/openmediavault/rpc/ OMV\Engined\Rpc\MySql->__construct()
      207. #4 /usr/share/php/openmediavault/rpc/ OMV\Rpc\ServiceManager->__construct()
      208. #5 /usr/sbin/omv-engined(377): OMV\Rpc\ServiceManager::getInstance()
      209. #6 {main}
      210. thrown in /usr/share/php/openmediavault/config/ on line 110
      211. omv-engined[15462]: PHP Fatal error: Uncaught Error: Class 'DOMDocument' not found in /usr/share/php/openmediavault/config/
      212. Stack trace:
      213. #0 /usr/share/php/openmediavault/config/ OMV\Config\DatabaseBackend->load()
      214. #1 /usr/share/php/openmediavault/config/ OMV\Config\Database->__construct()
      215. #2 /usr/share/openmediavault/engined/rpc/ OMV\Config\Database::getInstance()
      216. #3 /usr/share/php/openmediavault/rpc/ OMV\Engined\Rpc\MySql->__construct()
      217. #4 /usr/share/php/openmediavault/rpc/ OMV\Rpc\ServiceManager->__construct()
      218. #5 /usr/sbin/omv-engined(377): OMV\Rpc\ServiceManager::getInstance()
      219. #6 {main}
      220. thrown in /usr/share/php/openmediavault/config/ on line 110
      221. PHP Fatal error: Uncaught Error: Class 'DOMDocument' not found in /usr/share/php/openmediavault/config/
      222. Stack trace:
      223. #0 /usr/share/php/openmediavault/config/ OMV\Config\DatabaseBackend->load()
      224. #1 /usr/share/php/openmediavault/config/ OMV\Config\Database->__construct()
      225. #2 /usr/share/openmediavault/engined/rpc/ OMV\Config\Database::getInstance()
      226. #3 /usr/share/php/openmediavault/rpc/ OMV\Engined\Rpc\MySql->__construct()
      227. #4 /usr/share/php/openmediavault/rpc/ OMV\Rpc\ServiceManager->__construct()
      228. #5 /usr/sbin/omv-engined(377): OMV\Rpc\ServiceManager::getInstance()
      229. #6 {main}
      230. thrown in /usr/share/php/openmediavault/config/ on line 110
      Display All
      My php -modules are:

      Source Code

      1. root@NAS:~# php -modules
      2. [PHP Modules]
      3. bcmath
      4. calendar
      5. Core
      6. ctype
      7. curl
      8. date
      9. dom
      10. exif
      11. fileinfo
      12. filter
      13. ftp
      14. gd
      15. gettext
      16. hash
      17. iconv
      18. imagick
      19. intl
      20. json
      21. libsmbclient
      22. libxml
      23. mbstring
      24. mysqli
      25. mysqlnd
      26. openssl
      27. pcntl
      28. pcre
      29. PDO
      30. pdo_mysql
      31. pdo_pgsql
      32. pdo_sqlite
      33. pgsql
      34. Phar
      35. posix
      36. readline
      37. Reflection
      38. session
      39. shmop
      40. SimpleXML
      41. smbclient
      42. sockets
      43. sodium
      44. SPL
      45. sqlite3
      46. standard
      47. sysvmsg
      48. sysvsem
      49. sysvshm
      50. tokenizer
      51. wddx
      52. xml
      53. xmlreader
      54. xmlwriter
      55. xsl
      56. Zend OPcache
      57. zip
      58. zlib
      59. [Zend Modules]
      60. Zend OPcache
      Display All
      I wanted to upgrade PHP to enable me to use the latest updates to NextCloud. I previously had NextCloud running (without using Docker) and was happy with the setup. NextCloud started nagging about an upgrade, and that upgrade is not available with PHP7.0. The webserver is nginx. I think I've got that working okay because I can, at least, see the OMV login page.

      Thanks to anyone who can help.
    • I had set up OMV and installed NextCloud using a guide on this forum: NextCloud Instalation. It did not employ Docker.

      I don't want to revert to PHP7.0 because it means I cannot use the latest version of NextCloud.

      I'd like to understand why OMV is having this problem, and how to resolve it. I'm sure there are plenty of others who may have followed the same guide linked above, and are now in a similar situation. We follow the guide to installing NextCloud as is published in this forum, and then we can't update NextCloud because the latest version relies on PHP7.2+, and we can't update PHP because it breaks OMV. Stating that Docker exists to avoid this problem is great advice, and it would have been great if it was included in the original guide. But it wasn't. And it worked. So it's not very helpful so say we ought to have used Docker in the first place.

      Can we have OMV use PHP7.0 and NextClous use PHP7.3? Any suggestions as to how to achieve that?

      Or, better still, can we get OMV to work with newer versions of PHP? Surely that would be the ideal outcome. What is it about OMV that means that it is "tight" to whatever version of PHP that Debian ships with?
    • You are missing the entire point of using docker.

      The most recent version of Nextcloud is 16.0.3 as is the most recent version in the Nextcloud docker. Whatever version of PHP it requires is provided within the docker image. There is no need to upgrade PHP on OMV.

      In other words, all the required dependencies (and specific versions of those dependencies) needed to run a program are provided within the docker image itself.

      It Just Works™
      Google is your friend and Bob's your uncle!

      OMV 4.x - ASRock Rack C2550D4I - 16GB ECC - Silverstone DS380
    • I am not missing the point of Docker. I get it. But Docker was not a part of the guide that I followed. As I said, it would have been great if the Docker advice had been included in that guide. But it was not. And now I have NextCloud installed without Docker. Saying that I ought to have used Docker is not helpful at this point.
    • No one at this point is gonna come with a patch of omv backend to work with both php versions assuming that’s the way to correct it. V5 is to be released very soon, v4 is gonna get archived 6 months after v5 release.
      The guide maybe at the time of published required only default php. Core dependencies are not to be touched. I’ll update or hide that thread guide. in the present days of docker and lxc is pointless the effort to install nextcloud that way.

      Reading the guide it says for omv2 , way old.
      New wiki
      chat support at #openmediavault@freenode IRC | Spanish & English | GMT+10 broadcast channel
      openmediavault discord server
    • Any particular guide can not and will not provide every possible method to achieve the same goal. Or I could have just said you followed an obsolete guide.

      Saying you should use docker for this is helpful, but only if you want to run the latest version of Nextcloud. Do you or don't you? Make a decision and get on with it.
      Google is your friend and Bob's your uncle!

      OMV 4.x - ASRock Rack C2550D4I - 16GB ECC - Silverstone DS380
    • After I installed OMV, I came to this forum, searched for "install nextcloud" and I followed the guide that resulted. How was I supposed to know it was the "wrong guide"? (See the note below about that wording.) If it's so wrong, why not remove it? Saying that I should use Docker is helpful if I were to start over again, but it's not an answer to my question and it's no help to me, or anyone who followed the guide I've linked to. It seems you're being really unhelpful and rude to someone who has simply followed a guide that is a part of this forum. I appreciate that you many not have written or endorsed that guide, but I don't think such an obstinate response is warranted.

      So... the question remains... can anything be done to get OMV to work with PHP7.3? Or is there a way to have OMV use PHP7.0 while also having NextCloud use PHP7.3? If the answer is no, just say so. If you don't know, just say so. Preferably politely.

      Edit: The post above appears to have been edited to change "you followed the wrong guide" to "you followed an obsolete guide".

      The post was edited 1 time, last by Kritta: Clarifying my post after a preceding post was edited. ().

    • Kritta wrote:

      can anything be done to get OMV to work with PHP7.3? Or is there a way to have OMV use PHP7.0 while also having NextCloud use PHP7.3?
      OMV 4.x will never work with php7.3. OMV 5.x does work with php7.3 but not 7.0. That said, both versions of php can be installed on the system at the same time but unless you are very good with certain repos and pinning, one of the versions will not get patched = bad.

      As mentioned in previous posts, docker allows you to satisfy the requirements without compromising the host system. You search yielded the old guide (which we shouldn't delete) but the pinned threads in the Guides forum will point you to the docker tutorial. nextcloud is definltey something that should be run in docker in my opinion.
      omv 4.1.23 arrakis | 64 bit | 4.15 proxmox kernel | omvextrasorg 4.1.15 plugins source code and issue tracker - github

      Please read this before posting a question and this and this for docker questions.
      Please don't PM for support... Too many PMs!