2016-07-12 2 views
1

私はremiリポジトリのFedora 23で利用可能なPHP7のバージョンを使用していて、うまくいきました。私は最近、Pthreadsを動作させるためにPHP7をソースからコンパイルする必要があることを発見しました。これには、--enable-maintainer-ztsというオプションでPHPをコンパイルする必要もあります。 私はPHPをコンパイルするためにどのようなオプションを使用しても、PHPがOSによって実行されているときには使用されていないことを発見しました。ターミナルでphp -iを使用すると、スレッドセーフがオフになっていることがわかります。設定したその他のオプションは表示されません。 私はremiバージョンのPHPをアンインストールしましたが、違いはありませんでした。しかし、私のマシンからremiバージョンのPHPを削除した後、PHPがまだPHP-FPMで動作していたという奇妙な状況に陥りました。これは、ソースからビルドしたPHP7のバージョンを実行しているが、私のディレクティブは無視されていることを意味するように見えます。そうでない場合は、DNFを削除したときPHPが実際に私のマシンから削除されていないことを除いて、これがどのように可能か他には考えられません(同時にソースからインストールしたバージョンは無視されたか、 )。私がコンパイル指示文を無視してソースからPHP7をビルドすると、なぜですか?

私は最後の一つであると、いくつかの異なるビルドコマンドを使用している:私はPHPのためのさまざまなファイルのタイムスタンプを調べると

./configure --prefix=/usr/local/php --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-gd --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-mysqli --with-pdo-mysql --with-mysqli --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-openssl --with-fpm-user=nginx --with-fpm-group=nginx --with-libdir=/usr/lib64/php-zts --enable-ftp --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpm --enable-maintainer-zts --enable-debug 

、ほとんどはこれまでのところ、私が構築された日付/時刻を一致していませんソースからのPHP。

私はここで何が欠けているかについて誰かが直感を持っていますか?

答えて

0

、レミ(またはFedoraの)でパッケージをビルドする必要はありませんリポジトリはZTSのビルドとpthreadの拡張子を持っている、あなたはZTS-PHPのコマンドを使用する必要があります(pthreadsの拡張子のみCLIである)

# yum --enablerepo=remi-php70 install php-pecl-pthreads 
... 
# zts-php -m | grep thread 
pthreads 

かを確認することができますレビリポジトリのPECL extension RPM status(pthreadsが利用可能です)

+0

ZTS設定オプションが有効になっているPHP7のバージョンをインストールするにはどうすればよいですか?私はすでにphp-pecl-pthreadsパッケージをインストールしていますが、それはPHPでスレッドオプションを有効にするつもりはありませんか?私はその拡張機能をインストールし、PHP自体でスレッドの安全性を有効にする必要があると思った。私が今までに見つけたことは、PHPを再コンパイルする必要があると言います。ここでは:http://stackoverflow.com/questions/17272439/how-to-enable-zts-on-php – tunist

+0

上記のように、remiリポジトリのパッケージにはZTSビルドがあります。したがって、php-cliパッケージは、 "php"(NTS)と "zts-php"(ZTS = Thread Safe)コマンドを提供します。 –

+0

ああ、私は 'thread safety' )出力ページ、私はスレッドの安全性が有効になっていないと思った。私はちょうどremi repo経由で利用可能なPHP7.0.8のバージョンを再インストールし、私はまだスレッドの安全性がphpinfo()で無効になっていることがわかります。私がzts-php -mコマンドを実行したとき、私はコマンドラインから結果 'pthreads'を得ました。 – tunist

関連する問題