/var/log/httpd/error.logに出力される。
1 |
(2)No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /run/php-fpm/www.sock |
Docker起動時には、/run/php-fpm/ディレクトリが作られていなかったので、このように作った。
また権限がばがばにしたが同じエラーが出てしまう。
1 2 3 |
RUN mkdir -p /run/php-fpm/ RUN chown apache.apache /run/php-fpm/ RUN chmod 777 /run/php-fpm/ |
ただ、これ、execでログインしてphp-fpmコマンドたたくと正常動作したので、結論CMDや起動スクリプトにphp-fpmコマンドを組みこめばよいだけだったみたい。
supervisorという複数プロセスを同時管理できるミドルがあるのでこれをインストールするといいみたい。
CMDだとコマンド1つのみしか扱えず、複数取り扱う場合にはシェルスクリプトをかます必要がある。
この手間を省ける。
サンプルこのような感じになる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# 必要なパッケージのインストール RUN apt-get update && apt-get install -y supervisor # Supervisor設定 COPY <<EOF /etc/supervisor/conf.d/supervisord.conf [supervisord] nodaemon=true [program:httpd] command=/usr/sbin/httpd -D FOREGROUND [program:php-fpm] command=php-fpm EOF # スーパーバイザーでApacheとPHP-FPMを起動 CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/conf.d/supervisord.conf"] |