操作
環境構築(Docker)¶
前作業¶
Docker Desktopインストール¶
- ダウンロードは下記公式からWindows用を選択
[Docker Desktop公式](https://www.docker.com/ja-jp/products/docker-desktop/)
.gitconfigの確認¶
- 下記フォルダに.gitconfigが存在していることを確認
C:\Users\ユーザー名
- 存在しない場合はPowerShellを起動して下記コマンドで作成と設定
- 名前とメールアドレスは自身に置き換える(gitの履歴などに表示される内容)
git config --global user.name "名前" git config --global user.email "メールアドレス"
- 名前とメールアドレスは自身に置き換える(gitの履歴などに表示される内容)
VSCode拡張機能のインストール¶
- VSCodeを起動し拡張機能タブから "PHP DEBUG"を検索しインストール
環境構築¶
giteaよりClone¶
[giteaリンク](https://gitea.sowel.info/sowel/SilCity)
- プロジェクトフォルダ作成
C:\work\Docker\プロジェクトフォルダ(任意の名前 ※英数字推奨) - プロジェクトフォルダにクローン実施
クローン元のgitは下記
https://gitea.sowel.info/sowel/SilCity.git
giteaのアカウント登録を行っていなければ画面右上に登録ボタンより登録- クローンの流れ
作成したプロジェクトフォルダをエクスプローラで開く
右クリック→ターミナルで開くを選択しコマンドプロンプトを表示し下記コマンドを実行しクローンgit clone https://gitea.sowel.info/sowel/SilCity.git
ユーザー名とパスワードの入力を求められるのでgiteaのユーザー名とパスワードを入力
失敗した場合はパスワードがトークンの場合があるので下記トークンを作成
giteaのページ右上の自身のアイコン→設定→アプリケーションタブ からアクセストークンを作成
作成後に表示される文字列をクローン時のパスワードに使用
※この文字列は1度しか表示されないのでコピペして自身で保管しておくこと
- クローンの流れ
- プロジェクト
本番環境と同様に本番用とテスト用の2つのプロジェクトが存在しそれぞれ下記
本番用
wordpress-silcity
テスト用
wordpress-silcitytest
証明書のインストール¶
証明書(ルートCA)をインストール(初回のみ 各端末で1回)'https://localhost' および 'https://localhost:8443' にアクセス時に警告ページが表示を回避
本番用、テスト用のプロジェクトにそれぞれ格納されているが本番用の1度でよい。
- インストールの流れ
- wordpress-silcity\caroot\rootCA.crt をダブルクリックしダイアログ表示
(または右クリック →「証明書のインストール」) - 「証明書のインストール」をクリックし、証明書のインポートウィザードを開始
- 格納場所は「ローカルコンピューター」を選択して「次へ」(管理者権限の確認が出る場合は「はい」)
- 「証明書をすべて次のストアに配置する」を選択し、「参照」から「信頼されたルート証明機関」を指定して「次へ」
- 「完了」をクリック「正しくインポートされました」と表示され登録完了
- wordpress-silcity\caroot\rootCA.crt をダブルクリックしダイアログ表示
wp-config設定¶
下記ファイルで本番用、テスト用ソースのDB接続設定などを行う。giteaからクローンした場合初期コミットのソースは設定済。
public_html\wp-config.php
- DB接続情報の変更
下記の項目をコメントアウトdefine('DB_NAME', $connectstr_dbname); define('DB_USER', $connectstr_dbusername); define('DB_PASSWORD',$connectstr_dbpassword); define('DB_HOST', $connectstr_dbhost);
下記の内容を追加
本番用(wordpress-silcity)define('DB_NAME', 'silcitydb'); define('DB_USER', 'mtbrtcghtp'); define('DB_PASSWORD','I6MkjFOsSBWwV$oI'); define('DB_HOST', 'mariadb');
テスト用(wordpress-silcitytest)define('DB_NAME', 'silcitytestdb'); define('DB_USER', 'mtbrtcghtp'); define('DB_PASSWORD','I6MkjFOsSBWwV$oI'); define('DB_HOST', 'mariadb'); - $mysql_sslconnectの処理変更
下記処理の'true'部分を'false'に変更(本番用、テスト用双方)$mysql_sslconnect = (getenv('DB_SSL_CONNECTION')) ? getenv('DB_SSL_CONNECTION') : 'true'; - アクセスURLの設定追加
下記コメントの上に設定を追加する/* That's all, stop editing! Happy publishing. */
追加内容本番用(wordpress-silcity)define('WP_HOME', 'https://localhost'); define('WP_SITEURL', 'https://localhost'); $_SERVER['HTTPS'] = 'on';
追加内容テスト用(wordpress-silcitytest)define('WP_HOME', 'https://localhost:8443'); define('WP_SITEURL', 'https://localhost:8443'); $_SERVER['HTTPS'] = 'on';
DB設定¶
DB設定は本番用、テスト用の両方の環境でそれぞれ行う- DBとユーザーの作成(phpMyAdmin)
- コンテナの起動
wordpress-silcityフォルダ(テスト用の場合wordpress-silcitytest)をエクスプローラで表示し右クリック→ターミナルで開く
コマンドプロンプトで下記コマンドを実行しコンテナを起動
下記はコンテナをビルドし起動するコマンドなので本番用、テスト用両方ビルド後は
Docker Desktopからの起動でよいdocker compose up --build -d
- phpMyAdmin へアクセスしログイン
https://localhost/phpmyadmin/
ユーザー名:root
パスワード:(空欄のまま)
URLは下記のように書き換え
本番用:localhost
テスト用:localhost:8443 - DBの作成
「データベース」タブでDBを作成(本番用:silcitydb テスト用:silcitytestdb)
照合順序は utf8mb4_unicode_ci を選択 - ユーザーの作成
phpMyAdmin画面左上の家アイコンよりホーム画面へ移動
「ユーザーアカウント」タブ→「ユーザーアカウントを追加する」で作成
作成時の各項目の内容は下記のように入力し画面下部の実行ボタンで作成
ユーザー名:mtbrtcghtp
ホスト名:初期状態(すべてのホスト %)
パスワード(再入力も同様):I6MkjFOsSBWwV$oI - ユーザーの権限設定
「ユーザーアカウント」タブの作成したユーザーを選択
「データベース」を選択し「以下のデータベースに権限追加」で作成したDBを選択し実行ボタンクリック
「データベース固有の権限」'□すべてチェックする'をチェックして実行ボタンクリック
次回以降のDBへのアクセスは作成したユーザーで行う
- コンテナの起動
- DBデータ作成
- ダンプファイルの準備
下記フォルダから C:\work\ フォルダにコピー
\\SWL-FS\案件-sr(共有)\202606_SRラーニングポータル保守\Dockerテスト用
本番用:20260626_091903_silcity.sql.gz
テスト用:20260625_104030_silcitytest.sql.gz - ダンプファイルをコンテナ内にコピー
事前にコンテナを起動しておき、プロジェクトフォルダ直下でターミナルで開いておく
下記コマンドでダンプファイルをコンテナ内にコピー
※本番用なのでテスト用の場合はファイル名やコンテナ名の箇所を適宜書き換えることdocker cp "C:/work/20260626_091903_silcity.sql.gz" wordpress-silcitytest-mariadb-1:/tmp/20260626_091903_silcity.sql.gz
- ダンプファイルの流し込み
下記コマンドでコンテナ内にコピーしたダンプファイルをDBに流す
※本番用なのでテスト用の場合はファイル名やコンテナ名の箇所を適宜書き換えることdocker exec -it wordpress-silcity-mariadb-1 bash gunzip < /tmp/20260626_091903_silcity.sql.gz | mysql -u root silcitydb
- ダンプファイルの準備
- srdbによるDBデータの置換
DBデータのURLのドメインを開発用のlocalhostやlocalhost:8443に置換- 置換実行
事前にコンテナを起動しておき、プロジェクトフォルダ直下でターミナルで開いておく
下記コマンドで置換実行(お試し --dry-run)
※本番用なのでテスト用の場合は置換する文字列やコンテナ名の箇所を適宜書き換えること
(次項の補足に記載)docker exec -it wordpress-silcity-php-1 bash cd /var/www/srdb php srdb.cli.php -h mariadb -n silcitydb -u mtbrtcghtp -p 'I6MkjFOsSBWwV$oI' -s silcity.sr-net.co.jp -r localhost --dry-run
お試しの置換が正常完了確認後、下記で本置換php srdb.cli.php -h mariadb -n silcitydb -u mtbrtcghtp -p 'I6MkjFOsSBWwV$oI' -s silcity.sr-net.co.jp -r localhost
- 補足
置換のコマンドの各項目について
-h ホスト名
-n DB名
-u ユーザー名
-p パスワード
-s 置換元文字列
-r 置換先文字列
置換のコマンドでは -n -s -rの部分のみ本番用とテスト用で変更が必要
本番用:-n silcitydb -s silcity.sr-net.co.jp -r localhost
テスト用:-n silcitytestdb -s silcity-test.azurewebsites.net -r localhost:8443
- 置換実行
SSOプラグインの削除¶
下記のフォルダが存在する場合フォルダごと削除(初期コミット時のソースからは削除済)
public_html\wp-content\plugins\miniorange-saml-20-single-sign-on
画面表示の確認¶
Docker Desktopでwordpress-silcitytest、wordpress-silcitytestのコンテナを起動後画面にアクセスし表示を確認
- 本番用(wordpress-silcitytest)
[トップ画面](https://localhost/)
[管理画面](https://localhost/wp-login.php)
[phpMyAdmin](https://localhost/phpmyadmin} - テスト用(wordpress-silcitytest)
[トップ画面](https://localhost:8443/)
[管理画面](https://localhost:8443/wp-login.php)
[phpMyAdmin](https://localhost:8443/phpmyadmin) - 管理者画面ID/PW
ID:WPadmin
PW:xxQX98eP
デバッグの確認¶
- 確認方法
それぞれのコンテナを起動
VSCodeでwordpress-silcityまたはwordpress-silcitytestフォルダを開く
VSCode画面左のデバッグタブをクリックし実行とデバッグ ▷ボタンクリック
public_html\wp-content\themes\learning-portal\front-page.php の下記処理にブレークポイントを設定
トップ画面にアクセスし、設定した箇所で止まることを確認$uri = get_template_directory_uri();
ソースやDBデータの入れ替え時¶
最新取得したソースやDBのデータを上記で構築した既存環境に反映させる場合に実施- ソース入れ替え時
既に構築済の環境のpublic_htmlフォルダ内のファイルを削除またはバックアップとして移動
入れ替えるソースのwwwrootフォルダ内のファイルをすべてコピーしてpublic_htmlに格納
wp-config.phpの内容をwp-config設定項目の内容に変更
SSOプラグインの削除項目内容実施 - DBデータ入れ替え時
- 既に入っているデータの削除
プロジェクトフォルダでターミナルを開いて実行する
下記のコマンドでコンテナの削除とDB(作成したユーザー等も含む)の削除docker compose down -v
- DB設定項目の内容を再度実施
コンテナにコピー、流すファイルは取得したダンプファイルに読み替えて実施
- 既に入っているデータの削除
その他資料・注意事項等¶
- 注意事項
初期コミット時ソース内容ではphp.iniの display_errors = Off となっているので
開発時は on に変更した方がよい
また、ソースのpublic_html\wp-content\plugins\gamipress-fixed-page-reward\index.php ファイル
にて下記処理で未定義の変数($object_id)を使用している為エラーが出ているので注意
php.iniの設定でエラーが非表示になっている/** ===== UIにイベントを登録(ラベルは自由) ===== */ add_filter( 'gamipress_activity_triggers', function( $triggers ) { $group = 'ページ閲覧'; $triggers[ $group ] = $triggers[ $group ] ?? []; $triggers[ $group ][ GP_EVENT_KEY ] = '任意の投稿/固定ページを閲覧(ページごとカウント)' . get_the_title( $object_id ); return $triggers; } ); add_filter( 'gamipress_event_listeners', function( $listeners ) { $listeners[ GP_EVENT_KEY ] = array( 'label' => '任意の投稿/固定ページを閲覧(ページごとカウント)' . get_the_title( $object_id ), 'listener' => GP_EVENT_KEY, 'description' => '単一コンテンツ閲覧時に発火。specific_id にページIDを渡します。', 'supports' => array( 'points' => true, 'achievements' => true ), ); return $listeners; } ); - 手順書
下記フォルダ内SilCity_Docker_手順書.docx内容にて構築、本ページ編集
\\SWL-FS\案件-webソリューション(共有)\Docker - Docker
下記ファイルをそれぞれ本番用、テスト用のDockerとして使用
・本番用
\\SWL-FS\案件-webソリューション(共有)\Docker\wordpress-silcity.zip
・テスト用
\\SWL-FS\案件-webソリューション(共有)\Docker\wordpress-silcitytest.zip - 初期コミット時使用ソース・DBダンプファイル
・本番用
\\SWL-FS\案件-sr(共有)\202606_SRラーニングポータル保守\Dockerテスト用\20260626_091903_silcity.tar.gz
\\SWL-FS\案件-sr(共有)\202606_SRラーニングポータル保守\Dockerテスト用\20260626_091903_silcity.sql.gz
・テスト用
\\SWL-FS\案件-sr(共有)\202606_SRラーニングポータル保守\Dockerテスト用\20260625_104030_silcitytest.tar.gz
\\SWL-FS\案件-sr(共有)\202606_SRラーニングポータル保守\Dockerテスト用\20260625_104030_silcitytest.sql.gz