CMS(Content Management System)の一番有名なやつをインストールします。
WordPressの環境構築はお仕事としてはほぼ無いとは思いますが、単発仕事のバイトとしてはあるかも。
ここでの体験は WordPressの環境構築というより、Webサーバー・PHP実行環境・DB連携といった「いくつかのミドルウェアを組み合わせて一つのサービスを提供する環境を作る」お勉強になるのではないでしょうか。
1.環境
2025年6月10日時点でなるべく新しいものを使っていきます。
- Ubuntu Server 24.04
- MySQL 8.4
- NGINX 1.24.0
- PHP 8.3.6
- WordPress 6.8.1
Ubuntu Serverのインストールは「Ubuntu 24.04 Server インストール」に、
MySQLのインストールは「MySQLインストール」に、
NGINXとPHPのインストールは「NGINXで PHPを使う」にそれぞれ書いています。
これらを一通りやったところからのスタートです。
ここからの手順はこちらに書いてあり、基本的にこの通りにやっていきます。
Detailed instructions
2.ダウンロード
WordPressのダウンロードはこちらから。
WordPress を入手
Ubuntu Serverには GUIが(Webブラウザが)ありませんので curlコマンドを使ってダウンロードしましょう。
subro@UbuntuServer2404-1:~$ curl -O https://ja.wordpress.org/latest-ja.zip
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 34.2M 100 34.2M 0 0 6319k 0 0:00:05 0:00:05 --:--:-- 8558k
subro@UbuntuServer2404-1:~$ ls -l latest-ja.zip
-rw-rw-r-- 1 subro subro 35963744 6月 10 07:14 latest-ja.zip
[latest-ja.zip]ファイルができました。
3.ダウンロードファイルの解凍
ダウンロードしたファイルを解凍しましょう。
素の Ubuntu Serverには unzipコマンドがインストールされていないので先にこれをインストールします。
subro@UbuntuServer2404-1:~$ sudo apt install unzip
〜〜〜 省略 〜〜〜
インストールできました。
WordPressの解凍をします。
subro@UbuntuServer2404-1:~$ unzip latest-ja.zip
Archive: latest-ja.zip
creating: wordpress/
inflating: wordpress/wp-login.php
inflating: wordpress/wp-cron.php
inflating: wordpress/xmlrpc.php
inflating: wordpress/wp-load.php
〜〜〜 以下省略 〜〜〜
[wordpress]ディレクトリ以下に構成ファイルが展開されました。
4.データベース作成
MySQLに WordPress用のデータベースを作成します。
手順はこちら。
Using the MySQL Client
これに沿ってやっていきます。
MySQLに MySQLの [root]ユーザーでログインして作業します。
subro@UbuntuServer2404-1:~$ mysql -u root -p
Enter password: パスワードを入れる
[wordpress]という名前のデータベースを作成します。
mysql> CREATE DATABASE wordpress;
Query OK, 1 row affected (0.00 sec)
[mysqlsubro]という名前のユーザーを[Subro38Manager-]というパスワードで作ります。
mysql> CREATE USER "mysqlsubro"@"localhost" IDENTIFIED BY "Subro38Manager-";
Query OK, 0 rows affected (0.01 sec)
[wordpress]データベースの全権限を[mysqlsubro]ユーザーに与えます。
mysql> GRANT ALL PRIVILEGES ON wordpress.* TO "mysqlsubro"@"localhost";
Query OK, 0 rows affected (0.01 sec)
権限設定を即反映させます。
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> EXIT
Bye
データベースの作成と権限設定ができました。
5.設定ファイルにデータベースへのアクセス情報を書き込む
ホームディレクトリに作られた [wordpress]ディレクトリ下にはサンプルの [wp-config-sample.php]ファイルがありますのでコレをコピーして [wp-config.php]ファイルを作りましょう。
subro@UbuntuServer2404-1:~$ cd ~/wordpress
subro@UbuntuServer2404-1:~/wordpress$ ls -l
合計 236
-rw-r--r-- 1 subro subro 405 2月 6 2020 index.php
-rw-r--r-- 1 subro subro 19903 3月 6 23:24 license.txt
-rw-r--r-- 1 subro subro 7425 3月 7 17:45 readme.html
-rw-r--r-- 1 subro subro 7387 2月 13 2024 wp-activate.php
drwxr-xr-x 9 subro subro 4096 5月 7 22:00 wp-admin
-rw-r--r-- 1 subro subro 351 2月 6 2020 wp-blog-header.php
-rw-r--r-- 1 subro subro 2323 6月 14 2023 wp-comments-post.php
-rw-r--r-- 1 subro subro 3336 10月 16 2024 wp-config-sample.php
drwxr-xr-x 5 subro subro 4096 5月 7 22:00 wp-content
-rw-r--r-- 1 subro subro 5617 8月 3 2024 wp-cron.php
drwxr-xr-x 30 subro subro 16384 5月 7 22:00 wp-includes
-rw-r--r-- 1 subro subro 2502 11月 27 2022 wp-links-opml.php
-rw-r--r-- 1 subro subro 3937 3月 11 2024 wp-load.php
-rw-r--r-- 1 subro subro 51414 2月 4 01:55 wp-login.php
-rw-r--r-- 1 subro subro 8727 2月 9 01:00 wp-mail.php
-rw-r--r-- 1 subro subro 30081 3月 4 22:06 wp-settings.php
-rw-r--r-- 1 subro subro 34516 3月 11 03:16 wp-signup.php
-rw-r--r-- 1 subro subro 5102 10月 19 2024 wp-trackback.php
-rw-r--r-- 1 subro subro 3205 11月 9 2024 xmlrpc.php
subro@UbuntuServer2404-1:~/wordpress$ cp -p wp-config-sample.php wp-config.php
subro@UbuntuServer2404-1:~/wordpress$ ls -l wp-config.php
-rw-r--r-- 1 subro subro 3336 10月 16 2024 wp-config.php
[wp-config.php]ファイルを viなどで編集します。
define( 'DB_NAME', 'database_name_here' );
↓
define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'username_here' );
↓
define( 'DB_USER', 'mysqlsubro' );
define( 'DB_PASSWORD', 'password_here' );
↓
define( 'DB_PASSWORD', 'Subro38Manager-' );
これで良いでしょう。
6.WordPressを NGINXのドキュメントルートに配置する
[wordpress]ディレクトリの中身を全て NGINXのドキュメントルートディレクトリである [/var/www/html] 以下にコピーします。
sudoコマンドを使ってコピってますので、オーナー・グループが一通り [root:root] になります。
subro@UbuntuServer2404-1:~/wordpress$ sudo cp -r * /var/www/html
[/var/www/html]ディレクトリに移動して中を見てみます。
subro@UbuntuServer2404-1:~/wordpress$ cd /var/www/html
subro@UbuntuServer2404-1:/var/www/html$ ls -l
合計 252
drwxr-xr-x 5 root root 4096 6月 10 20:33 ./
drwxr-xr-x 3 root root 4096 6月 10 07:24 ../
-rw-r--r-- 1 root root 615 6月 10 07:24 index.nginx-debian.html
-rw-r--r-- 1 root root 405 6月 10 20:33 index.php
-rw-r--r-- 1 root root 19903 6月 10 20:33 license.txt
-rw-r--r-- 1 root root 7425 6月 10 20:33 readme.html
-rw-r--r-- 1 root root 7387 6月 10 20:33 wp-activate.php
drwxr-xr-x 9 root root 4096 6月 10 20:33 wp-admin/
-rw-r--r-- 1 root root 351 6月 10 20:33 wp-blog-header.php
-rw-r--r-- 1 root root 2323 6月 10 20:33 wp-comments-post.php
-rw-r--r-- 1 root root 3336 6月 10 20:33 wp-config-sample.php
-rw-r--r-- 1 root root 3326 6月 10 20:33 wp-config.php
drwxr-xr-x 5 root root 4096 6月 10 20:33 wp-content/
-rw-r--r-- 1 root root 5617 6月 10 20:33 wp-cron.php
drwxr-xr-x 30 root root 16384 6月 10 20:33 wp-includes/
-rw-r--r-- 1 root root 2502 6月 10 20:33 wp-links-opml.php
-rw-r--r-- 1 root root 3937 6月 10 20:33 wp-load.php
-rw-r--r-- 1 root root 51414 6月 10 20:33 wp-login.php
-rw-r--r-- 1 root root 8727 6月 10 20:33 wp-mail.php
-rw-r--r-- 1 root root 30081 6月 10 20:33 wp-settings.php
-rw-r--r-- 1 root root 34516 6月 10 20:33 wp-signup.php
-rw-r--r-- 1 root root 5102 6月 10 20:33 wp-trackback.php
-rw-r--r-- 1 root root 3205 6月 10 20:33 xmlrpc.php
良さ気です。
NGINXが作っていた元のファイルは邪魔なので消しておきます。
subro@UbuntuServer2404-1:/var/www/html$ sudo rm index.nginx-debian.html
7.初期アクセス
Webブラウザを使って、WordPressにアクセスしてみます。
私の環境では [http://UbuntuServer2404-1] になります。
しますとこういうメッセージが出ました。
PHPから MySQLにアクセスするには PHPの拡張機能がインストールされていないといけないらしい。
[php-mysql]パッケージを追加でインストールします。
subro@UbuntuServer2404-1:/var/www/html$ sudo apt -y install php-mysql
〜〜〜 省略 〜〜〜
インストールできましたので、改めて Webブラウザでアクセスします。
管理者ユーザーの設定画面になりますので、適当に設定して
WordPress をインストールを押します。
[ログイン]リンクを押して楽しみます。
先程作った管理者ユーザーでログインします。
ダッシュボードが表示されました。\(^o^)/
8.WordPressを使ってみる
サーセン、使い方が分からん…。
==========
というわけで WordPressの環境を作ってみたのですが、自分では WordPressを使う気がさらさらないのでした…。
インターネット上の情報をあさるに、使いたい機能によっては PHPの拡張機能を追加しなければならないとか。
ちょっとそこまではやってられないのでディープに使いたい方は自助でお願いします。
本気で運用する場合は、MySQLのバックアップや NGINX・MySQLを含めた冗長化・セキュリティなどが必要になると思いますが、それは WordPressという切り口ではなくて、Webサーバー・MySQLそれぞれの冗長化や、Webサーバーのセキュリティを組み合わせる形になりますね。
これは…WordPressのユーザー用の本ですね。
ユーザー用の本ばかりヒットしてしまって、サーバー管理の本が見つからん…。