TS-253D上のDockerStationWordPress構築

経緯

  • TurboNASのアプリケーションはQTSバージョンが上がるとWordpressがなくなったりするのでもう少しQTSに依存しない形にしたい。
  • Dockerを運用できる環境が手に入ったので使ってみたい(TS-253DのContainerStation

構築したい環境

  • DockerStationにWordpress+MariaDB+phpMyAdminを構築したい
  • 外部公開したい(DynamicDNS経由)
    • http://XXXXXXXXXXXXXXXXXXXXXXX/wpと言うかたちにする
      (サブドメインやポート指定は、名前解決やポート開放+NAT設定などめんどくさいのでサブフォルダ形式にする)

構築ステップ

docker-compose.ymlを準備する

  • これはdockerにコンテナを作るための定義ファイル。ファイルは下記。
  • サブディレクトリ「/wp」でwordpressを構築するためにwordpressサイトで提供されているスクリプト「docker-entrypoint.sh」を指定する。(これは構築時に一度起動されて、フォルダ構成を変更するためのスクリプト)

 version: "3.8"
 services:
 db:
   image: mariadb:10.6
   container_name: "mariadb"
   volumes:
     - db_data:/var/lib/mysql
   restart: always
   environment:
     MYSQL_ROOT_PASSWORD: (rootのPasswordを設定)
     MYSQL_DATABASE: (wordpressを構築するDB名)
     MYSQL_USER: wordpress
     MYSQL_PASSWORD: (MYSQL User「wordpress」のPasswordを設定)
 wordpress:
   image: wordpress:latest
   container_name: "wordpress"
   volumes:
     -  wordpress_data:/var/www/html
     -  ./docker-entrypoint.sh:/usr/local/bin/docker-entrypoint.sh
   restart: always
   depends_on:
 version: "3.8"
 
 services:
   db:
     image: mariadb:10.6
     container_name: "mariadb"
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: (rootのPasswordを設定)
       MYSQL_DATABASE: (wordpressを構築するDB名)
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: (MYSQL User「wordpress」のPasswordを設定)
   wordpress:
     image: wordpress:latest
     container_name: "wordpress"
     volumes:
       -  wordpress_data:/var/www/html
       -  ./docker-entrypoint.sh:/usr/local/bin/docker-entrypoint.sh
     restart: always
     depends_on:
       - db
     ports:
       - 8881:80
     environment:
       WORDPRESS_SUBDIRECTORY: wp
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_NAME: (wordpressを構築するDB名)
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD:  (MYSQL User「wordpress」のPasswordを設定)
   phpmyadmin:
     image: phpmyadmin/phpmyadmin:latest
     container_name: "phpmyadmin"
     restart: always
     depends_on:
       - db
     ports:
       - 8882:80
 volumes:
     db_data:
     wordpress_data:

docker-entrypoint.shを準備

	########## Following lines add 2022/06/22 k.Sugahara Start [#t69b3c71]
	# allow use subdirectory in the wordpress site url and home configs, like: http://localhost/blog
	if ! [ -z "$WORDPRESS_SUBDIRECTORY" ]; then
	    # force relative path
	    WORDPRESS_SUBDIRECTORY=`echo $WORDPRESS_SUBDIRECTORY | sed 's/^\///g'`
	    mkdir -p $WORDPRESS_SUBDIRECTORY
	    cd $WORDPRESS_SUBDIRECTORY
	fi
	########## Following lines add 2022/06/22 k.Sugahara END

(wordpressのコンテナからディレクトリ構成を変更するスクリプトを準備 [#s2f4ae60]

  • ファイルは下記
  • スクリプトファイルのうち、下記は追加行(オリジナルは"wordpress","docker-entrypoint.sh"で検索すると落ちています
	########## Following lines add 2022/06/22 k.Sugahara Start
	# allow use subdirectory in the wordpress site url and home configs, like: http://localhost/blog
	if ! [ -z "$WORDPRESS_SUBDIRECTORY" ]; then
	    # force relative path
	    WORDPRESS_SUBDIRECTORY=`echo $WORDPRESS_SUBDIRECTORY | sed 's/^\///g'`
	    mkdir -p $WORDPRESS_SUBDIRECTORY
	    cd $WORDPRESS_SUBDIRECTORY
	fi
	########## Following lines add 2022/06/22 k.Sugahara END

TurboNAS上にdocker-entrypoint.shを配置

  • TurboNASは下記に配置される /share/Container/container-station-data/application/<アプリ名:wordpress>
  • 今回は追加するアプリ名をwordpressにするから /share/Container/container-station-data/application/wordpress というフォルダを手動で作り、 docker-entrypoint.shを配置する。

NASのQTSのContainerStationからwordpressアプリを作る

  1. DockerStationを起動-サブメニュー[作成]を起動
    dockerstation_01.jpg

    ↑「+アプリケーションの作成」ボタンを押下
  1. アプリケーション作成ウィンドウで必要項目を入力してアプリケーションを登録する
    dockerstation_02.jpg
    1. アプリケーション名:"wordpress"
    2. YAMLに「docker-compose.yml」の内容を貼付け
    3. 「YAMLを検証」ボタンを押下する(構文検証)⇒OKになる。
    4. 「作成」ボタンを押下する⇒数分待つとwordpressアプリができる

Wordpressの初期画面を開いて初期DBを作る(詳細は省略)

  • URLは右記:http://<NASのIP>:8881/wp/
  • ポート番号はdocker-compose.ymlの定義より
  • /wpは「docker-compose.yml」「docker-entrypoint.sh」の定義より
  • 作成されたらダッシュボードにログインできることを確認する。

WordPressのURLを変更する

  1. ダッシュボード-[設定]-[一般]を起動
  2. URL変更
    1. WordPress アドレス (URL):http://<DynamicDNSのURL>/wp
    2. サイトアドレス (URL):http://<DynamicDNSのURL>/wp

Apacheのhttpd.confを編集して、8881ポートを/wpにフォワードする設定にする

  1. httpd.confを編集
    1. QNAP QTSのhttpd.confの場所:/etc/config/apache/apache.conf
      分からない場合は、ps -al|grep httpdでapacheプログラムのパスと引数のhttpd.confの場所がわかる
    2. この行を追加:
       Include /share/homes/<任意ユーザ名>/wp-apache.conf
  2. wp-apache.confの内容は下記

 <IfModule !proxy_module>
     LoadModule proxy_module modules/mod_proxy.so
 </IfModule>
 <IfModule !proxy_http_module>
     LoadModule proxy_http_module modules/mod_proxy_http.so
 </IfModule>
 ProxyRequests     Off
 ProxyPreserveHost On
 ProxyPass "/wp" "http://127.0.0.1:8881/wp"
 ProxyPassReverse "/wp" "http://127.0.0.1:8881/wp"

  1. apachectl restartでapacheの定義を適用する

WordPress移行

ここからは他のWordPressサイトから移行する場合 にプラグイン「All-in-One WP Migration」

  1. 移行元のWorepressからプラグイン「All-in-One WP Migration」でデータをエクスポートする
    1. 移行元のダッシュボードからプラグイン「All-in-One WP Migration」をインストール
    2. 「All-in-One WP Migration」の機能「エクスポート」-「ファイル」でWordpressのエクスポートファイルをPCにダウンロード
  2. 移行先のWorepressからプラグイン「All-in-One WP Migration」でデータをインポートする
    1. dockerのwordpressのボリューム「wordpress_wordpress_data」にある/wpの.htaccessを編集
      • 場所は:DockerStationの-「リソース」-「ボリューム」でマウントポイントを確認する
        dockerstation_03.jpg
      • 下記の行を追加してインポートファイルの制限(デフォルト値:2MB)を解除する 追加行(エクスポートファイルが25GBの場合)
          php_value upload_max_filesize 25600M
          php_value post_max_size 25600M
          php_value memory_limit 25600M
          php_value max_execution_time 3000
          php_value max_input_time 3000
    2. 「All-in-One WP Migration」の機能「インポート」-「ファイル」でWordpressのエクスポートファイルをPCからアップロード

(その後、時間が掛かるが終わるはず)


<<PC関連へ>>


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2022-06-24 (金) 23:10:11