Projet

Général

Profil

Tâche #37041

Fonctions php manquantes pour Nextcloud

Ajouté par Benjamin Bohard il y a 8 mois. Mis à jour il y a 3 mois.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
Début:
07/11/2023
Echéance:
% réalisé:

0%

Restant à faire (heures):
0.0

Révisions associées

Révision 66926dd5 (diff)
Ajouté par Benjamin Bohard il y a 8 mois

Nextcloud demande des extensions PCNTL.

Ref #37041

Révision 9cb1e0e2 (diff)
Ajouté par Benjamin Bohard il y a 6 mois

Différencier les contextes d’exécution cli et apache pour PHP

Ref #37041

Révision d8e71c98 (diff)
Ajouté par Benjamin Bohard il y a 6 mois

Ajustement des fonctions PHP à ne pas désactiver

Ref #37041

Révision 9fd4b6f5 (diff)
Ajouté par Benjamin Bohard il y a 6 mois

Fonction pour l’administration des applications symfony

Ref #37041

Révision a9bd03dc (diff)
Ajouté par Benjamin Bohard il y a 5 mois

La liste des fonctions utilisées en mode cli n’est pas connue.

Ref #37041

Révision ffb8e214 (diff)
Ajouté par Benjamin Bohard il y a 5 mois

N’autoriser que les fonctions dont l’usage est attesté

Ref #37041

Historique

#1 Mis à jour par Benjamin Bohard il y a 8 mois

  • Statut changé de Nouveau à En cours

#2 Mis à jour par Benjamin Bohard il y a 8 mois

  • Statut changé de En cours à À valider

#3 Mis à jour par Benjamin Bohard il y a 6 mois

Les fonctions ne seraient utiles que pour php-cli. On peut fournir deux fichiers de configuration différents pour les contextes cli et apache.

#4 Mis à jour par Benjamin Bohard il y a 6 mois

  • Statut changé de À valider à En cours

#5 Mis à jour par Benjamin Bohard il y a 6 mois

  • Statut changé de En cours à À valider

#6 Mis à jour par Philippe Carre il y a 6 mois

Régression provoquée par l'ajout de cli/php.ini
Sur les Seth 2.8.1 , variante geo_ide , au reconfigure suivant les dernières MaJ, le service geo_ide est HS.

root@set-geoide-md:~#  systemctl status geo-ide-base-php.service
● geo-ide-base-php.service - geo-ide-base-resque - files resqueue
     Loaded: loaded (/lib/systemd/system/geo-ide-base-php.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Thu 2025-10-09 14:43:11 CEST; 5min ago
    Process: 447555 ExecStart=/usr/share/php/geo-ide-base/protected/yiic resque start (code=exited, status=0/SUCCESS)
    Process: 447559 ExecStop=/usr/share/php/geo-ide-base/protected/yiic resque stop (code=exited, status=1/FAILURE)

oct. 09 14:43:11 set-geoide-md systemd[1]: geo-ide-base-php.service: Scheduled restart job, restart counter is at 183.
oct. 09 14:43:11 set-geoide-md systemd[1]: Stopped geo-ide-base-resque - files resqueue.
oct. 09 14:43:11 set-geoide-md systemd[1]: geo-ide-base-php.service: Start request repeated too quickly.
oct. 09 14:43:11 set-geoide-md systemd[1]: geo-ide-base-php.service: Failed with result 'exit-code'.
oct. 09 14:43:11 set-geoide-md systemd[1]: Failed to start geo-ide-base-resque - files resqueue.
oct. 09 14:43:14 set-geoide-md systemd[1]: geo-ide-base-php.service: Start request repeated too quickly.
oct. 09 14:43:14 set-geoide-md systemd[1]: geo-ide-base-php.service: Failed with result 'exit-code'.
oct. 09 14:43:14 set-geoide-md systemd[1]: Failed to start geo-ide-base-resque - files resqueue.

LE fonctionnement normal est celui-ci:

root@ddt45-geoide:~# systemctl status geo-ide-base-php.service
● geo-ide-base-php.service - geo-ide-base-resque - files resqueue
     Loaded: loaded (/lib/systemd/system/geo-ide-base-php.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2025-07-08 18:23:08 CEST; 3 months 1 days ago
      Tasks: 6 (limit: 9337)
     Memory: 867.2M
     CGroup: /system.slice/geo-ide-base-php.service
             ├─819 resque-1.2: Waiting for adminQ
             ├─820 resque-1.2: Waiting for dataQ
             ├─821 resque-1.2: Waiting for downloadQ
             ├─823 resque-1.2: Waiting for indexQ
             ├─824 resque-1.2: Waiting for notifQ
             └─829 resque-1.2: Waiting for publishQ

Au final , c'est bien dans cli/php.ini , la ligne

disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_unshare,

qui pose pb. En la commentant le service geo-ide-base-php démarre normalement.

Est-ce qu'il faut éoliser cette valeur , est-ce que toute la ligne est à commenter ou est-ce qu'on peut ne désactiver que la (les) fonction qui provoque l'erreur ?
On a un doute sur pcntl_fork.

#7 Mis à jour par Thierry Jambou il y a 5 mois

Bonjour

J'ai testé en faisant un patch sur le fichier /usr/share/eole/creole/distrib/php-cli.ini où j'ai seult supprimé la commande pcntl_fork de la liste des fonctions désactivées.

J'ai testé et cela fonctionne. Peut-être que cette modification suffit plutôt que de supprimer toutes les fonctions de la ligne "disable_functions =" ?

Le contenu du patch :

--- distrib/php-cli.ini 2025-10-06 13:48:14.000000000 +0200
+++ modif/php-cli.ini   2025-10-10 14:32:25.555107287 +0200
@@ -296,7 +296,7 @@
 ; This directive allows you to disable certain functions for security reasons.
 ; It receives a comma-delimited list of function names.
 ; http://php.net/disable-functions
-disable_functions = pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_unshare,
+disable_functions = pcntl_alarm,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_unshare,

 ; This directive allows you to disable certain classes for security reasons.
 ; It receives a comma-delimited list of class names.
@@ -349,7 +349,7 @@

 ; Allows to include or exclude arguments from stack traces generated for exceptions
 ; Default: Off
-; In production, it is recommended to turn this setting on to prohibit the output
+; In production, it is recommended to turn this setting on to prohibit the output
 ; of sensitive information in stack traces
 zend.exception_ignore_args = On

#8 Mis à jour par Thierry Jambou il y a 5 mois

Bon, finalement, il vaut mieux enlever (et de fait réactiver) toutes les fonctions listées sur la ligne disable_functions ...

Il nous en manque encore une, nos tests n'étaient en fait pas complets ... Au vu des problèmes générés, on préfère réactiver toutes les fonctions.

Désolé de ce nouveau changement

Thierry

#9 Mis à jour par Arnaud FORNEROT il y a 5 mois

  • Statut changé de À valider à Résolu

#10 Mis à jour par Arnaud FORNEROT il y a 3 mois

  • Statut changé de Résolu à Fermé
  • Restant à faire (heures) mis à 0.0

Formats disponibles : Atom PDF