h2o設定

CentOS Stream 8

h2oの設定をしていく
あまり情報がなく悩みながら設定していったが、設定個所はあまりなく想像していたよりもずっと楽にできるようだ
h2oインストールについてはこちらを参照

ユーザー追加

useradd h2o

php-fpmの起動と自動起動

まだphp-fpmを起動していなかったので起動した

systemctl start php-fpm
systemctl enable php-fpm
systemctl status php-fpm

php-fpmの所有者変更

所有者をh2oに変更する

【2021/3/9追記】本ページの設定方法だと、php-fpmが再起動されるたびに設定した権限がリセットされてしまうので、こちらの方法でやること

まずはsockができていることを確認(php-fpmを起動してしばらくするとできる)

ll /var/run/php-fpm/
合計 4
-rw-r--r--  1 root root 5  3月  2 09:22 php-fpm.pid
srw-rw----+ 1 root root  0  3月  2 09:22 www.sock

www.sockができていたので、これの所有者を変更する

chown h2o. /var/run/php-fpm/www.sock

もう一度設定を確認

ll /var/run/php-fpm/
合計 4
-rw-r--r--  1 root root 5  3月  2 09:22 php-fpm.pid
srw-rw----+ 1 h2o h2o  0  3月  2 09:22 www.sock

設定ファイル作成

設定ファイルの場所は指定がなく適当な場所で良いらしい
nginxやapacheに似たような感じにしたいので/etc/h2o/h2o.confを作成することとする

すでにファイルがあったのでオリジナルを退避させておく

mv /etc/h2o/h2o.conf /etc/h2o/h2o.conf.org
vi /etc/h2o/h2o.conf


証明書はまだ取得していないので80ポートを使用する
この後wordpressやphpMyAdmin等を追加していくが、一旦はこんな感じで設定する

user: h2o
gzip: ON
file.index: [ 'index.html', 'index.php' ]

# PHPの設定
file.custom-handler:
  extension: .php
  fastcgi.connect:
    port: /var/run/php-fpm/www.sock ←先ほど確認したsockのパス
    type: unix
hosts:
  "xxxxxxxxxx.com:80": ← ホスト名
    listen:
      port: 80
    paths:
      "/":
        file.dir: /var/www/html
        redirect:
            url: /index.php/
            internal: YES
            status: 307

実行ユーザーはh2oにした
gzipは任意設定だが別のサーバーでapacheのmod_deflateを使って通信内容圧縮していたので似たようなのがないかドキュメントを見ていたところ、gzipでできそうだったので設定している
他にも任意の設定追加はいろいろあるようだったが、一旦最低限にしておきあとで必要に応じて追加していこうと思う

【2021/3/26追記】
/var/log/h2o以下にログを出力するためには追加で下記の設定がいるので追記した

access-log: /var/log/h2o/access.log
error-log: /var/log/h2o/error.log

ドキュメントルートの所有者変更

/var/www/htmlをドキュメントルートとするので、こちらの所有者をh2oに変更する

ll /var/www/
合計 8
drwxr-xr-x 2 root root 4096  8月  1  2020 cgi-bin
drwxr-xr-x 2 root root  4096  2月 26 13:49 html
chown h2o. /var/www/html
ll /var/www/
合計 8
drwxr-xr-x 2 root root 4096  8月  1  2020 cgi-bin
drwxr-xr-x 2 h2o h2o  4096  2月 26 13:49 html

h2oの起動と自動起動

systemctl start h2o
systemctl enable h2o
systemctl status h2o

webページ確認

ブラウザでhttp://[ホスト名]にアクセスする
下記のような画面が出ればOK

参考

https://blog.sus-happy.net/h2o_php7
https://www.u-1.net/2020/09/05/5677/
https://hakobe932.hatenablog.com/entry/2016/09/23/180834
https://h2o.examp1e.net/configure/http2_directives.html

コメント

タイトルとURLをコピーしました