Configurar dinĂ¡micamente PHP para seguridad de hilos--enable-maintainer-zts, o use yum para instalar pthreads?
multithreading compilation (2)
La disponibilidad de ZTS se determina durante el tiempo de compilación, por lo que no; no se puede habilitar y / o deshabilitar dinámicamente.
Es posible que pueda instalar pThreads a través de yum u otro administrador de paquetes dependiendo de su distribución, pero tenga en cuenta que "posible" no significa necesariamente que sea una opción disponible en su caso. Eso depende de si su repositorio de software tiene dicho paquete disponible, dependiendo de otra versión de PHP que tenga ZTS habilitado. Dudo mucho que este sea el caso.
¿Hay alguna manera de habilitar la seguridad de subprocesos en PHP sin volver a compilar, o usar YUM para hacer esto?
Estoy tratando de instalar pthreads y requiere que PHP haya sido compilado con --enable-maintainer-zts
. Sin embargo, no recomiendo porque me gustaría administrar mi pila PHP usando yum. Actualmente estoy usando el repo de REMI. Noté que hay un paquete php-zts, sin embargo, no hay uno disponible para mi versión PHP de 4.4 y no puedo encontrar un RPM fuente para php-zts.
¿Hay alguna manera de que pueda usar yum y habilitar la seguridad de subprocesos en PHP, así que puedo instalar pThread usando
#pecl install channel://pecl.php.net/pthreads-0.0.42
downloading pthreads-0.0.42.tgz ...
Starting to download pthreads-0.0.42.tgz (53,755 bytes)
.............done: 53,755 bytes
33 source files, building
running: phpize
Configuring for:
PHP Api Version: 20100412
Zend Module Api No: 20100525
Zend Extension Api No: 220100525
building in /var/tmp/pear-build-rootkThpG6/pthreads-0.0.42
running: /var/tmp/pthreads/configure
...
checking whether to enable Threading API... yes, shared
checking checking for ZTS... configure: error: pthreads requires ZTS, please re-compile PHP with ZTS enabled
ERROR: `/var/tmp/pthreads/configure'' failed
Como puede ver, falla, arriba, porque PHP no tiene ZTS habilitado.
Desafortunadamente, los mantenedores de paquetes de CLI no habilitan la seguridad de subprocesos en la mayoría de los paquetes de Unix. A veces se habilita para mpm de trabajo apache, pero no siempre incluye un entorno de compilación completo (de modo que pecl no funcionará).
En resumen, no hay forma de habilitar ZTS en tiempo de ejecución, es una opción de tiempo de compilación que hace que los cambios en la compilación simplemente no sean posibles después de la compilación de las fuentes.
Sin embargo, no es muy difícil instalar una copia para usted.
La ruta que toma depende en gran medida de su experiencia con su distribución y su uso previsto.
Si desea sobrescribir la instalación de su sistema con una versión segura para hilos, hay alguna información http://pthreads.org/building
Si desea construir una instalación aislada, puede encontrar información en la página de construcción en pthreads.org, adicionalmente, he estado experimentando con RPM, http://github.com/krakjoe/spex contiene un archivo rpmbuild que rodará una copia de master y master pthreads en / opt / php-pthreads con el entorno completo de compilación, incluye y todas las campanas y silbatos, sin soporte apache en la versión rpmbuild porque lo haría más complejo y enorme, incluye fpm ( también es compatible).
Usted es la primera persona con la que me he encontrado que podría aconsejarle que use el rpmbuild, ya que puede guardar el RPM para otras máquinas virtuales y solo tiene que pasar por esto una vez (hasta la próxima actualización), la desventaja de esto es, utiliza el código de borde de sangría de PHP, que actualmente está en beta ...
Espero que eso te ayude :)