[Résolu] OCC ne serait pas compatible avec PHP 7.3?

Indiquez la procédure suivie pour reproduire le problème:

  1. Exécuter le CRON en CLI avec cette commande : sudo -u www-data /usr/bin/php7.3 /var/www/html/owncloud/occ system:cron

  2. Exécuter le CRON en CLI avec cette commande : sudo -u www-data /usr/bin/php7.0 /var/www/html/owncloud/occ system:cron

Comportement attendu:
J’aimerais que le cron s’éxécute en 7.3 et non en 7.0

Comportement actuel:
Impossible d’exécuter le cron en 7.3

Configuration du serveur
Système d’exploitation: Debian
Serveur web: Apache
Serveur base de données: MySQL
Version de PHP: PHP 7.3.16
Version d’ownCloud (sur le site d’administration): ownCloud 10.3.2.2 (stable)

Contenu du config/config.php:

{
    "system": {
        "instanceid": "ocmgkg2mvi4j",
        "passwordsalt": "***REMOVED SENSITIVE VALUE***",
        "secret": "***REMOVED SENSITIVE VALUE***",
        "trusted_domains": [
            "share.loic-laffont.fr"
        ],
        "datadirectory": "\/var\/www\/html\/owncloud\/data",
        "overwrite.cli.url": "https:\/\/share.loic-laffont.fr",
        "dbtype": "mysql",
        "version": "10.3.2.2",
        "dbname": "owncloud",
        "dbhost": "localhost",
        "dbtableprefix": "oc_",
        "dbuser": "***REMOVED SENSITIVE VALUE***",
        "dbpassword": "***REMOVED SENSITIVE VALUE***",
        "logtimezone": "UTC",
        "installed": true,
        "theme": "",
        "loglevel": 2,
        "has_internet_connection": "true",
        "maintenance": false,
        "filelocking.enabled": true,
        "memcache.locking": "",
        "memcache.local": "\\OC\\Memcache\\APCu",
        "memcache.distributed": "",
        "memcached_servers": [
            [
                "localhost",
                11211
            ]
        ]
    }
}

Logs

Aspect de l’erreur CLI

sudo -u www-data /usr/bin/php7.3 /var/www/html/owncloud/occ system:cron

