株式会社ヴァンデミックシステム

Blog

<スポンサーリンク>

/var/log/httpd/error.logに出力される。

(2)No such file or directory: AH02454: FCGI: attempt to connect to Unix domain socket /run/php-fpm/www.sock

Docker起動時には、/run/php-fpm/ディレクトリが作られていなかったので、このように作った。
また権限がばがばにしたが同じエラーが出てしまう。

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つのみしか扱えず、複数取り扱う場合にはシェルスクリプトをかます必要がある。
この手間を省ける。

サンプルこのような感じになる。

# 必要なパッケージのインストール
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"]

<スポンサーリンク>

コメントを残す

Allowed tags:  you may use these HTML tags and attributes: <a href="">, <strong>, <em>, <h1>, <h2>, <h3>
Please note:  all comments go through moderation.

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)