6
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Docker初心者による、初心者のためのDocker入門 #4

Posted at

DockerでapacheとMemcachedを起動してPHP5.4から接続してみる

はい。前回からPHPのバージョンが下がっただけです。
ですがこういったいまさらバージョンあげらんねーーよ、なシステムのお守りをせねばならない立場の方も多いのではないでしょうか。
Dockerを使えばレガシーなミドルウェアをコンテナに封じ込めつつ、ホスト側は地道にアップデートし守りを固めることも可能です。というかそういったしがらみを抱えたシステムのセキュリティ向上のための唯一解じゃないかと思っています。現実的に考えて。

Compose

内容は前回と変わりません。apache-phpとmemcachedコンテナを立ち上げます。

docker-compose

まずはCompseの設定

docker-compose.yml
apache-php:
    build: ./apache-php
    ports:
        - "80:80"
    links:
        - memcached

memcached:
    image: memcached:1.4

ディレクトリ構成

これも前回と変わりません。

project_dir
+- docker-compose.yml
+-apache-php
    +-Dockerfile
    +-index.php

php5.4用のDockerfile

ここが違います。peclでインストールできるので、はっきりいってphp7より楽です。 枯れたものの強みですね。

apache-php/Dockerfile
FROM php:5.4-apache
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get install -y libmemcached-dev zlib1g-dev \
    && pecl install memcached \
    && docker-php-ext-enable memcached

検証用のindex.phpも変わらず

index.php
<?php
$m = new Memcached();
$m->addServer('memcached', 11211);

$m->set('int', 99);
$m->set('string', 'a simple string');
$m->set('array', array(11, 12));
/* expire 'object' key in 5 minutes */
$m->set('object', new stdclass, time() + 300);


var_dump($m->get('int'));
echo "<br>";
var_dump($m->get('string'));
echo "<br>";
var_dump($m->get('array'));
echo "<br>";
var_dump($m->get('object'));
echo "<br>";
?>

実行

docker-compose up -d

ブラウザでアクセス

Screen Shot 2016-07-22 at 17.02.46.png

OK!

後始末

docker-compose stop     # 全てのコンテナ停止
docker-compose rm       # 全てのコンテナ削除

phpのバージョンを変えるのも楽々。
Dockerいいですね〜。

6
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?