PHP-FPM NGinx Pthreads Linux安装

时间:2015-02-22 10:44:07

标签: multithreading file-upload pthreads php

我尝试实现多种上传功能(一次上传到多个位置)。 我在Windows上成功实现了这一点(XAMPP + PThreads DLL' s)但是在安装PHP-FPM + php-pecl-pthreads.x86_64时,并且扩展了Thread类,我得到了错误:

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。

感谢, 丹尼

1 个答案:

答案 0 :(得分:1)

对于debian / ubuntu

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

    apt-get source php5

    1. 去那个目录
    2.   

      cd php5*

      1. 转到ext dir
      2.   

        cd ext

        1. 下载pthreads
        2.   

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

          1. 重建配置设置
          2.   

            cd .. && ./buildconf --force

            1. 确保您在配置选项中有pthreads
            2.   

              ./configure --help | grep pthre

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

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

                1. 如果您需要,请访问this以获取有关用户/组特定选项的详细信息。
                2.   

                  make -j2

                       

                  make -j2 install

                  1. 现在你将使用pthreads支持编译php。验证这一点:
                  2.   

                    php -m | grep pthreads

                    1. 制作初始化脚本
                    2.   

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

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

                        service nginx restart

                        1. 转到你的nginx公共傻瓜
                        2.   

                          cd <your-nginx-public-folder>

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

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