Forum général.général [Résolu] Problème NextCloud nginx

Posté par  . Licence CC By‑SA.
Étiquettes :
1
19
mar.
2021

Salut,
J’ai une instance de nextcloud depuis quelques temps, voir un temps certains. J’ai commencé sur Jessie.
Mais j’ai eu un problème de version de php5 qui nécessité fpm. Donc j’avais suivi un tuto avec lequel j’ai installé des .deb pour ça.
Au final mon instance marchait bien. Je voulais passer sur une version plus récente, celle-ci me réclame php 7. J’ai mis à jour ma distribution, mais nginx continue à utiliser la version 5 installée à base de dpkg.
Hier soir, j’ai craqué, j’ai viré les paquets php5 (installé local). Depuis, j’ai une page 502 bad gateway…

J’avoue que je voudrais régler ce problème. Mais je ne sais pas trop par où commencer. Le fichier du site dans site-enabled à l’air correct. Le nginx.conf m’a l’air correct.

Comment je peux faire pour avancer ? apache2 est installé également, mais il est éteint et je ne pense pas que ça puisse perturber.

Dans les log, je n’ai rien vu qui m’aide.

Si quelqu’un a un peu de temps pour m’aiguiller, je suis preneur.

Résolution

Mon problème initiale était de mettre à jour NextCloud de la version 13 vers la version 14.
La version 14 nécessite php7.

J’ai enlevé les paquets php5.

À ce moment, nginx me renvoyait une erreur 502.
Pour résoudre ce problème, j’ai modifié le nom de la socket unix pour php-fpm.

Ensuite, je n’arrivais plus à afficher le site.
En exécutant à la main l’outil de maintenance, j’ai eu des exceptions.
Il a fallu installer quelques paquet tel que php-zip sur la machine.

J’ai ensuite upgradé à la main. sudo -u www-data php occ upgrade

Tout semble marcher à présent.

