お金をかけずにサーバーの勉強をしよう

WordPressインストール

2025年6月10日

メニューへ戻る

CMS(Content Management System)の一番有名なやつをインストールします。

WordPressの環境構築はお仕事としてはほぼ無いとは思いますが、単発仕事のバイトとしてはあるかも。

ここでの体験は WordPressの環境構築というより、Webサーバー・PHP実行環境・DB連携といった「いくつかのミドルウェアを組み合わせて一つのサービスを提供する環境を作る」お勉強になるのではないでしょうか。


1.環境

2025年6月10日時点でなるべく新しいものを使っていきます。

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から MySQLにアクセスするには PHPの拡張機能がインストールされていないといけないらしい。

[php-mysql]パッケージを追加でインストールします。

subro@UbuntuServer2404-1:/var/www/html$ sudo apt -y install php-mysql
〜〜〜 省略 〜〜〜

インストールできましたので、改めて Webブラウザでアクセスします。

管理者ユーザーの設定画面になりますので、適当に設定して
WordPress をインストールを押します。
WordPress 1

[ログイン]リンクを押して楽しみます。
WordPress 2

先程作った管理者ユーザーでログインします。
WordPress 3

ダッシュボードが表示されました。\(^o^)/
WordPress 4


8.WordPressを使ってみる

サーセン、使い方が分からん…。


==========
というわけで WordPressの環境を作ってみたのですが、自分では WordPressを使う気がさらさらないのでした…。

インターネット上の情報をあさるに、使いたい機能によっては PHPの拡張機能を追加しなければならないとか。

ちょっとそこまではやってられないのでディープに使いたい方は自助でお願いします。

本気で運用する場合は、MySQLのバックアップや NGINX・MySQLを含めた冗長化・セキュリティなどが必要になると思いますが、それは WordPressという切り口ではなくて、Webサーバー・MySQLそれぞれの冗長化や、Webサーバーのセキュリティを組み合わせる形になりますね。


これは…WordPressのユーザー用の本ですね。
ユーザー用の本ばかりヒットしてしまって、サーバー管理の本が見つからん…。