alpineのOFFICIAL REPOSITORYを利用します。
alpine3.7導入・設定
alpine3.7をダウンロード・導入
docker pull alpine
alpine3.7起動
docker run -itd -p 80:80 イメージID
ログイン
docker exec -it コンテナID sh
パッケージアップデート
apk update
ミドルウェア導入
php7.1導入
apk add --no-cache --virtual .php7-buildapps php7 php7-fpm php7-mbstring php7-gd php7-iconv
他に必要なものがあれば適宜追加してください。
–virtualで仮の名前を付けてインストールしておきます。後で消す際にはapk del .php7-buildappsで一括削除できます。
–purgeオプションを渡せば関連する設定ファイルも削除できます。
nginx導入
apk add nginx
openrc導入
サービスで操作するために導入。centos6のserviceみたいなコマンド。
apk add openrc
導入した後おまじないが必要
sed -i 's/#rc_sys=""/rc_sys="lxc"/g' /etc/rc.conf &&\
echo 'rc_provide="loopback net"' >> /etc/rc.conf &&\
sed -i 's/^#\(rc_logger="YES"\)$/\1/' /etc/rc.conf &&\
sed -i '/tty/d' /etc/inittab &&\
sed -i 's/hostname $opts/# hostname $opts/g' /etc/init.d/hostname &&\
sed -i 's/mount -t tmpfs/# mount -t tmpfs/g' /lib/rc/sh/init.sh &&\
sed -i 's/cgroup_add_service /# cgroup_add_service /g' /lib/rc/sh/openrc-run.sh &&\rm -rf /var/cache/apk/*
おまじないしてないと、意味不明のエラーが発生する
/lib/rc/sh/openrc-run.sh: line 273: can’t create /sys/fs/cgroup/〜
awk: /etc/network/interfaces: No such file or directory
など
設定
nginx設定
vi /etc/nginx/conf.d/default.conf
location /のセクションを書き換えます。
location / {
# return 404;
root html;
index index.html index.htm;
}
nginxを再起動します。
/etc/init.d/nginx restart
ブラウザでlocalhostにアクセスして表示されればひとまず成功です。
引き続きphpを動作させる設定をします。
vi /etc/nginx/conf.d/default.conf
phpのセクションを追加します。
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
nginxを再起動します。
/etc/init.d/nginx restart
php-fpm7設定
vi /etc/php7/php-fpm.d/www.conf
;user = nobody
;group = nobody
user = nginx
group = nginx
userとgroupをnginxに書き換えます。
php-fpm7を起動します。
/etc/init.d/php-fpm7 start
php確認
/var/lib/nginx/htmlにindex.phpを置いてphpinfoが表示できれば成功です。
<?php phpinfo();