【WordPress構築講座 第3回】Webサイトを「本番レベル」に仕上げる技術
こんにちは!「リナックス先生」です。
前回までに、データベース(MariaDB)を構築し、WordPressのファイルを配置しました。
しかし、今の状態は「とりあえず置いただけ」。このままでは、SEOに弱いだけでなく、WordPressの便利な機能(パーマリンク設定など)も使えません。
えっ!?まだ足りないんですか?
前回「ようこそ画面」が出たので安心していました。
それに最近、「PHP-FPM」とかいう言葉も聞くんですけど、それも関係あるんですか?
いいところに気がついたわね!
AlmaLinux 9では、高速な「PHP-FPM」という仕組みでPHPを動かすのが標準よ。
今回は、Apacheの詳細設定、PHP-FPMの最適化、そしてSSL化まで、「プロが納品するレベル」の設定を全部やるわよ!
1. Apacheの設定:WordPressを「正しく」動かす
デフォルトのApache設定のままだと、WordPressの「パーマリンク設定(記事URLの変更)」機能が動かず、記事をクリックすると「404 Not Found」エラーになってしまいます。
これを防ぐために、設定ファイルを編集します。
設定ファイル(httpd.conf)の編集
メインの設定ファイルを開きます。
[root@localhost ~]# vi /etc/httpd/conf/httpd.conf
ファイルの中ほどにある <Directory "/var/www/html"> というセクションを探し、AllowOverride None を AllowOverride All に変更します。
▼変更前
<Directory "/var/www/html">
...
AllowOverride None
...
</Directory>
↓ 書き換え ↓
▼変更後
<Directory "/var/www/html">
...
AllowOverride All <-- ここを変更!
...
</Directory>
【解説】 これにより、WordPressが生成する .htaccess ファイルが有効になり、URLの書き換え(リライト)機能が正しく動作するようになります。
ドメイン名の登録
同じファイル内で ServerName を検索し、あなたのドメイン名を設定します。
#ServerName www.example.com:80
↓
ServerName your-domain.com:80 <-- コメント(#)を外してドメインを入力
構文チェックと再起動
書き換えミスがないかチェックしてから再起動します。
[root@localhost ~]# apachectl configtest Syntax OK <-- これが出ればOK [root@localhost ~]# systemctl restart httpd
2. PHP-FPMの設定:サイトを高速化する
AlmaLinux 9では、PHPはApacheのモジュール(mod_php)ではなく、独立したプロセス「PHP-FPM (FastCGI Process Manager)」として動作します。
これが動いていないと、PHPのページが表示されません。
PHP-FPMの起動と自動起動設定
これまでの手順でインストールされていますが、念のため起動設定を行います。
# サービスの起動 [root@localhost ~]# systemctl start php-fpm # 自動起動の有効化 [root@localhost ~]# systemctl enable php-fpm # 状態確認(Active: active (running) ならOK) [root@localhost ~]# systemctl status php-fpm
設定ファイルの確認(www.conf)
PHP-FPMが、Apacheと同じユーザー(apache)で実行される設定になっているか確認します。
[root@localhost ~]# vi /etc/php-fpm.d/www.conf
以下の行が apache になっていることを確認してください(デフォルトでなっているはずです)。
user = apache group = apache
先生、PHP-FPMって何ですか?
なんか強そうな名前ですけど。
いい質問ね。
従来の方式よりメモリ効率が良くて、大量のアクセスが来てもサーバーが重くなりにくいの。
最近のレンタルサーバーやVPSでは、この「PHP-FPM」を使うのが常識になりつつあるわ。
3. HTTPS用の扉を開ける(Firewalld)
Webサーバーの設定ができたら、次はSSL化の準備です。
暗号化通信用のポート「443番」を開放します。
# HTTPS(443番)ポートの許可 [root@localhost ~]# firewall-cmd --add-service=https --permanent # 設定の反映 [root@localhost ~]# firewall-cmd --reload # 確認(servicesに http と https の両方があればOK) [root@localhost ~]# firewall-cmd --list-all
4. 無料SSL「Let's Encrypt」の導入
証明書の発行からApacheの設定書き換えまでを自動化する「Certbot(サートボット)」を使います。
Certbotのインストール
[root@localhost ~]# dnf install certbot python3-certbot-apache -y
証明書の取得コマンド実行
以下のコマンドを実行します。-d の後ろには、DNS設定済みのあなたのドメイン名を入力してください。
[root@localhost ~]# certbot --apache -d your-domain.com
対話形式でメールアドレス登録や規約同意(Y)を済ませると、Certbotが自動的に以下を行ってくれます。
- SSL証明書の取得
- ApacheのSSL設定ファイルの作成(/etc/httpd/conf.d/le-ssl.confなど)
- httpアクセスをhttpsへ自動転送(リダイレクト)する設定
Congratulations! と表示されれば完了です!
5. WordPressの初期セットアップ(ブラウザ操作)
すべてのサーバー設定が完了しました!
ブラウザで https://[あなたのドメイン]/ にアクセスしてください。
URLの横に「鍵マーク」が表示されているはずです。
データベース情報の入力
画面の指示に従い、第2回で作成したデータベース情報を入力します。
- データベース名: wordpress
- ユーザー名: wp_user
- パスワード: (第2回で設定したパスワード)
- データベースのホスト名: localhost
インストール実行
「インストール実行」ボタンを押し、サイトのタイトルや管理者アカウントを作成すれば、ついにWordPressの管理画面にログインできます!
6. 【プロの仕上げ】セキュリティ強度を高める
最後に、サーバーエンジニアとして「やって当たり前」のセキュリティ設定を2つ行います。
① wp-config.php の権限引き締め
設定ファイルにはDBパスワードが書かれています。Apacheユーザー以外が読めないようにします。
[root@localhost ~]# chmod 600 /var/www/html/wp-config.php
② Apacheのバージョン情報を隠す
エラーページ等にOSやApacheのバージョンが表示されるのを防ぎます。
# 設定ファイルの末尾に追記 [root@localhost ~]# echo 'ServerTokens Prod' >> /etc/httpd/conf/httpd.conf [root@localhost ~]# echo 'ServerSignature Off' >> /etc/httpd/conf/httpd.conf # 反映 [root@localhost ~]# systemctl restart httpd
全3回講座のまとめ:VPS構築完了!
お疲れ様でした!
これで、Apacheの設定からPHP-FPMの最適化、SSL化まで、隙のないWordPress環境が完成しました。
本講座(全3回)のバックナンバーはこちらです。
▼第1回:ApacheとPHPの導入

▼第2回:MariaDBとWordPress導入

▼第3回:SSL化とApache/PHP設定(本記事)

ありがとうございます!
「AllowOverride All」とか「PHP-FPM」とか、レンタルサーバーじゃ意識しない部分を知れて面白かったです!
自分の城を持った気分です!
▼サーバー選びで迷っている方はこちら
「コマンド入力や設定ファイルの編集はハードルが高い…」と感じた方は、管理不要のレンタルサーバーがおすすめです。

▼学習用VPSを用意するなら
本講座で使用している、コマンド操作の練習に最適なVPSはこちらの記事で紹介しています。


コメント