2016-07-04 18 views
2

I Verwendung pThreads mit PHP 7.0.8 (ZTS) (manuell zusammengestellt und konfiguriert) möchte Ich habe folgende Konfiguration hinzuzufügen beim Kompilieren von PHP:Pthread mit PHP 7.0.8 (ZTS)

--enable-maintainer-zts \ 
--enable-pthreads=shared \ 
--with-tsrm-pthreads \ 

HINWEIS: fpm läuft, pid 25546

HINWEIS: ready-Verbindungen mit pecl

ich hinzufügen pthread Erweiterung zu behandeln: pecl install pthreads-3.1.6 und ich füge extension = pthreads.so in meine php.ini ein. Aber nach dem Neustart php7-fpm, php-fpm nicht ausgeführt wird:

HINWEIS: Finishing ...

HINWEIS: Verlassen bye-bye!

Ich habe einen 502 nginx Fehler.

Wie kann ich diese Erweiterung in meiner php.ini ohne Ausfahrt php-fpm hinzufügen?

Antwort

2

Sie sollten PHP-CLI für die Verwendung Pthreads verwenden. Sie können eine zweite php.ini Konfiguration für CLI erstellen:

  • Zuerst kopieren, wenn nicht der php.ini zu php-cli.ini existieren:

    cp /PATH_OF_YOUR_PHP_INSTALLATION/php.ini /PATH_OF_PHP_INSTALLATION/php-cli.ini 
    
  • Dann installieren pThreads mit PECL

    pecl install pthreads 
    
  • Dann (wenn pHP mit --enable-maintainer-zts \ --enable-pthreads=shared \ --with-tsrm-pthreads kompiliert wird), fügen Sie die Konfiguration der Erweiterung in Ihrer pHP-cli.ini:

    echo "extension=/PATH_OF_EXTENSION/pthreads.so" >>/PATH_OF_PHP_INSTALLATION/php-cli.ini 
    
  • Finnaly, starten Sie Ihren php7-fpm Service:

    service php7-fpm restart 
    

Sie können die pthread Installation testen, arbeitet an einer Testklasse zu erstellen und führen Sie es mit php: Datei erstellen: ImportWorker.php

<?php 
class ImportWorker extends Worker { 
    private $data; 

    public function __construct($_data) { 
     $this->data = $_data;// 
    } 

    public function run(){ 
     var_dump("Worker test"); 
    } 
} 

ausführen, die: php ImportWorker.php -> Wenn Sie irgendwelche Fehler haben, tha t ist Pthreads funktioniert nicht.