Raspberry Pi 3 B+ を使って WordPress を構築してみた


注意

本記事は、弊社の新人研修の一環としてWebサーバー(RaspberryPi+LAMP+Wordpress)を構築し、その結果を記事としてアウトプットしたものになります。


新入社員の陳と申します。よろしくお願いします。

##目的 Linuxへの理解を深めるために、Raspberry PiでWebサーバーを構築し、WordPressサイトを立ち上げます。

##環境

  • Raspberry Pi 3 Model B+
  • microSD 128GB

##手順

  1. SDカードにOSを導入
  2. Raspberry Piを起動
  3. SSHの設定
  4. LAMPのインストール
  5. WordPressのインストール

##SDカードにOSを導入 Raspberry Piを起動するには、まずOSをSDカードに書き込む必要があります。

書き込みにはRaspberry Pi Imagerを利用します。

書き込むOSはRaspbian Pi OS(32-bit)とします。

##Raspberry Piを起動 ネットワーク接続でRaspberry Piを起動します。起動には少し時間がかかるるので、気長に待ちます。

##SSHの設定 SSHとは、異なる端末間でネットワークを経由してコマンドを実行できるソフトウェアです。

SSHを利用すると、使い慣れたパソコンで操作できるだけでなく、問題が発生したときの解決にも役立ちます。

Raspberry
passwd

初期パスワードはraspberryですが、セキュリティ上の理由から、パスワードを変更しておきます。

Raspberry
sudo service ssh start
sudo crontab -e
@reboot /usr/sbin/service ssh start

sudo crontab -e を実行し、@reboot /usr/sbin/service ssh start を入力しておけば、Raspberry Piをが再起動するたびに、SSHサービスが自動的に起動します。

自分のパソコンのTerminal
sudo apt-get update
sudo apt-get install ssh
ssh pi@IP 

(IPアドレスがわからない場合は、Raspberry PiのTerminalで ifconfig を実行して確認することができます) パスワードを入力すると、無事にRaspeberry Piの操作ができるようになります。

##LAMPのインストール Web Serverを作るにはLAMPと呼ばれるソフトウェア群を利用するのが一般的です。順番にインストールしていきます。

  • L: Linux (Raspbian)
  • A: Apache (for speed you can use Nginx)
  • M: MySQL (MariaDB)
  • P: PHP

###Apache 世界中で一番使われているウェブサーバーソフトウェアです。 基本的にウェブサーバとは、ウェブページにアクセスするためのリクエストを受け取るソフトウェアのことです。

sudo apt-get install apache2

=> Active: failed (Result: exit-code) since Tue 2021-01-05 14:37:45 JST; 31ms ago
=> 1月 05 14:37:45 raspberrypi systemd[1]: apache2.service: Control process exited, code=exited, status=1/FAILURE
=> 1月 05 14:37:45 raspberrypi systemd[1]: apache2.service: Failed with result 'exit-code'.
=> 1月 05 14:37:45 raspberrypi systemd[1]: Failed to start The Apache HTTP Server.

Apacheの起動に失敗しているようです。原因を調べてみます。

sudo systemctl status httpd
=> Unit httpd.service could not be found.

httpdが正常に起動していません。ポートが占有されているかもしれません。

sudo apt-get install net-tools
netstat -ltp | grep :80

=> tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      563/nginx: master p 
=> tcp6       0      0 :::80                   :::*                    LISTEN      563/nginx: master p

80番ポートを占有しているプロセスを検索してみると、nginxが起動しているようです。(以前インストールしていたnginxが残っていたようです。)

sudo kill 563 でプロセスを停止し、Apache2を再起動します。

http://IP にアクセスすると、Apache2のデフォルトページが表示されます。

###PHP Wordpressを利用するためにはPHPの設定が必要ですので、PHPをインストールします。

PHPとは動的にWebページを生成することができるプログラミング言語です。

sudo apt-get install php
cd /var/www/html
sudo nano test.php
<?php
echo "Hello World!"; 
?>

http://IP/test.php にアクセスし、 Hello World! が表示されればOKです。

###MySQL(MariaDB) WordpressにはPHPに加えDBも必要ですので、MariaDBを設定します。

MariaDBはMySQLから派生した、オープンソースのデータベース管理システムです。

sudo apt-get install mariadb-server
sudo mysql -uroot -p
=> パスワードを入力

インストール時にデフォルトユーザーが設定されており、そのデフォルトパスワードは password です。このユーザーを使用してMariaDBにアクセスします。

CREATE USER 'wordpress'@'localhost' IDENTIFIED BY '任意パスワード';
CREATE DATABASE wordpress;
GRANT ALL ON wordpress.* TO 'wordpress'@'localhost';
exit

新しいユーザーを作成し、権限を与えます。

sudo apt-get install php-mysql
sudo service apache2 restart

PHPでMySQLを利用するためには php-mysql パッケージが必要ですので、インストールしApacheを再起動します。

mysql -u wordpress -p
=> パスワードを入力する
SHOW DATABASES;

データベース wordpress が表示されればOKです。

###PHPMyAdmin(Optional)

MySQLをGUIインターフェースで操作したい場合はPHPMyAdminをインストールします。

sudo apt-get install phpmyadmin

##WordPressのインストール WordPressとは、オープンソースのブログシステムです。

sudo wget https://wordpress.org/latest.zip -O /var/www/html/wordpress.zip
cd /var/www/html
sudo unzip wordpress.zip
sudo chmod 755 wordpress -R
sudo chown www-data wordpress -R

chmod でWordPressの権限を設定します。 755(rwxr-xr-x) という数値は 誰でも読込みと実行はできるが書き込みは自分だけ という設定です。

また、chown でwordpressフォルダのオーナーをwww-data(Apache)に変更します。

http://IP/wordpress にアクセスし、wordpressの設定をしていきます。Database Name, Username, Passwordは先ほど設定したものと同じです。

ここまでで、今回の作業は終了です。

##おわりに ここまで実施すれば、最低限の設定が完了し記事を書くことができます。また、テーマなどの変更や細かいカスタマイズもできるでしょう。

この記事をシェア

弊社では、一緒に会社を面白くしてくれる仲間を募集しています。
お気軽にお問い合わせください!