Scribble at 2023-09-22 11:14:02 Last modified: 2023-09-22 15:37:46

添付画像

というわけで、AWS にサイトを引っ越ししているのだが、いぜんとして HTML ファイルが php-fpm にパースされない。PHP ファイルは php-fpm に通っているので、httpd と php-fpm が連携できていることは確かなのだが、幾つかのディレクティブで html の拡張子を追加してみても特に変化がない。

なお、これを1週間ほどやってみてわかったこととして、"AddType" を設定すると逆にファイルをダウンロードしてしまうということだ(これまで単純に MIME タイプの連携を設定しているものと思っていたが、AddType は DSO 版つまりモジュール版の PHP で使うディレクティブなので、こんな余計な設定を加えるとウェブ・サーバが混乱してファイルを吐き出してしまうわけだ)。よって、もう php-fpm の環境で AddType を使うのはご法度ということになる。

それからオンラインで調べていて非常に混乱させられるのが、php-fpm のバージョンによってディレクティブの書き方が違っていたり(mod_php は DSO 版の設定だから /etc/httpd/conf.d/php.conf に書かれているディレクティブを全て削除しろと解説しているものすらある。そんなわけない。なぜなら、mod_php を読み込んでいなければ何を設定しようと無効だからだ。消そうが消すまいが php-fpm を使っていて mod_php を読み込んでいない以上、「消せ」なんてことをわざわざ解説するのは完全に蛇足だ)、/etc/php-fpm.d/www.conf の設定内容を全く無視して解説しているページも多いし、おまけに上記のように(リンクはしない)a2enmod のように特殊なツールを使って(a2enmod なんて、サーバ・エンジニアでも知ってる人の方が圧倒的に少ない)proxy_cgi のモジュールを使えとか、まったく不要なことを説明している。そしておまけに、自分の使っているインフラや仮想環境でしか通用しないフルパスなどを書いているバカもいて、おまえら他人に説明する気がなくてメモ書きをウェブに公開してんじゃねーよと言いたくなるようなクズばかりだ。

こういうのを見ても、Docker だの胡散臭いギリシア語のツール(Kubonoosamu だか Kuuneru だか Kubernetes とか言ったか)を始めとするオモチャで LAMP を覚えたというだけの連中がいかに特殊な環境しか知らないかということが分かるし、その自覚がなくてものを書いているという思い上がった「社会貢献」野郎が、いかに逆にノイズを撒き散らしているかが分かる。一般論と自分の環境だけに当てはまる話とを区別できないのは、色々な環境で仕事をしていない証拠である以前に、技術文書を書く資格や素養がない証拠なのだ。

で、肝心の php-fpm だが、さきほど解決した。予定していた全てのサイトを AWS へ移設して、HTML ファイルで PHP も動くようになった。

<FilesMatch \.(html|php)$>

SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"

</FilesMatch>

このように VirtualHost のコンテクストへ追加すると、そのサイトで HTML と PHP を php-fpm に取り次いでくれるようになる。そして、ここでも繰り返しておくが、たとえばソケット・ファイルへのパスなどは環境によって異なるため、これを一般論として振りかざしてはいけない。Linux の多くのディストリビューションでは、たとえば "/var/run/php-fpm/php-fpm.sock" のようになっていたりする筈だ。そして、もちろんだがパスが合っていないと 503 エラーになったりする。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook