pthread是一个php的多线程扩展,在编译安装的时候提示说没有zts那个依赖,需要重新编译php
然后我就下载了php5.4.18,编译安装之前我们先把一些依赖安装上
那,enable-maintainer-zts --enable-embed是pthread必须的,然后make && make install 这样php就被安装到/opt/php5下面了。然后接着cd pthread,phpize ./configure –with-php-config=/opt/php5/bin/php-config,make && make install 这样就在/opt/php5/lib/php/extensions/debug-zts-20100525里生成了pthreads.so,这样扩展就生成了,然后还得再php.ini里配置
此时我发现怎么米有php.ini呢,原来源码编译是没有自动生成php.ini的,我就去源码里拷贝了一个(源码里有两个配置文件),然后改一下extension_dir的路径,在吧extension=pthreads.so添加进去。这里已经算完成了,但可能还是有问题,你php -m一下看发现并没有pthreads,你写个程序也不能使用pthreads,但是奇怪的是在web server里面执行phpinfo发现了pthreads扩展,而且可以使用。这是为什么呢。然后我用全路径/opt/php5/bin/php -m 发现可以加载了,哦,这时候我想到了,问题出现在php 和/opt/php5/bin/php 不是一个命令,于是我把php这个软连接指向/opt/php5/bin/php,问题就没有了,下面是我编译安装php的一些参数,不看也罢,网上copy的
sudo apt-get install autoconf
sudo apt-get install libxml2-dev
sudo apt-get install bzip2
sudo apt-get install libcurl3-openssl-dev
apt-get install php5-gd
sudo apt-get install libcurl4-gnutls-dev
sudo apt-get install libjpeg-dev
sudo apt-get install libpng-dev
sudo apt-get install libxpm-dev
sudo apt-get install libfreetype6-dev
sudo apt-get install libt1-dev
sudo apt-get install libmcrypt-dev
sudo apt-get install libmysql++-dev
sudo apt-get install libxslt1-dev
apt-get install libbz2-dev
./configure --prefix=/opt/php5 --with-config-file-path=/opt/php5/etc --with-curl --with-pear --with-gd --with-jpeg-dir --with-png-dir --with-zlib --with-xpm-dir --with-freetype-dir --with-t1lib --with-mcrypt --with-mhash --with-mysql --with-mysqli --enable-pdo --with-pdo-mysql --with-openssl --with-xmlrpc --with-xsl --with-gettext --with-fpm-user=www-data --with-fpm-group=www-data --enable-fpm --enable-exif --enable-wddx --enable-zip --enable-bcmath -with-bz2 --enable-calendar --enable-ftp --enable-mbstring --enable-soap --enable-sockets --enable-shmop --enable-dba --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-debug --enable-maintainer-zts --enable-embed