質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

1216閲覧

dockerにpthreadsの追加

naonao11

総合スコア97

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2019/04/02 13:23

dockerを用いてpthreadをDLしようとしているのですが、エラーが出てきて直し方がよくわかりません。。。

dockerFile内

dockerFile

1FROM php:latest 2 3RUN apt-get update &&\ 4 apt-get install -y git &&\ 5 apt-get clean &&\ 6 rm -rf /var/lib/apt/lists/* 7RUN curl -sS https://getcomposer.org/installer | php &&\ 8 mv composer.phar /usr/local/bin/composer &&\ 9 chmod +x /usr/local/bin/composer 10RUN curl -sS https://phar.phpunit.de/phpunit.phar -o /usr/local/bin/phpunit &&\ 11 chmod +x /usr/local/bin/phpunit 12RUN docker-php-ext-install pdo_mysql 13RUN pecl install pthreads \ 14 && docker-php-ext-enable pthreads

error内容

checking checking for ZTS... configure: error: pthreads requires ZTS, please re-compile PHP with ZTS enabled ERROR: `/tmp/pear/temp/pthreads/configure' failed

ご助力よろしくお願いします。。。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

xenbeat

2019/04/03 05:16

pthreadsにはZTSが必要と言っているのだからZTS版のイメージ「php:zts」を使えば良いのでは。
naonao11

2019/04/07 13:23

xenbeatさん ありがとうございます!returned a non-zero code: 1って出てきました。。。
guest

回答1

0

ベストアンサー

まず前提として、pthreadを有効にするためにはPHPのビルド時にZTSを有効化する必要があります。
https://www.php.net/manual/ja/pthreads.requirements.php
このための方法としては、

  • PHPのソースコードから作り直す
  • ZTSが有効なDockerイメージを使う

この2つの方法があります。

後者のDockerイメージを使う方法が比較的簡単です。Docker Hub上のタグ一覧を確認すると、zts のついたもの(かつ、pthreadの動作用件を満たすPHP 7.2以上のもの)がいくつかあります。

次に、Dockerfile の書き方ですが、pecl を使ってのモジュールセットアップは正常に行えない問題が報告されています。
https://github.com/krakjoe/pthreads/issues/779
この一覧にあるコメントを参考にすると、次のような Dockerfile ができます。

FROM php:7.3-zts RUN apt-get update RUN apt-get install -y git RUN git clone https://github.com/krakjoe/pthreads -b master /tmp/pthreads RUN docker-php-ext-configure /tmp/pthreads --enable-pthreads RUN docker-php-ext-install /tmp/pthreads

あとは、build してコンテナを実行し、 php -m でモジュール一覧を確認すると、 pthread が有効になります。

投稿2019/04/28 03:32

zembutsu

総合スコア1584

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問