PKG Upgrade within IOCage Jail

jerryjharrison

Explorer
Joined
Jan 15, 2014
Messages
99
I have an IOCAGE jail that has been running NextCloud for a long time, and have been through many PKG Upgrades of the underlying components of the jail. I recently went to run the PKG Upgrade and discovered that the upgrade to PHP71-intl as well as some other components were forcing the removal of the MariaDB install. This shutsdown my NextCloud installation.

I have executed a pkg lock php71-intl for now, and will do it to the other items requiring the removal of MariaDB as a temporary solution, but was curious if anyone knew a better way to deal with this, or why in the world it is a dependency to remove this?
 

jerryjharrison

Explorer
Joined
Jan 15, 2014
Messages
99
an update to this issue...
The following packages ALL have a dependency of mariadb being removed....
libreoffice-6.0.7_4
libvisio01-0.1.6_10
libzmf-0.0.2_13
php71-intl-7.1.27
poppler-0.72.0
raptor2-2.0.15_10

WTF????
 

Jailer

Not strong, but bad
Joined
Sep 12, 2014
Messages
4,974
It's likely the dependencies were changed due to the fact that PHP 7.1 is no longer being actively supported. If this is a standard jail you should upgrade your PHP version to 7.2.

https://www.php.net/supported-versions.php
 

jerryjharrison

Explorer
Joined
Jan 15, 2014
Messages
99
That might explain one of the items, but certainly would not explain all of the items listed above...
 

Jailer

Not strong, but bad
Joined
Sep 12, 2014
Messages
4,974
If dependencies change yes it would.
 

jerryjharrison

Explorer
Joined
Jan 15, 2014
Messages
99
Can you recommend the best practice to upgrade php? Is it best to just uninstall 7.1, install 7.2? I know you have to tell apache somewhere that the php version/location has changed.
 

Jailer

Not strong, but bad
Joined
Sep 12, 2014
Messages
4,974
What I do is run pkg info and save the output to a text file. I reduce that output down to just the php entries and then remove all the extra spaces and descriptions so I can copy it and run it as a single command. Once I've done that run pkg delete php71 and it will remove all the php associated packages. After that's done it's a simple matter of adding pkg install php72 to the beginning of the text file you created and then copy the entire contents over to putty and run it. You're configuration files will still be intact and you're php version will be updated. After it completes the installation run service php-fpm restart and the new version will be running.

Now I don't know if that's the proper way of doing it but that's what I've done and it works just fine going from php71 to php72.
 

jerryjharrison

Explorer
Joined
Jan 15, 2014
Messages
99
I got 7.3 php up and running as evidenced by php info...

Screen Shot 2019-04-16 at 5.20.47 AM.png


However, the main application in this jail will not start, which is Nextcloud. I am getting the following error in the httpd-error.log

root@nextcloud:/var/log # tail httpd-error.log

[Tue Apr 16 05:19:03.025318 2019] [php7:error] [pid 8804] [client 66.199.23.246:15735] PHP Fatal error: Uncaught Doctrine\\DBAL\\DBALException: Failed to connect to the database: An exception occured in driver: could not find driver in /usr/local/www/apache24/data/nextcloud/lib/private/DB/Connection.php:64\nStack trace:\n#0 /usr/local/www/apache24/data/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(429): OC\\DB\\Connection->connect()\n#1 /usr/local/www/apache24/data/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(389): Doctrine\\DBAL\\Connection->getDatabasePlatformVersion()\n#2 /usr/local/www/apache24/data/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(328): Doctrine\\DBAL\\Connection->detectDatabasePlatform()\n#3 /usr/local/www/apache24/data/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(623): Doctrine\\DBAL\\Connection->getDatabasePlatform()\n#4 /usr/local/www/apache24/data/nextcloud/lib/private/DB/Connection.php(151): Doctrine\\DBAL\\Connection->setTransactionIsolation(2)\n#5 /usr/local/www/apache24/data/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DB in /usr/local/www/apache24/data/nextcloud/lib/private/DB/Connection.php on line 64

Clearly there is some connection to the database that I am missing in the upgrade to 7.3, but I cannot figure out a location to correct. If you have any ideas, I would appreciate it.
 

Jailer

Not strong, but bad
Joined
Sep 12, 2014
Messages
4,974
Does nextcloud support php 7.3 yet? I've heard some developer chatter on other platforms that php 7.3 is quite different and requires a lot of coding changes for existing software to be compatible with it.
 
Top