TerraMaster F2-210 + OMV(Debian) + WordPress

2020-08-23

NASのTerraMaster F2-210 にOMV(openmediavault)5.5.4(Debian10です) をインストールしました。さらに、WordPressをインストールして、ブログサイトを自分で、構築しました。やったことを整理します。

OMVをインストール

F2-210は、モニターに接続できない(特殊VGAケーブルがあるなら接続可能)ため、下記順番でやりました。

  1. OMVをVirtualBoxの仮想マシンで、USBメモリにインストール
  2. USBメモリをF2-210に戻して使う。

VMで、OMVをUSBにインストール

  1. 仮想マシンの新規作成(省略)
  2. 物理デバイスを使うため、RAWディスクファイル作成
    1. USBメモリのディスクIDを確認する
      • Windowsの場合:wmic diskdrive list briefで確認する。例:\\.\PHYSICALDRIVE2
      • Linuxの場合:sudo fdisk -l | grep /dev/sdで確認する。例:/dev/sda
    2. 物理ディスク(USBメモリ)用ディスクファイル作成:
      • コマンド:VBoxManage internalcommands createrawvmdk -filename usb.vmdk -rawdisk /dev/sdb
      • 注意:Windowsの場合、パス通してないので、VirtualBoxのインストールフォルダ(C:\Program Files\Oracle\VirtualBox)に切り替えて実行するか、フルパスを指定して実行する必要。
  3. 作成したusb.vmdkとここからダウンロードしたisoを仮想マシンの設定画面のストレージタブで、指定する。
  4. 仮想マシンを起動して、普通のLinuxをインストールする感じで、OMVをインストール

ネットワーク設定

このまま、USBメモリをNASに戻すと、ネットワーク自動認識しないので、下記設定する必要:

ネットワークIF名を固定に

/etc/default/grub編集して、net.ifnames=0 biosdevname=0部分を追加

GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"

grub設定反映する:

sudo update-grub

新ネットワークIFを検出するように設定

NASに戻すと、ネットワークIFが変わるため、新ネットワークIFを検出して、DHCP有効するため、下記設定を行う

udevのネットワーク永続化ルールを無効化

sudo rm -rf /etc/udev/rules.d/70-persistent-net.rules

/etc/network/interfacesを編集して、固定化されたネットワークIF名のeth0で、DHCP設定を行う
変更前:

allow-hotplug ens33
iface ens33 inet dhcp

変更後:

allow-hotplug eth0
iface eth0 inet dhcp

上記設定後、USBメモリをNASに戻して、電源を入れて、接続PCから接続してみる
IPアドレスは、ルーターのDHCPより取得するので、ルータの設定ページから確認するかIPアドレスをスキャンする
IPアドレスがわかったら、HTTPかSSHで接続可能です。

これで、OMVのインストールが完了です。

WordPressをインストール

OMVは、WebサーバーのNginxがすでに常時実行している(Webの管理画面のため)ので、Debian10+Nginx+MariaDB+WordPressで運営して行きます。

データベースの準備

MariaDB というデータベースを使います。MariaDBは、MySQLと互換性があり、MySQLがオラクルに買収された後、MySQLの代わりに、広く使われているオープンソースのデータベースです。

MariaDBのコマンドプロンプトを開く

sudo mariadb

WordPress用データベース作成

下記コマンドは、wordpress_dbというデータベース名にしています。変更可能です。

MariaDB[(None)]> CREATE DATABASE wordpress_db DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

WordPress用データベースのユーザ作成

下記コマンドは、wordapress_userというユーザ名にしています。変更可能です。作成したユーザは、データベースのwordpress_dbのアクセス権限も与えています。password部分は、ユーザのパスワードです。メモしてください。後ほどWordPressの設定で、使う必要です。

MariaDB[(None)]> GRANT ALL ON wordpress_db.* TO 'wordpress_user'@'localhost' IDENTIFIED BY 'password';

権限の変更を即時有効にして、MariaDBのコマンドプロンプトを終了する

MariaDB[(None)]> FLUSH PRIVILEGES;
MariaDB[(None)]> EXIT;

PHP拡張をインストール

WordPress本体と各種のテーマ/プラグインは、依存するPHPの拡張パッケージが違うので、テーマやプラグインのドキュメントを確認したほうがよいでしょう。よく使われるモジュールをインストールしておくと無難でしょう。

sudo apt update
sudo apt install php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip

サービスを再起動

sudo systemctl restart nginx
sudo systemctl restart php7.3-fpm

Nginxの設定を行う

Nginxの関連ディレクトリとファイルの説明

設定ファイルの構成

設定ファイルは、下記のようなディレクトリ構造です。関係ない部分を省略している

/etc/nginx/
├── modules-available
├── modules-enabled
├── nginx.conf
├── sites-available
│   ├── default
│   ├── linuxref.net
│   └── openmediavault-webgui
├── sites-enabled
│   ├── linuxref.net -> /etc/nginx/sites-available/linuxref.net
│   └── openmediavault-webgui -> /etc/nginx/sites-available/openmediavault-webgui

