web-dev-qa-db-fra.com

Laravel 5.2: La classe Process repose sur proc_open, qui n'est pas disponible sur votre installation PHP

J'utilise cron job pour effectuer une opération CRUD en utilisant laravel Task Scheduling. Sur localhost et sur mon serveur d'hébergement de partage, cela a bien fonctionné pendant des mois jusqu'à récemment, je reçois cette erreur lorsque j'exécute cron job sur mon serveur d'hébergement de partage. Je n'ai apporté aucune modification au code sur mon serveur d'hébergement de partage.

[2017-07-14 09:16:02] production.ERROR: exception 'Symfony\Component\Process\Exception\RuntimeException' with message 'The Process class relies on proc_open, which is not available on your PHP installation.' in /home/xxx/xx/vendor/symfony/process/Process.php:144
Stack trace:

Mais sur localhost, cela fonctionne bien. Sur la base de mes résultats en ligne, j'ai essayé ce qui suit.

  1. Contacté ma société d'hébergement pour supprimer le formulaire proc_open disable PHP fonctions.
  2. La société d'hébergement a fourni un fichier php.ini personnalisé. Je supprime toutes les fonctions disable_fun
  3. Le serveur d'hébergement de partage a été redémarré et le cache a été vidé

Rien de tout cela n'a résolu le problème. Je ne suis pas sûr de la prochaine étape à essayer car le même projet fonctionne correctement sur différents serveurs d'hébergement de partage.

11
Seunope

Après plusieurs semaines à essayer de résoudre cette erreur. Les correctifs suivants ont fonctionné

  1. Projet de mise à niveau de Laravel 5.2 à 5.4
  2. Sur CPanel en utilisant "Select Php version" set PHP version to 7
  3. Ou sur CPanel en utilisant "MultiPHP Manager", définissez PHP sur ea-php70

Maintenant, le travail cron fonctionne sans problème. J'espère que ça aidera quelqu'un.

9
Seunope

Laravel 6 et supérieur (erreur proc_open)

C'est à cause du service de rapport d'erreurs Flare activé en mode débogage. Il existe une solution pour cela.

Publier le fichier de configuration de flare php artisan vendor:publish --tag=flare-config

et en config/flare.php

Ensemble

'collect_git_information' => false 
'reporting' => [
     'anonymize_ips' => true,
     'collect_git_information' => false,
     'report_queries' => true,
     'maximum_number_of_collected_queries' => 200,
     'report_query_bindings' => true,
     'report_view_data' => true,
],
8
Mahdi Bashirpour

Lorsque le service de rapport d'erreurs Flare est activé en mode débogage, vous verrez cette erreur

La solution est:

Publier un fichier de configuration de flare

php artisan vendor:publish --tag=flare-config

dans config/flare.php Set:

'reporting' => [
        'anonymize_ips' => true,
        'collect_git_information' => false,
        'report_queries' => true,
        'maximum_number_of_collected_queries' => 200,
        'report_query_bindings' => true,
        'report_view_data' => true,
    ],



'send_logs_as_events' => false,
2

Pour moi, la suppression de la version en cache du fichier config.php résout le problème (Laravel 6). allez dans bootstrap/cache/config.php et supprimez le fichier. N'oubliez pas non plus de changer APP_URL en votre adresse de domaine. PHP version devrait être comme requis par laravel version.


pour l'hôte partagé si vous ne pouvez pas modifier php.ini, vous devez utiliser laravel 5.8.

2
reza jafari