An unhandled exception has been thrown:
    Doctrine\DBAL\DBALException: Failed to connect to the database: An exception occured in driver: could not find driver in /var/www/html/owncloud/lib/private/DB/Connection.php:62
    Stack trace:
    #0 /var/www/html/owncloud/lib/composer/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(429): OC\DB\Connection->connect()
    #1 /var/www/html/owncloud/lib/composer/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(389): Doctrine\DBAL\Connection->getDatabasePlatformVersion()
    #2 /var/www/html/owncloud/lib/composer/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(328): Doctrine\DBAL\Connection->detectDatabasePlatform()
    #3 /var/www/html/owncloud/lib/composer/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(623): Doctrine\DBAL\Connection->getDatabasePlatform()
    #4 /var/www/html/owncloud/lib/private/DB/Connection.php(144): Doctrine\DBAL\Connection->setTransactionIsolation(2)
    #5 /var/www/html/owncloud/lib/composer/doctrine/dbal/lib/Doctrine/DBAL/DriverManager.php(172): OC\DB\Connection->__construct(Array, Object(Doctrine\DBAL\Driver\PDOMySql\Driver), Object(Doctrine\DBAL\Configuration), Object(Doctrine\Common\EventManager))
    #6 /var/www/html/owncloud/lib/private/DB/ConnectionFactory.php(143): Doctrine\DBAL\DriverManager::getConnection(Array, Object(Doctrine\DBAL\Configuration), Object(Doctrine\Common\EventManager))
    #7 /var/www/html/owncloud/lib/private/Server.php(532): OC\DB\ConnectionFactory->getConnection('mysql', Array)
    #8 /var/www/html/owncloud/lib/composer/pimple/pimple/src/Pimple/Container.php(118): OC\Server->OC\{closure}(Object(OC\Server))
    #9 /var/www/html/owncloud/lib/private/AppFramework/Utility/SimpleContainer.php(108): Pimple\Container->offsetGet('DatabaseConnect...')
    #10 /var/www/html/owncloud/lib/private/ServerContainer.php(86): OC\AppFramework\Utility\SimpleContainer->query('DatabaseConnect...')
    #11 /var/www/html/owncloud/lib/private/Server.php(1220): OC\ServerContainer->query('DatabaseConnect...')
    #12 /var/www/html/owncloud/lib/private/Server.php(406): OC\Server->getDatabaseConnection()
    #13 /var/www/html/owncloud/lib/composer/pimple/pimple/src/Pimple/Container.php(118): OC\Server->OC\{closure}(Object(OC\Server))
    #14 /var/www/html/owncloud/lib/private/AppFramework/Utility/SimpleContainer.php(108): Pimple\Container->offsetGet('AppConfig')
    #15 /var/www/html/owncloud/lib/private/ServerContainer.php(86): OC\AppFramework\Utility\SimpleContainer->query('AppConfig')
    #16 /var/www/html/owncloud/lib/private/Server.php(1150): OC\ServerContainer->query('AppConfig')
    #17 /var/www/html/owncloud/lib/private/Server.php(587): OC\Server->getAppConfig()
    #18 /var/www/html/owncloud/lib/composer/pimple/pimple/src/Pimple/Container.php(118): OC\Server->OC\{closure}(Object(OC\Server))
    #19 /var/www/html/owncloud/lib/private/AppFramework/Utility/SimpleContainer.php(108): Pimple\Container->offsetGet('AppManager')
    #20 /var/www/html/owncloud/lib/private/ServerContainer.php(86): OC\AppFramework\Utility\SimpleContainer->query('AppManager')
    #21 /var/www/html/owncloud/lib/private/Server.php(1418): OC\ServerContainer->query('AppManager')
    #22 /var/www/html/owncloud/lib/private/legacy/app.php(343): OC\Server->getAppManager()
    #23 /var/www/html/owncloud/lib/private/legacy/app.php(107): OC_App::getEnabledApps()
    #24 /var/www/html/owncloud/lib/base.php(585): OC_App::loadApps(Array)
    #25 /var/www/html/owncloud/lib/base.php(1005): OC::init()
    #26 /var/www/html/owncloud/console.php(64): require_once('/var/www/html/o...')
    #27 /var/www/html/owncloud/occ(11): require_once('/var/www/html/o...')
    #28 {main}PHP Fatal error:  Uncaught Doctrine\DBAL\DBALException: Failed to connect to the database: An exception occured in driver: could not find driver in /var/www/html/owncloud/lib/private/DB/Connection.php:62
    Stack trace:
    #0 /var/www/html/owncloud/lib/composer/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(429): OC\DB\Connection->connect()
    #1 /var/www/html/owncloud/lib/composer/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(389): Doctrine\DBAL\Connection->getDatabasePlatformVersion()
    #2 /var/www/html/owncloud/lib/composer/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(328): Doctrine\DBAL\Connection->detectDatabasePlatform()
    #3 /var/www/html/owncloud/lib/composer/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(623): Doctrine\DBAL\Connection->getDatabasePlatform()
    #4 /var/www/html/owncloud/lib/private/DB/Connection.php(144): Doctrine\DBAL\Connection->setTransactionIsolation(2)
    #5 /var/www/html/owncloud/lib/composer/doctrine/dbal/lib/Doctrine/DBAL/DriverManager.php(172): OC\DB\Connection->__construct(Array, Object(Doctrine\DBAL\Driver\ in /var/www/html/owncloud/lib/private/DB/Connection.php on line 62

Alors que la commande suivante n’affiche pas d’erreur puisque tout se déroule bien.

sudo -u www-data /usr/bin/php7.0 /var/www/html/owncloud/occ system:cron

Je me doute que c’est un problème de configuration serveur linux, mon serveur tourne bien en php7.3.
Ce script ne serait pas compatible avec cette version de PHP ?

Merci pour votre aide.

Salut,

ton soucis est bien une configuration manquante, je penche ici pour pdo_mysql qui manquerait dans ta version PHP7.3. Dans tous les cas c’est un module pour te connecter à ta base de données qui doit manquer.

Peux-tu comparer le retour des commandes suivantes ?

/usr/bin/php7.0 -m

/usr/bin/php7.3 -m

2 Likes

Salut, Merci pour ton aide.

En effet un “apt install php7.3-mysql” plus tard j’obtenais ceci :

/usr/bin/php7.3 -m |grep my
mysqli
mysqlnd
pdo_mysql

Bon Honnêtement il manquait également :

  • php7.3-xml
  • php7.3-intl
  • php7.3-mb
  • php7.3-GD
  • php7.3-cURL
  • php7.3-zip

Autant dire que l’installation était bancale :slight_smile:
Encore Merci et Portez-vous bien pendant ce confinement.

1 Like

Salut,

de rien, avec plaisir @llaffont1
Parfait, bien joué !
Merci bon courage pour le confinement également :slight_smile: