この記事では、UbuntuにWordPressをインストールする方法をご紹介します。Wordpressのダウンロードからページの表示までの流れを実際に行っていきます。
関連記事
以下のUbuntu関連の設定記事のまとめのような内容になります。細かい不明点があれば過去の投稿を参照ください。




WordPressのダウンロード
以下の公式サイトからWordPressをダウンロードします。
『Get WordPress』をクリックします。

ダウンロードボタンを右クリックしてリンク先のURLをコピーするか、そのまま通常クリックでzipファイルをダウンロードします。

ここではURLをコピーし、wgetコマンドでダウンロードする手順で進めます。
$sudo apt install -y wget
ダウンロード用ディレクトリを作ります。
$ cd ~/
$ mkdir downloads
作成したディレクトリの中にファイルをダウンロードします。
$ cd downloads
$ wget https://wordpress.org/latest.zip
解凍します。解凍すると『wordpress』というディレクトリが作成されます。
$ unzip latest.zip
Nginxの設定
ドキュメントルートを作成します。
$ sudo mkdir /var/www/wordpress.hitori-josys.me
Nginxの設定ファイルを作成し、以下の内容を書き込みます。
$ sudo vi /etc/nginx/sites-available/wordpress.hitori-josys.me
server {
listen 80;
server_name wordpress.hitori-josys.me;
root /var/www/wordpress.hitori-josys.me;
access_log /var/log/nginx/wordpress.hitori-josys.me-access.log;
error_log /var/log/nginx/wordpress.hitori-josys.me-error.log;
#return 301 https://$host$request_uri;
location / { index index.html index.htm; } }
SSL証明書の作成
冒頭の関連記事にある『UbuntuでLegoを使ってSSL証明書を作成する方法』で導入したLegoを使ってSSL証明書を作成します。<your ~>の箇所は自分の環境に置き換えてください。
sudo /usr/local/bin/lego --accept-tos \ --path "/etc/lego" \ --http \ --http.webroot "<your document root>" \ --domains "<your domain>" \ --email "<your email>" \ run
問題なく作成されれば以下のディレクトリに証明書が作成されます。
$ ls -la /etc/lego/certificates
PHP-FPMの設定
php-fpmの設定ファイルを開きます。
$ sudo vi /etc/php/7.4/fpm/pool.d/www.conf
Listenの設定内容をコピーします。
listen = /run/php/php7.4-fpm.sock
上記のイコール以降の値を、以下のnginxのfastcgi_passに後ほど反映させます。
fastcgi_pass unix:/run/php/php7.4-fpm.sock
公開用のNginx設定
先程作成したnginxの設定ファイルを以下の内容に置き換えます。
$ sudo vi /etc/nginx/sites-available/wordpress.hitori-josys.me server { listen 80; server_name wordpress.hitori-josys.me; root /var/www/wordpress.hitori-josys.me; access_log /var/log/nginx/wordpress.hitori-josys.me-access.log; error_log /var/log/nginx/wordpress.hitori-josys.me-error.log; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name wordpress.hitori-josys.me; root /home/www/wordpress.hitori-josys.me; access_log /var/log/nginx/wordpress.hitori-josys.me-access.log; error_log /var/log/nginx/wordpress.hitori-josys.me-error.log; location / { index index.php index.html index.htm; } location ~ \.(png|jpg|gif|ico|css|js)$ { index index.html; break; } location ~ \.php$ { fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } ssl_certificate /etc/lego/certificates/wordpress.hitori-josys.me.crt; ssl_certificate_key /etc/lego/certificates/wordpress.hitori-josys.me.key; }
設定が終わったら最初にダウンロードしたwordpressの本体をドキュメントルート内に移動させます。
$ sudo mv ~/downloads/wordpress /var/www/wordpress.hitori-josys.me/
ディレクトリがあるか確認します。
$ sudo ls -la /var/www/wordpress.hitori-josys.me
存在確認が終わったら所有者とグループを変更します。
$ sudo chown -R www-data:www-data wordpress
データベースの作成
mysqlにログインします。
$ mysql -u root -p
ブログ用のデータベースを作成します。
mysql> create database <database name>;
作成したデータベースに権限を割り当てます。以下はコマンド例です。<db ~>は自分の環境に合わせて書き換えてください。
mysql> grant all privileges on <db name>.* to <db user>@localhost identified by '<db password>'; Query OK, 0 rows affected, 1 warning (0.00 sec)
権限を反映します。
mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
mysqlからログアウトします。
mysql> quit
サイトにアクセス
上記の設定が終わったら、今まで行った設定を反映します。まず、nginxの設定内容にエラーが出ないか確認します。
$ sudo nginx -t
問題なければ以下のコマンドでnginxとphp-fpmを再起動します。reloadでもOKですが念のため。
$ sudo systemctl restart nginx
$ sudo systemctl restart php7.4-fpm
実際にブラウザで設定したサイトにアクセスしてみます。WordPressのインストール画面が出ればOKです。
WordPressのセットアップ
『Let’s go!』をクリックして次に進みます。

先ほど作成したDB名、DBユーザー名、DBパスワードを入力して『Submit』をクリックします。

『Run the installation』をクリックしてインストールを開始します。

サイト名、WordPressの利用ユーザー名等を入力して『Install WordPress』をクリックします。

成功すると以下のような画面が表示されます。ログインページに進みましょう。

作成したユーザーでログインします。

サイドメニューの『Settings』から『General』を選択します。

日本語への切り替えとタイムゾーンの設定を行い、下にスクロールして設定内容を保存します。

左上のサイトタイトルにマウスを合わせると『サイトを表示』と表示されるのでクリックします。

来訪者向けのフロントサイトが表示されました。

ところがブラウザのURLを見ると以下のように『/wordpress/』となっており、ちょっと不格好です。
もう一度サイドメニューの『Settings』から『General』を選択します。上部に『サイトアドレス (URL)』という項目があるので、そこから『/wordpress』を削除して設定を保存します。

再度ターミナルでの作業です。WordPressのディレクトリに移動します。
$ cd /var/www/wordpress.hitori-josys.me/wordpress
その中にあるindex.phpをひとつ上の階層に移動します。
$ sudo mv index.php ../
index.phpを編集します。
$ sudo vi index.php
デフォルトでは以下のようになっているところを、
require __DIR__ . '/wp-blog-header.php';
この様に書き換えます。これで再度フロントサイトにアクセスすると末尾の『/wordpress』が消えているはずです。
require __DIR__ . '/wordpress/wp-blog-header.php';