#author("2022-06-24T22:09:29+08:00","default:kaz","kaz")
#author("2022-06-24T22:10:11+08:00","default:kaz","kaz")
*TS-253D上のDockerStationにWordPress構築 [#c1e36f00]
#contents

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

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

**構築ステップ [#t817b39d]
***docker-compose.ymlを準備する [#xe49d60e]
-これはdockerにコンテナを作るための定義ファイル。ファイルは下記。
#ref(docker-compose.yml)
-サブディレクトリ「/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を準備 [#m7a22471]

	########## 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]
-ファイルは下記
#ref(docker-entrypoint.sh);
-スクリプトファイルのうち、下記は追加行(オリジナルは"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を配置 [#d3732c81]
-TurboNASは下記に配置される
/share/Container/container-station-data/application/<アプリ名:wordpress>
-今回は追加するアプリ名をwordpressにするから
/share/Container/container-station-data/application/wordpress
というフォルダを手動で作り、
docker-entrypoint.shを配置する。

***NASのQTSのContainerStationからwordpressアプリを作る [#y09770e0]
+DockerStationを起動-サブメニュー[作成]を起動
#ref(dockerstation_01.jpg,,50%);
~
↑「+アプリケーションの作成」ボタンを押下

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

***Wordpressの初期画面を開いて初期DBを作る(詳細は省略) [#f8aa36dd]
-URLは右記:http://<NASのIP>:8881/wp/
-ポート番号はdocker-compose.ymlの定義より
-/wpは「docker-compose.yml」「docker-entrypoint.sh」の定義より
-作成されたらダッシュボードにログインできることを確認する。

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

***Apacheのhttpd.confを編集して、8881ポートを/wpにフォワードする設定にする [#n6477fbb]
+httpd.confを編集
++QNAP QTSのhttpd.confの場所:/etc/config/apache/apache.conf
~
分からない場合は、ps -al|grep httpdでapacheプログラムのパスと引数のhttpd.confの場所がわかる
++この行を追加:
  Include /share/homes/<任意ユーザ名>/wp-apache.conf
+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"
------
+apachectl restartでapacheの定義を適用する



***WordPressデータを別サイトから移行する(移行する場合のみ) [#xa37bd2d]
**WordPress移行 [#xba9b19e]
ここからは他のWordPressサイトから移行する場合
にプラグイン「All-in-One WP Migration」
+移行元のWorepressからプラグイン「All-in-One WP Migration」でデータをエクスポートする
++移行元のダッシュボードからプラグイン「All-in-One WP Migration」をインストール
++「All-in-One WP Migration」の機能「エクスポート」-「ファイル」でWordpressのエクスポートファイルをPCにダウンロード
+移行先のWorepressからプラグイン「All-in-One WP Migration」でデータをインポートする
++dockerのwordpressのボリューム「wordpress_wordpress_data」にある/wpの.htaccessを編集
---場所は:DockerStationの-「リソース」-「ボリューム」でマウントポイントを確認する
#ref(dockerstation_03.jpg,,50%);
---下記の行を追加してインポートファイルの制限(デフォルト値: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
++「All-in-One WP Migration」の機能「インポート」-「ファイル」でWordpressのエクスポートファイルをPCからアップロード

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




------
&size(20){[[<<PC関連へ>>>PC関連]]};

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS