- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2022-06-24T21:14:37+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を準備する
***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の内容は下記
------
[[PC関連へ>PC関連]]
<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移行 [#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関連]]};