ITインフラエンジニアの躓き

ITインフラエンジニアの色々試行錯誤した際の躓き備忘をここに記載します。日記もします。

wordpressで必要なphp関連パッケージ

概要

  • wordpressをインストールするために必要なphp関連のパッケージはphp7.4だけインストールすればいいと思っていたが足りなかった
  • 下記パッケージを追加でインストール
    • phpからmysqlを操作するためにphp74-php-mysqlnd
    • httpdphpを有効化するためにphp74-phpを追加でインストール

背景

前回の続きwordpressをインストールするために、httpdをインストール、phpのインストールが途中。 phpはそのままインストールすると別バージョンとなってしまうのでリポジトリを追加してから、php7.4のバージョンを指定してインストール。

yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum install php74

そこでふとMySQLを使用するのために連携のパッケージが必要なのでは?と思い調べるとやはりちゃんと入れる必要がありそう。
調べてみるとphp-mysql、もしくはphp-mysqlndが必要とのこと。簡単に調査したぐらいなのでまだ確信はないが、php-mysqlの方が古いっぽい?なのでphp-mysqlndをインストール。phpのバージョンもちゃんと7.4を指定。

yum install php74-php-mysqlnd

その後MySQLもインストール。(これも事前にリポジトリをインストール)

yum instal https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
yum install mysql-server

これでwordpressのサイトも見れるかな?と思い、wordpressの最新版をダウンロードし解凍してhttpdの表示するフォルダはいかに持っていくなりして、じゃあもう見れるのかな?と思いアクセスするが全然見れない。
wordpressの表示する画面がindex.phpなのを確認できたので、「あ、これhttpdの設定ファイルでindex.php読み込む設定になってないな?」と思い、httpd.confに追記するもそれでも見れない。

・・・・・・・・・?

はてなになったのですが、httpd -M | grep phpを実行してみるとどうやらphp関連モジュールが読み込まれてなさそうだった。
phpインストールした時に勝手に設定されると思っていたので、自分でモジュールを指定する必要があるのかな~と思いll /etc/httpd/modules/ | grep phpを実行するもそもそもモジュールが存在していない。
これはさすがにパッケージが足りないんだろうなと思い、yum search php74に表示されるパッケージ説明とか見てみたら気になる点が。

php74.x86_64 : Package that installs PHP 7.4
php74-php.x86_64 : PHP scripting language for creating dynamic web sites

ん?ウェブサイト作成に必要っぽいパッケージがある?もしかしてこれ?と思いインストール。

yum install php74-php

すると/etc/httpd/conf, /etc/httpd/module配下にconfファイルとモジュールが追加されていることを確認。これが必要だったんかーい。
てかconf内容みたらDirectoryIndexにindex.phpがそこで追記もされてた。わざわざhttpd.confを編集しなくてよかったのね。

とこれで無事wordpressにアクセスできるようになりました。 (ちょっと思い出しながらの記載なのでうそが混ざってたらゴメンなさい)

※ちなみに少し気になったのでyum install phpでインストールしたときに入るパッケージを確認したらphp74-phpと同じ説明になっていた。デフォルトではwebサイトでも使えるやつがインストールされるようになってるのね。

所感

  • 色々トラブルシュートしながらの構築だと新しい知見が増えるのが面白い。対応中は少しイライラするが
  • なんとかアクセスできるようになり、サイトを立てられる状況になったので一安心って感じ。でもなんかモジュールがまだ足りてないのか少し不安。
  • httpdのセキュリティ設定とかしないとだよね。したことないからどうすればいいかまだ想定できてないけど、テストページが見れないようにとか、インデックスが表示されないようにとかしないとだよね。httpdのベストプラクティスとかないかしら