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

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

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

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

Docker

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

Q&A

3回答

24702閲覧

Dockerでphp.iniを書き換える

atemu

総合スコア94

PHP

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

Docker

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

0グッド

0クリップ

投稿2017/03/05 01:03

Dockerfileからphp用のコンテナを作ってます。
phpの色々インストールはRUNで出来ると思うのですが、php.iniの置き換えがいまいちどんな感じでやるのが良いのかわかりません。
正規表現でいちいち変えるのも手間だと思うので、最終系のphp.iniを保存して、そのファイルに置き換えるって感じでしょうか…?

Docker初心者なのでもしよろしければDockerfileをそのまま見せて頂けると嬉しいですm(__)m

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

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

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

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

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

guest

回答3

0

Apache+php(とmysqlコンテナーをつなぐ)のimageで使ってるのを貼っておきます
内容確認してみてください
Dockerfileと同じ場所にapache2.confとphp.iniを用意しています

text

1FROM php:7.1-apache 2RUN a2enmod rewrite 3RUN apt-get update \ 4 && apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libpng12-dev libjpeg-dev libmcrypt-dev \ 5 && docker-php-ext-install pdo_mysql mysqli mbstring iconv mcrypt \ 6 && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \ 7 && docker-php-ext-install -j$(nproc) gd 8COPY apache2.conf /etc/apache2/ 9COPY php.ini /usr/local/etc/php/ 10RUN usermod -u 1000 www-data && groupmod -g 1000 www-data

もしくは、php.iniをsedコマンドで書き換えるよう、Dockerfileに書くのもありです

開発用であれば、最近はphp.iniは、ローカル側にマウントして書き換えたりしてます
手元にphp.iniを用意して

$ docker run -v php.ini:/usr/local/etc/php/php.ini php:7.1-apache

とかしてあげると、手元のphp.iniがコンテナ内で参照されるので、
Dockerfile内でphp.iniを含める必要ないです

投稿2017/03/24 06:19

tmasao

総合スコア105

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

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

0

自分はインストールされるバージョンのphp.iniを書き換えたもので置き換える方法を取っています。

Dockerfile内では以下のような感じです。

COPY my-php.ini /etc/php.ini

投稿2017/03/16 14:21

編集2017/03/16 14:22
m.f.

総合スコア81

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

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

0

正規表現でいちいち変えるのも手間だと思うので、最終系のphp.iniを保存して、そのファイルに置き換えるって感じでしょうか…?

php のバージョンが変わって、行がずれたときとかのことを考えて、patch コマンドを使うというのが良いかもしれません。

しかし、Dockerfile だと所詮 RUN コマンドでシェル起動になってしまいます。もう少し、高レベルなプロビジョニング(OSにいろいろなものをインストールしたり設定したりすること)言語を使うというのが別案になります。たとえば、 ansible などを使えば、パッチをあてる、データベースを設定するなど、高レベルで書けるので、可読性や汎用性が向上すると思います。ansible の playbook は Docker コンテナ以外のVPSや仮想化サーバに利用できますが、Dockerfile では Docker コンテナしか作れません。

参考:Ansibleで楽々!Dockerコンテナを構築をしよう
Ansible でインストール (php 5.6)

投稿2017/03/06 09:27

mit0223

総合スコア3401

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問