Ubuntu24.04LTSでWorsPressを動作させる。SSL、PHP、MariaDB、Let’s Encrypt証明書でhttps化

Linux (CentOS、Rocky、Ubuntu)

RockyLinux9の設定は、こちらで紹介しています。

ファイヤーウォール設定の確認

ここでのファイヤーウォールは、「firewalld」を使用しています。
今までの設定を確認してみます。

「https」の許可は完了しています。

sslモジュールを有効化

「ubuntu」では、有効なモジュールは「/etc/apache2/mods-enabled/」にシンボリックリンクとしてファイルが存在すれば、有効になっています。
私の環境では、有効になっていないようですので、「a2enmod ssl」で有効にします。

Certbot クライアントのインストールと証明書取得

Let’s Encrypt から証明書を取得するには、「Certbot」を利用するので、パッケージを確認してみます。

パッケージの確認ができたので、インストールします

インストールが完了したら、証明書をゲットします。
コマンドオプションは「certonly」「–webroot」で取得できますが、
対象のサーバでWebサーバーが動作しており、外部から80番ポートへアクセスできる必要があります。

Successfullyで取得できました。またコメントにより、
証明書ファイル:/etc/letsencrypt/live/www.hogehoge.com/fullchain.pem
鍵ファイル:/etc/letsencrypt/live/www.hogehoge.com/privkey.pem
が保存された事がわかります。
証明書の設定は「/etc/apache2/sites-available」の「default-ssl.conf」を編集し
「a2ensite default-ssl」で有効にします。

PHPのインストール

インストール

WordPressサイトを参考に拡張モジュールをインストールします
パッケージ管理が違うので、すでに違うパッケージでインストール済みだったり
パッケージ名が見つからない場合がありましたが、とりあえず、このまま進みます

fpm版のphpインストールと切り替え

ApcheのMPMは、「preforkMPM」「workerMPM」「eventMPM」の3種類あるようですが
Apache2.4系から導入されたのが「eventMPM」で、CPUとメモリの使用量が少ないようです。
「centos」ではデフォルトで「eventMPM」になっていますが、「Ubuntu」は「preforkMPM」がデフォルトのようなので、下記サイトを参考に「eventMPM」に切り替えたいと思います。
https://qiita.com/Nelson605/items/e3a8d10c1415dd0c5c0b
https://doudonn.com/saba/2491

php-fpm設定ファイルの変更

php-fpmの設定は「/etc/php/8.3/fpm/pool.d/www.conf」で行います。
php-fpmを動作させるユーザーとグループについては、Apache側での設定に合わせる必要があります。また、listenオーナーとlistenグループも、Apacheに合わせます。
バックアップ後編集していきます。

HTTP/2を利用する。eventMPMモジュールとhttp2モジュールを有効

SSLサーバー証明書がとれたので、HTTP/2も利用したいと思います
有効なモジュールは「apachectl -M」で確認できます。
「mpm_event_module」は有効になっていましたが、「http2_module」はなっていなかったので有効にします。
「a2enmod http2」で有効にし、「apache2」を再起動後、「apachectl -M」で再確認します

「http2」は有効になりましたが、エラーがでました。
「VirtualHost *:80」に設定したからいいと思っていましたが、メインにも設定した方がよさそうです
「/etc/apache2/apache2.conf」にも設定を追加しました
「apache2ctl configtest」で確認し、OKだったので、再起動するとエラーは消えました。

http2通信の確認

Google Chrome での確認方法を紹介します。
・アドレスバーにサイトのURLを入力し表示させる。
・「F12」キーを押す。
・「Ctrl」+「R」で再読み込み
・「Network」「Protocol」・「h2」で確認

php.iniの設定

このサイトでも「RockyLinux9」での設定を説明していますが、同様に設定したいと思います。
「ubuntu」での設定は、「/etc/php/8.3/fpm/php.ini」で行います。
念のためバックアップを取り、編集します。

Webブラウザで確認

PHP設定の情報を出力させるコマンド「phpinfo()」を実行させるファイル「index.php」を作成します

「index.php」ファイルが作成されたら、Webブラウザのアドレスバーから確認できます。

「index.php」は、確認が終了したら、必ず削除しましょう。

MariaDBのインストールと設定

「ubuntu」での「MariaDB」パッケージを確認してみます。

インストール

提供されているので、インストールします。

自動的に起動と自動起動設定も完了していました。

基本的なセキュリティ設定

「mysql_secure_installation」で設定します。

文字コードの設定

文字コードを「utf8mb4」に設定します。
「CentOS」系では「/etc/my.cnf.d/mariadb-server.cnf」を編集しましたが、
「ubuntu」では、このファイルは見つかりません。
探してみると、「server」用と「client」用の2種類で設定するようです
・/etc/mysql/mariadb.conf.d/50-server.cnf
・/etc/mysql/mariadb.conf.d/50-client.cnf
いつものように、バックアップして編集しますが、「50-server.cnf」はデフォルトで「utf8mb4」に設定されていたのでそのまま使用し「50-client.cnf」のみ編集します。

確認してみます

「RockyLinux9」で設定した時は、システム再起動しないと反映されませんでしたが、今回はすぐに反映されていました。
ここまでで、「WordPress」を動作させる環境が整いました。
次回、「WordPress」を動作させます。


Ubuntu24.04LTSでWordPressを構築する記事一覧

SSL、PHP、MariaDB、Let’s Encrypt証明書でhttps化

コメント

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