/etc/nginx/nginx.confに、下記のように、sites-enabledの内容を全部includeしている。sites-enabledにあるファイルは、sites-availableにあるファイルのシンボルリンクになっている。サイト毎の設定は、sites-availableに作成しておいて、サイトの設定を有効・無効は、sites-enabledから、sites-availableへのシンボルリンクで制御するという考え方ですね。

include /etc/nginx/sites-enabled/*;
データファイル構成

サイトのデータは、任意ディレクトリに格納できるが、通常/var/www/<domain_name>のような形で、ディレクトリ設定する。設定ファイルに、下記のように指定する。

root /var/www/<domain_name>;

WordPress用サーバ設定ファイル追加

下記は、サンプルです。データの場所は、/var/www/linuxref.net、ドメイン名は、linuxref.netになっている。

server {
    listen 80;
    listen [::]:80;

    root /var/www/linuxref.net;

    server_name linuxref.net;

    index index.html index.htm index.php;

    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt { log_not_found off; access_log off; allow all; }
    location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
        expires max;
        log_not_found off;
    }
    location / {
        #try_files $uri $uri/ =404;
        try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
    }
}

OMVのWeb管理画面もポートが80を使っている。ポートが競合してしまうため、新規追加したサイトを有効する前に、OMVのWeb管理画面のポートを変更する必要がある。OMVのWeb管理画面で、変更を行う

OMV port change

設定を有効にするため、sites-enabledから、sites-availableへのシンボルリンクを作成

sudo ln -s /etc/nginx/sites-available/linuxref.net /etc/nginx/sites-enabled/

設定の文法チェック

sudo nginx -t

エラーがないなら、サーバー再起動して、設定を有効にする

sudo systemctl restart nginx

WordPressのインストール

ダウンロード&ファイルのコピー

WordPressの最新版をダウンロードして、解凍する。解凍後は、wordpressというディレクトリになります。wordpressディレクトリを/var/wwwに移動する。最後に、権限を変更する。

wget https://wordpress.org/latest.tar.gz
tar xzvf latest.tar.gz
sudo mv wordpress /var/www/linuxref.net
sudo chown -R www-data:www-data /var/www/linuxref.net

WordPressの設定

WordPressのサンプルの設定ファイルから、コピー

sudo cp /var/www/linuxref.net/wp-config-sample.php /var/www/linuxref.net/wp-config.php
セキュリティー・キーを追加

下記コマンドで、セキュリティー・キーを取得できる

$ curl -s https://api.wordpress.org/secret-key/1.1/salt/
define('AUTH_KEY',         'z97wIDT3p-0S+` yb?68|hG6m|bopN|lL)]98;p])X|.^@eD>5<hD]s~c.|#W&B+');
define('SECURE_AUTH_KEY',  'M-_WDH>391|@1xB*#8J{,jQ_!0(T-S2)hZQP{F0ibYK4|}OSpKeqHfA(XEY._S0>');
define('LOGGED_IN_KEY',    '%{cQwj:,em/Q-3sMjQ-/=]z^++n-(IUC&[~+H9^mLb (*r{JN+-:]%#Gg#GCPU+[');
define('NONCE_KEY',        'pHJXr i[&B]m`4>q{{kEjv.80Jal+n[%-4?zF4PSu*EjGPFi={c-SQq~?oT:*+Li');
define('AUTH_SALT',        'q^Y=6y]ON+ts_`-|_:2%l`LCnoNnR0->B6$L`=8R}55oa*88XHVrHL.LB: uFzTM');
define('SECURE_AUTH_SALT', 'J(x=tF_0R6HMvC?.-!9|FV#/us4oL|RfRKyjgR)woT`Nq9t?>qCX^#I$Kc-Wxpup');
define('LOGGED_IN_SALT',   '/0l~9,c[!TMhFT@MwZB]&p:jp2 &a_=lniAsDi71>uK}|Xp^-klh?7TZR!JZ;CN?');
define('NONCE_SALT',       'WW~Glw8S})lgELUPK] dsp_h0.H@Hnr4.a(TTQMYiQOBt h Q%j%}T!,^IC&r@E5');

/var/www/linuxref.net/wp-config.phpにあるダミー内容を出力内容をに置き換える。だみ内容は、下記のようなものです。

define('AUTH_KEY',         'put your unique phrase here');
define('SECURE_AUTH_KEY',  'put your unique phrase here');
define('LOGGED_IN_KEY',    'put your unique phrase here');
define('NONCE_KEY',        'put your unique phrase here');
define('AUTH_SALT',        'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT',   'put your unique phrase here');
define('NONCE_SALT',       'put your unique phrase here');
データベース情報追加

次は、作成したデータベースのデータベース名データベース・ユーザデータベース・ユーザのパスワードをそれぞれDB_NAMEDB_USERDB_PASSWORD項目に設定する

define('DB_NAME', 'wordpress_db');
define('DB_USER', 'wordpress_user');
define('DB_PASSWORD', 'password');
Webページからのセットアップ

次は、Web画面からインストール。http://<IPアドレス>:8080にアクセスして、画面に従ってインストールする。

WordPress install screen

これで、WordPressが使えるようになります。お疲れさまでした!

次は、サイトを公開するに必要なドメインの設定は、ここを参考してください

参考リンク