#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関連]]};