サーバ設定備忘録

今回のサーバ立ち上げに関して、つまずいた部分を備忘録として記録しておく。

立ち上げたサーバOSはCentOS Stream 9になる。
所謂LAMPを導入した。Linux, Apache, MySQL, PHPの四つ。

まず、PHPの設定でつまづいた。
インラインのPHPが使われたhtml形式の読み込みで、.html の拡張子もPHPファイルとして認識させる必要があるのだが、その際の記述でモジュール形式とfpm形式で別に記述するようになっていた。
前回のサーバ立ち上げ時はCentOS 8を利用していたが、その時は記述が分かれていなかったため、その部分で手こずってしまった。

まず必要な設定は
/etc/php-fpm.d/www.conf
 ;security.limit_extensions = .php .php3 .php4 .php5 .php7
 この行のコメントを外し、.htmlを加える。
 security.limit_extensions = .php .php3 .php4 .php5 .php7 .html
になる。
このように記述しないと、拡張子が.htmlの時に”Access denied.”のメッセージが表示されてしまう。

次に
/etc/httpd/conf.d/php.conf
<FilesMatch .(php|phar|)$>
SetHandler application/x-httpd-php
</FilesMatch>

と言う部分だが、コメントを見るとこの行は”mod_php options”となっている。
モジュール式のPHPを入れた場合にここの記述が有効になるのだろう。
とりあえずhtmlの記述を加えて
 <FilesMatch .(php|phar|html)$>
とした。

しかし、今回私が導入したPHPはphp-fpm形式であり、ここ最近の流れでは、このfpm形式が主流になるようだ。
よって、fpm形式の記述も必要なのだが、CentOS 8 の時は先述のモジュール形式の場合の記述がなく、fpm形式の記述が抜けていたため、html形式でインラインPHPが使用されたHPを読み込んでも全く表示されなかった。

コンフィグファイルの下の方に

Redirect to local php-fpm if mod_php (5 or 7) is not available

と言う行がある。
モジュール式のPHPが使用できない場合、fpm形式にリダイレクトする設定とあるが、私が使用している環境ではfpm形式である為、ここにhtml形式を追加する必要があった。
<FilesMatch .(php|phar)$>
SetHandler “proxy:unix:/run/php-fpm/www.sock|fcgi://localhost”
</FilesMatch>

と書かれている記述を
<FilesMatch .(php|phar|html)$>

の様に訂正する必要がある。

あとは
systemctl restart httpd
とコマンドラインからwwwサーバを再起動すれば設定が完了する。

次につまずいたのはWordPressのインストールに於けるMySQLサーバの部分だ。
最初の設定時にパスワードポリシーを決めるのだが、それを何のことか分からないまま、“STRONG”にしてしまった。単純に何かが強い方が良いのだろという錯覚。
後々調べるとパスワードポリシーの設定で、STRONGだと「長さ; 数字、小文字/大文字、および特殊文字。辞書ファイル」の要件を求められるようだ。
よってこれをLOWにする必要があるのだが、一度決めてしまうと、もう一度セットアップしようとすると、この項目がスキップされてしまう。
mysqlコマンドで入れれば、パスワードポリシーの変更も出来るのだが、まだrootすら決まっていない状態では、それは出来ない。

どうするか悩んだが、ググってみると、コンフィグファイルに記述すればOKとある。
/etc/my.cnf.d/mysql-server.cnf
のファイル内に、
validate_password.policy=LOW
validate_password.length=4
の項目があるから、それを設定する。
ポリシーをLOWに最低文字数を4文字以上にした。

これでセットアップ時にパスワードを適当に6文字で入力したらエラーにならずに継続された。

次ぎに手こずったのは、WordPressのデータベースを構築する際に
GRANT ALL ON wordpress.* TO ‘wordpress’@’localhost’ IDENTIFIED BY ‘<パスワード>’;
と入力するとネットの記述にはあったのだが、この入力をするとシンタックスエラーになる。
この構文は基本的にユーザの権限を設定するもので、ユーザを作成するものではないため、シンタックスエラーになったのだろう。
よって
CREATE USER ‘newuser’@’localhost’ IDENTIFIED BY ‘password’;
でユーザを作成し、
GRANT ALL ON wordpress.* TO ‘neruser’@’localhost’;
で権限を設定しなければならないようだ。

GRANT ALL ON wordpress.* TO ‘neruser’@’localhost’;
で権限を作成した段階でもユーザは作成できるが、パスワードを設定することは出来ない。
この方法でユーザを作成し、
SET PASSWORD FOR newuser = ‘password’;
で作成したユーザに対してパスワードを設定しても良いようだ。

MySQLコマンドで設定する際に、良く引っかかったのは、末尾に必ず ‘;’ が必要になるという言うこと。
これを忘れると
  ->
と表示されて、一瞬何のことかが分からなかったよ。
まだ入力が完了していないから、継続して入力しろ、という意味なのだろう。

このLAMPの導入を経てWordPressのセットアップが可能になり、後は画面の指示に従って手続きを進めれば基本的な部分の構築は完了だ。

手こずったが、とりあえず運用は開始された。色々と勉強になったよ。

コメント

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