PHP-FPM NGinx Pthreads Linux安装

PHP-FPM NGinx Pthreads Linux installation

我正在尝试实现多个上传功能(一次上传到多个地方)。 我在 windows (XAMPP + PThreads DLL's) 上成功实现了这一点,但是在安装 PHP-FPM+php-pecl-pthreads.x86_64 并扩展线程时class 我收到错误消息:

include(Thread.php): failed to open stream: No such file or directory

我尝试添加与 php.ini 相关的所有 pthreads.so:

/usr/lib64/php/modules/pthreads.so
/usr/lib64/php-zts/modules/pthreads.so
/usr/lib64/libpthread.so
/usr/lib/gcc/x86_64-redhat-linux/4.4.4/32/libmudflapth.so
/lib64/libpthread-2.12.so

但我得到

undefined symbol: core_globals_id in Unknown on line 0

在我的 phpinfo 上,我看到线程安全被禁用。

有没有人实现这个功能,并且可以阐明如何一次上传到多个地方/在 linux.

上成功安装 pthreads

谢谢, 丹尼

对于debian/ubuntu

  1. 下载 php 源码(确保你有 deb-src)

apt-get source php5

  1. 转到那个目录

cd php5*

  1. 转到分机目录

cd ext

  1. 下载 pthreads

git clone https://github.com/krakjoe/pthreads.git

  1. 重建配置设置

cd .. && ./buildconf --force

  1. 确保配置选项中有 pthreads

./configure --help | grep pthre

  1. 运行 配置(根据您的设置更改路径)

./configure --enable-debug --enable-maintainer-zts --enable-pthreads --prefix=/usr --with-config-file-path=/etc --with-apxs2=/usr/bin/apxs2 --enable-fpm

  1. 如果需要,请访问 this 了解有关 user/group 特定选项的更多信息。

make -j2

make -j2 install

  1. 现在您将 php 编译为支持 pthreads。验证这一点:

php -m | grep pthreads

  1. 制作初始化脚本

copy sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

  1. usergroup更改为nginx在/etc/init.d/php-fpm中使用的用户名。

service nginx restart

  1. 转到你的 nginx public folder

cd <your-nginx-public-folder>

  1. touch phpinfo.php && echo "<?php phpinfo();" >> phpinfo.php

  2. 转到您的浏览器并在 http://<your url>/phpinfo.php 刚刚创建的 php 文件

    中搜索 pthreads