Merci à tous pour votre aide précieuse.

  • # php7.0-fpm

    Posté par  . Évalué à 3.

    J’ai une erreur lié à php fpm :

    2021/03/19 19:40:03 [crit] 3134#3134: *1 connect() to unix:/run/php7.0-fpm.sock failed (2: No such file or directory) while connecting to upstream, client: 86.215.87.34, server: host.domain.org, request: "GET /index.php/apps/files/?dir=/&fileid=56 HTTP/1.1", upstream: "fastcgi://unix:/run/php7.0-fpm.sock:", host: "host.domain.org"
    

    Le nom dans le fichier site enabled était mauvais… j’ai remplacé par /run/php/php7.0-fpm.sock.

    Maintenant, j’ai une erreur d’accès au FS… je jète un œil.

    • [^] # Re: php7.0-fpm

      Posté par  . Évalué à 3.

      Maintenant, j’ai une erreur d’accès au FS… je jète un œil.

      2021/03/19 19:49:42 [error] 3293#3293: *6 directory index of "/home/…/nextcloud/" is forbidden, client: 86.215.87.34, server: host.domain.org, request: "GET / HTTP/1.1", host: "host.domain.org"
      

      Pourtant, les droits me semble correct…

      $ ls -l
      drwxr-xr-x 14 www-data www-data 4,0K déc.  19 19:09 nextcloud
      $

      Il y a peut être des droits pour php7-fpm ?

      • [^] # Re: php7.0-fpm

        Posté par  (site Web personnel) . Évalué à 2.

        Bonjour,

        Je t'invite à regarder les fichiers de configuration de php-fpm que tu trouveras sous /etc/php/7.0/fpm/ (sous Debian, mais peut-être sous /etc/php-fpm ailleurs … ou un truc du genre).

        Là, tu pourras trouver sous quel utilisateur php-fpm lance les scripts et où il stocke ses journaux (chez moi - Debian - c'est le fichier /var/log/php7.3-fpm.log). Là aussi, consulter le journal te donnera plus d'informations.

        Sur le problème de droits d'accès, vérifie aussi les répertoires parents de .../nextcloud : il faut que www-data ait les droits rx sur chacun des répertoires parents.

        Bon courage !

        • [^] # Re: php7.0-fpm

          Posté par  . Évalué à 2. Dernière modification le 19/03/21 à 23:30.

          La machine est sous stretch, je voulais d’abord redémarrer, avant de faire un saut de version.

          Le log de php-fpm est :

          [19-Mar-2021 21:06:37] NOTICE: fpm is running, pid 567
          [19-Mar-2021 21:06:37] NOTICE: ready to handle connections
          [19-Mar-2021 21:06:37] NOTICE: systemd monitor interval set to 10000ms
          

          Quand je fais un grep --color user <fichier php_conf>
          Je n’obtiens que : user = www-data ce qui me semble cohérent avec ma configuration sur le système de fichier.

          J’ai vérifié les droits, je suis bien en r-x pour tous, (766) avec comme user: www-data et group: www-data.

          À moins que l’unité systemd lance le php-fpm sous un autre user, je vois pas.

          Ajout:
          J’ai fait un ps sur le process du log de php-fpm :

          $ ps -ef | grep 567
          root       567     1  0 21:06 ?        00:00:00 php-fpm: master process (/etc/php/7.0/fpm/php-fpm.conf)
          www-data   735   567  0 21:06 ?        00:00:00 php-fpm: pool www
          www-data   736   567  0 21:06 ?        00:00:00 php-fpm: pool www
          $ 
          

          À part le « master process », l’utilisateur semble correct.

          J’ai forcément raté un truc plus ou moins stupide.

  • # Version php 7

    Posté par  (site Web personnel) . Évalué à 2. Dernière modification le 19/03/21 à 22:21.

    Essaye de changer la version de php7.

    Pourquoi bloquer la publicité et les traqueurs : https://greboca.com/Pourquoi-bloquer-la-publicite-et-les-traqueurs.html

  • # Nginx/nextcloud/php

    Posté par  . Évalué à 5.

    Au final mon instance marchait bien. Je voulais passer sur une version plus récente, celle-ci me réclame php 7. J’ai mis à jour ma distribution, mais nginx continue à utiliser la version 5 installée à base de dpkg.

    au dela de mettre à jour ton PHP et la distribution par la meme occasion pour passer de jessie (debian8) à stretch (debian9) puis à buster (debian10)

    il faut aussi mettre à jour nextcloud pour que le code écrit dedans soit compatible avec php7, sinon ca plante.

    j'ai eu le cas hier, en voulant migrer un site web avec des modules fait main chez un client.

    ben le code marche plus en passant de debian8/php5 à debian9/php7 car certains bouts de codes doivent etre réécrit.

    si nextcloud ne se lance plus, le Nginx ne le trouve pas, et te répond bad gateway

    pour diagnostiquer, tu peux essayer de te connecter directement à ton nextcloud plutot que de passer par le Nginx

    • [^] # Re: Nginx/nextcloud/php

      Posté par  . Évalué à 2.

      En gros, ma version de nextcloud fonctionne sur php5, et refuse de faire la mise à jour car je n’avais pas php7…

      Mais du coup, une fois que j’ai reconfiguré mon php en php7, le nextcloud ne fonctionne pas et nécessiterait un php5… c’est un peu le serpent qui se mord la queue.

      D’après mon version.php je suis en version 13 :

      <?php 
      $OC_Version = array(13,0,12,1);
      $OC_VersionString = '13.0.12';
      $OC_Edition = '';
      $OC_Channel = 'stable';
      $OC_VersionCanBeUpgradedFrom = array (
        'nextcloud' => 
        array (
          '12.0' => true,
          '13.0' => true,
        ),
        'owncloud' => 
        array (
        ),
      );
      $OC_Build = '2019-02-27T20:30:52+00:00 f47c8bd0bd9e4086b935d2b8a2d2c78f0341fef0';
      $vendor = 'nextcloud';

      Donc si je télécharge la version 14 et que je la décompresse dans le répertoire ça devrait repartir ?

      • [^] # Re: Nginx/nextcloud/php

        Posté par  . Évalué à 2.

        aujourd'hui on en est à nextcloud 21

        et il y a des procédures de mises à jour
        https://docs.nextcloud.com/server/21/admin_manual/maintenance/upgrade.html

        • [^] # Re: Nginx/nextcloud/php

          Posté par  . Évalué à 2. Dernière modification le 20/03/21 à 17:17.

          Oui, mais il y a la base de donnée, si je mets à jour directement à la 21, je risque pas des erreurs de migration ?

          L’objectif c’est de monter de version version par version.

          • [^] # Re: Nginx/nextcloud/php

            Posté par  . Évalué à 2.

            L’objectif c’est de monter de version version par version.

            Dans la doc How to upgrade ils conseillent de passer version par version…

            Du coup, il faut passer 13.0.12 -> 14.0.0 -> 14.0.1 -> 14.0.2, etc. ou 13.0.12 -> 14.0.14.

            • [^] # Re: Nginx/nextcloud/php

              Posté par  . Évalué à 2.

              Les URLs « How to upgrade » contienne le numéro de la version cible, si je regarde la 14, ils proposent de lancer deux scripts occ pour modifier des informations dans la base.

              J’ai sauvegarder ma version 13, je vais dumpper ma base, je tente le coup…

        • [^] # Re: Nginx/nextcloud/php

          Posté par  . Évalué à 2.

          J’ai remplacé ma version 13 par une version 14, mais j’ai une erreur lors de l’execution php.

          Dois-je tenter de passer directement à buster pour avoir php7.3 ?

          root@host:/home/nextcloud/nextcloud# php --version
          PHP 7.0.33-0+deb9u10 (cli) (built: Oct  6 2020 17:08:28) ( NTS )
          Copyright (c) 1997-2017 The PHP Group
          Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
              with Zend OPcache v7.0.33-0+deb9u10, Copyright (c) 1999-2017, by Zend Technologies
          root@host:/home/nextcloud/nextcloud# sudo -u www-data php occ maintenance:mode --on
          An unhandled exception has been thrown:
          Error: Call to undefined function OC\App\simplexml_load_file() in /home/nextcloud/nextcloud/lib/private/App/InfoParser.php:64
          Stack trace:
          #0 /home/nextcloud/nextcloud/lib/private/App/AppManager.php(380): OC\App\InfoParser->parse('/home/nextcloud...')
          #1 /home/nextcloud/nextcloud/lib/private/legacy/app.php(551): OC\App\AppManager->getAppInfo('files', false, NULL)
          #2 /home/nextcloud/nextcloud/lib/private/AppFramework/App.php(65): OC_App::getAppInfo('files')
          #3 /home/nextcloud/nextcloud/lib/private/legacy/app.php(236): OC\AppFramework\App::buildAppNamespace('files')
          #4 /home/nextcloud/nextcloud/lib/private/legacy/app.php(119): OC_App::registerAutoloading('files', '/home/nextcloud...')
          #5 /home/nextcloud/nextcloud/lib/base.php(654): OC_App::loadApps(Array)
          #6 /home/nextcloud/nextcloud/lib/base.php(1068): OC::init()
          #7 /home/nextcloud/nextcloud/console.php(46): require_once('/home/nextcloud...')
          #8 /home/nextcloud/nextcloud/occ(11): require_once('/home/nextcloud...')
          #9 {main}
          root@host:/home/nextcloud/nextcloud#
          • [^] # Re: Nginx/nextcloud/php

            Posté par  (site Web personnel) . Évalué à 3.

            Essaie cela avant : sudo apt-get install php-xml

            https://www.php.net/manual/fr/simplexml.installation.php#122043

            Jérôme.

            • [^] # Re: Nginx/nextcloud/php

              Posté par  . Évalué à 2.

              Effectivement, c’est un peu mieux. Il me propose d’avancer avec deux paquets supplémentaires.

              Je continue.

              sudo -u www-data php occ maintenance:mode --on
              Nextcloud or one of the apps require upgrade - only a limited number of commands are available
              You may use your browser or the occ upgrade command to do the upgrade
              PHP module zip not installed.
              Please ask your server administrator to install the module.
              
              PHP module mbstring not installed.
              Please ask your server administrator to install the module.
              
              An unhandled exception has been thrown:
              Exception: Environment not properly prepared. in /home/nextcloud/nextcloud/lib/private/Console/Application.php:166
              Stack trace:
              #0 /home/nextcloud/nextcloud/console.php(95): OC\Console\Application->loadCommands(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
              #1 /home/nextcloud/nextcloud/occ(11): require_once('/home/nextcloud...')
              #2 {main}
              • [^] # Re: Nginx/nextcloud/php

                Posté par  . Évalué à 3.

                Après installation de php-zip et php-mbstring ça a fonctionné. Je suis en mode maintenance.

                Je vais updater la bd, et relancer le serveur.

                Je suis d’anniv. ce midi, je reviendrai vous tenir au courant.

              • [^] # Re: Nginx/nextcloud/php

                Posté par  . Évalué à 2.

                Bon, après avoir lancé occ update, qui a fait le boulot semble-t-il correctement, remis le site en maintenance off, je n’ai toujours pas d’affichage. Juste une erreur 403 :’(

                $ tail -f /var/log/nginx/error.log
                2021/03/21 17:27:56 [error] 29018#29018: *525 directory index of "/home/nextcloud/nextcloud/" is forbidden, client: 86.215.87.34, server: host.domain.org, request: "GET / HTTP/1.1", host: "host.domain.org"
                2021/03/21 17:30:25 [error] 29018#29018: *527 directory index of "/home/nextcloud/nextcloud/" is forbidden, client: 86.215.87.34, server: host.domain.org, request: "GET / HTTP/1.1", host: "host.domain.org"
                2021/03/21 17:38:36 [error] 29018#29018: *544 directory index of "/home/nextcloud/nextcloud/" is forbidden, client: 86.215.87.34, server: host.domain.org, request: "GET / HTTP/1.1", host: "host.domain.org"
                

                et

                $  tail -f /var/log/nginx/access.log
                ip.ip.ip.ip - [21/Mar/2021:17:38:36 +0100] "GET / HTTP/1.1" 403 5 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0"
                

                Pourtant, si je fais un sudo -u www-data bash j’accède à tous les fichiers dans le répertoire nextcloud.

                J’ai fait un chown -R www-data:www-data /var/www juste au cas où, mais ça n’a rien changé.

                • [^] # Re: Nginx/nextcloud/php

                  Posté par  . Évalué à 3.

                  Une heure et un ajout echo('Test'); plus un error_log('test'); dans index.php. J’ai eu une erreur et depuis ça marche avec une erreur d’intégrité de fichier… sans doute mes modifications.

                  Voilà.
                  Merci à tous pour votre aide.

                  • [^] # Re: Nginx/nextcloud/php

                    Posté par  . Évalué à 3.

                    à l'avenir, tu peux aussi essayer d'installer yunohost conjointement à nextcloud, les mises à jour se font généralement bien, et ça simplifie quand même beaucoup l'administration !

                    • [^] # Re: Nginx/nextcloud/php

                      Posté par  . Évalué à 3.

                      Oui, j’ai essayé. Mon problème est la migration de la base de donnée… mon nextcloud est beaucoup plus ancien que mon yunohost. Un autre problème pour la migration est le fait que yunohost met ses utilisateurs… mais c’est bien, sur un de mes serveurs, c’est yunohost qui a fait la mise à jour stretch vers buster. J’avais quand même dû me connecter en ssh pour passer un problème sur un paquet. Mais oui, c’est plus simple.

                      • [^] # Re: Nginx/nextcloud/php

                        Posté par  . Évalué à 2.

                        oui Nextcloud (et OwnCloud avant) sont un peu tatillons vis à vis des mises à jour, si on les manques, ça complique la mise à jour.

                        Et l'intérêt encore de Yunohost, c'est que ça encourage à faire des mises à jour régulièrement justement. J'avais un serveur avec nextcloudpi, c'était pas mal, mais une fois sur trois les mises à jour nextcloud plantaient si bien qu'au bout d'un moment, je ne faisais plus les maj, maintenant que je suis passé à Yunohost ça va beaucoup mieux…

                        D'ailleurs pour la migration je suis repassé sur une installation neuve de nextcloud, j'ai un peu galéré pour tout migrer (en particulier l'agenda, avec tous les événements)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.