ラズパイでWordPressブログサイトの構築

WordPressとは?

コンテンツマネジメントシステム(CMS)というもので、簡単に記事などのコンテンツを管理できて、HTMLのコードが分からなくても、文書を作成する感覚でホームページを更新できるツールみたいです。(実際に使ったことがないので実感がわかない…)

思いついたものを書きとめといて、自分の記憶をたどるときにも非常に役に立ちそうですね。ただ、実際にどういう仕組みで動作しているのか気にすることもなかったので、この機会に使ってみて理解を深めようと思います。HTMLやPHP,MySQLの動作も含めて少しだけ仕組みを掘り下げてみました。

WordPressの動作としては、ページ表示の要求を受けて、そのページを表示するために必要なPHPを実行します。実行されたPHPはそのページを表示するためのデータをMySQLから取得してHTMLを生成しています。

今回、実際にラズパイにインストールしてWordPressの環境を構築したので紹介します。

WordPressの導入にあたっては、以下5つの手順が必要です。さっそく設定してみましょう。

  1. Apache2インストール
  2. PHPのインストール
  3. MariaDB(MySQLのオープンソース版)のインストール
  4. WordPressのインストール
  5. WordPress用のDBセットアップ

1.Apache2のインストール

Apache2をインストール

$sudo apt-get install -y apache2

Apache2の稼働確認

ブラウザから、http://192.168.0.101(ラズパイのIP)にアクセスして、以下のページが表示されればOKです。

2.PHPのインストール

PHPをインストール

$sudo apt-get install -y php

PHP稼働確認用ファイルの作成

$cd /var/www/html
$sudo vi test.php

<test.phpの中身>

<?PHP echo date("Y/m/d"); ?>

Apache2を再起動

sudo service apache2 restart

ブラウザから、http://192.168.0.101(ラズパイのIP)/test.phpにアクセスして本日の日付が表示されればOKです。

3.MariaDB(MySQL)のインストール

MariaDB(MySQLのオープンソース版)をインストールします。

$sudo apt-get install -y mariadb-server

PHPと連携するための拡張機能をインストールします。

$sudo apt-get install -y php7.3-mysql
$sudo apt-get install -y php7.3-curl
$sudo apt-get install -y php7.3-gd
$sudo apt-get install -y php-imagick

MariaDBを有効にして起動します。

$sudo systemctl enable mariadb
$sudo systemctl start mariadb

4.WordPressのインストール

インストール場所に異動してWordPressの最新版をダウンロードします。

$cd /var/www/html
$sudo wget https://wordpress.org/latest.tar.gz

あとは、tarを展開、html配下に移動、不要ファイルとディレクトの削除します。最後に、忘れずに今居るフォルダのすべてにwww-data(Apache)所有権を与えれば完了です。

$sudo tar xzf latest.tar.gz
$sudo mv wordpress/* .
$sudo rm latest.tar.gz
$sudo rmdir wordpress
$sudo chown -R www-data .

5.WordPress用のDBセットアップ

※ここでは、データベース名は「wordpress」、ユーザー名は「user」,パスワードは「password」として設定します。

MariaDBにログイン

$sudo mysql

WordPress用のデータベース「wordpress」を作成

MariaDB [(none)]>create database wordpress;

DBの存在確認

MariaDB [(none)]>show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| wordpress | <-作成した「wordpress」が表示されればOK
+--------------------+

WordPress用のユーザを作成

(ユーザ名:user、パスワード:passwordの場合)

MariaDB [(none)]> CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';

DBに入って登録したユーザーを確認

$sudo mysql
MariaDB [(none)]>use mysql;
MariaDB [mysql]>select user, password, host from user;
↓登録したuser1が登録されていればOKです。
+-------+-------------------------------------------+-------------+
| user | password | plugin |
+-------+-------------------------------------------+-------------+
| root | | unix_socket |
| user1 | *34D3B87A652E7F0D1D371C3DBF28E291705468C4 | |
+-------+-------------------------------------------+-------------+

一度ログアウトして、再度ログイン

MariaDB [mysql]> exit;
$sudo mysql

WordPressデータベースに、先ほど作成したユーザに対して権限を付与

ユーザ名:user、パスワード:passwordの場合

MariaDB [(none)]> GRANT ALL on wordpress.* TO 'user'@'localhost' IDENTIFIED BY 'password';

作成したユーザー(ユーザー名:user)に全ての権限の付与確認

GRANT ALL PRIVILEGES ON wordpress.* TO ‘user’@’localhost’ と表示されればOK

MariaDB [(none)]> use mysql;
MariaDB [mysql]> SHOW GRANTS for 'user'@'localhost’;
+--------------------------------------------------------------------------------------------------------------+
| Grants for user1@localhost |
+--------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON . TO 'user1'@'localhost' IDENTIFIED BY PASSWORD '34D3B87A652E7F0D1D371C3DBF28E291705468C4' | | GRANT ALL PRIVILEGES ON wordpress. TO 'user1'@'localhost' |
+--------------------------------------------------------------------------------------------------------------+
MariaDB [mysql]> exit;

Apache2を再起動

sudo service apache2 restart
WordPress管理者画面の稼働確認

ブラウザから、http://192.168.0.101(ラズパイのIP)にアクセスして、WordPressのロゴとともに、言語選択画面が表示されればOK

言語選択の画面

WordPressの初期設定

言語選択から初期設定の開始画面
データベースへのログイン画面
ログイン情報の設定から初期設定の完了まで

Follow me!

“ラズパイでWordPressブログサイトの構築” への4件の返信

  1. 特定のパーマリンク設定のコメント投稿画面が表示されなくなってはまったので解決方法を残しておきます。
    解決方法しては、パーマリンク設定を以下に変更すればOKです。
    【変更前】
    /%year%/%monthnum%/%day%/%hour%%minute%%second%
    【変更後】
    /%year%/%monthnum%/%day%/%hour%%minute%%second%/%post_id%/

    ↓以下のページを参考に修正しました。(1日悩んじゃいました・・・)
    https://jugedred.net/2020/05/01/045159/5727/

  2. メニューを追加すると文字化けするようになった…
    とりあえず、「php.ini」の設定で、以下を変更
    mbstring.encoding_translation on -> off
    反映するために、apacheを再起動
    sudo service apache2 restart
    これで、日本語の文字化けは解消したけど原因が?
    いままではうまくいってたのでなぜだか…

    1. 「mbstring.http_input」を「pass」に変更するのが正しそうです。
      ↓以下参考にしたコメント
      mbstring.encoding_translationをoffにするのはあまりお勧めできません。アップロードされたファイル名の文字コードの扱いにも影響する値です。内部エンコードに変換して処理した方が無難です。
      とりあえず、こちらでも文字化けは解消しました。

  3. はじめまして。よろしくお願いします。

    ラズパイでWordPressブログを公開していたのですが、突然ログインできなくなってしまいました。

    HPにも、以下のようなメッセージが現れております。

    Deprecated: ltrim(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/wp-includes/wp-db.php on line 3030

    何かご存知のことがありましたら、お知らせください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA