Docker Windows版WordPressを日本語化

Docker Windows版をインストール。

https://sollamu.com/how-to-build-a-local-wordpress-development-environment-using-docker/からdocker-compose.yml ファイルをコピーし、エディターを開いて保存(ドキュメントフォルダーなど)

name: my_project_wordpress

#version: '3.8' 

services:
# MySQLデータベース
db:
image: mysql:5.7
container_name: wordpress_db
restart: always
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: password
volumes:
- db_data:/var/lib/mysql

# WordPressアプリケーション
wordpress:
image: wordpress:latest
container_name: wordpress_app
restart: always
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: password
WORDPRESS_DB_NAME: wordpress
volumes:
- wordpress_data:/var/www/html
depends_on:
- db

# phpMyadmin
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
container_name: wordpress_phpadmin
restart: always
depends_on:
- db
ports:
- 8081:80

# データ永続化用のボリューム
volumes:
db_data:
wordpress_data:

コマンドプロンプトやターミナルを開いてドキュメントフォルダーにcdします。
(エクスプローラーでDocumentフォルダーを開いてアドレス欄にcmdと打ち込んでEnterで開きます。)

docker-compose up -d

を実行するとWordpress、MySQL、PHPMAdminのコンテナーをPullしてきます。

プロンプトに戻ったらブラウザーに

localhost:8080にアクセスすると、Wordpressの初期設定画面が表示される・・・

初期インストール画面で日本語を選択しているのにインストールすると英語版になっている。言語選択を日本語にして、時間をUTC+9に設定してもだめだった。(引っ張ってくるWordpressがだめなのか?)

同じファイルをMacにも適用してるが、Macはきちんと日本語でインストールできた。

とりあえず検索すると日本語版Wordpressをダウンロード→展開→アップロードで解決するとのこと

ダウンロード→展開

展開したファイルのフォルダーに移動して、ファイルをDockerアプリにコピーするのだが、

C:\Users\user\Downloads\wordpress-6.8.3-ja\wordpress>docker cp wp*.php wordpress_app:/vaw/www/html
CreateFile C:\Users\user\Downloads\wordpress-6.8.3-ja\wordpress\wp*.php: The filename, directory name, or volume label syntax is incorrect.

とエラーになる。

検索してみると docker cpコマンドはワイルドカードに対応していない😂って

しょうがないので解凍したファイルがある一つ上のフォルダーに移動してフォルダーごとWordpressが起動している一つ上のフォルダーにコピーしてみる

cd ..
C:\Users\user\Downloads\wordpress-6.8.3-ja>docker cp wordpress wordpress_app:/var/www/
Successfully copied 89.2MB to wordpress_app:/var/www/

フォルダーはコピーできたので、

docker exec -it wordpress_app /bin/bashをコマンドプロンプトで実行してコンテナ内のシェルを実行して

コピーしたwordpressフォルダーにcdして

  1. ファイルの所有者がroot所有者がrootなので所有者、グループをwww-dataに
    chownコマンドを発行
  2. -a 元ファイルの属性とディレクトリの構成を保持してコピーする
    -f コピー先に同じ名前のファイルがある際に警告なしで上書きをする。
    -p 元のファイルのオーナー、グループ、パーミション、タイムスタンプを保持
    -r コピー元にディレクトリを指定した場合、再帰的に(サブディレクトリも含めて)コピーする
  3. 指定してcpコマンドを実行
/var/www/wordpress# chown -Rf www-data:www-data *
/var/www/wordpress# cp -afpr * ../html/

これで画面が日本語になった。

dockerがプロキシー配下だといろいろ設定が必要になる模様
curlが認証エラーになる、
phpのMAXサイズがエラーになるなどなどいろいろ修正する必要があった。
さらに、
docker exec -it wordpress_app /bin/bash
実行してapt-get updateがエラーになってvimがインストールできない・・・

phpは/usr/local/etc/php/に
php.ini-development
php.ini-production
の2つのファイルが用意されているので

cp php.ini-production php.iniを実行してphp.iniを作成

php.iniを修正するが、vimがインストールされていない

apt-get updateを実行するとエラーになる(これは上位回線の逼迫によるので、設定云々で解決できない

Docker desktopの画面から内容を変更できることがわかったので、

post_max_size = 8M → post_max_size = 50M
upload_max_filesize = 2M → upload_max_filesize = 50M

を設定

WordPressの外観(テーマ)をCocoonにしたいのだが、Cocoon-masterが上記の制限でインストールできなかったが、php.iniを変更してmasterとchildをインストールでき、テーマをcocoon-childに。

プラグインをインストール時に出るcurlのエラーはCocoon-childのfunctions.iniに

//証明書の検証を無視
add_action('http_api_curl', function( $handle ){
curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
}, 10);を

を追加して回避(証明書を入れ替えてみたが、エラーになるみたいなのでもしかするとプロキシ経由の環境が影響しているのかも)

これでLocalをから記事をエクスポートしてインポートして、画像をdocker cpを使ってコンテナにコピー。MediaSyncプラグインをインストールして メディアをインストール。

ローカル環境からアクセスできるようにWordpressの設定をlocalhostからIPアドレスに変更することで、イントラ内部からのアクセスが可能になった。

タイトルとURLをコピーしました