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して
- ファイルの所有者がroot所有者がrootなので所有者、グループをwww-dataに
chownコマンドを発行 - -a 元ファイルの属性とディレクトリの構成を保持してコピーする
-f コピー先に同じ名前のファイルがある際に警告なしで上書きをする。
-p 元のファイルのオーナー、グループ、パーミション、タイムスタンプを保持
-r コピー元にディレクトリを指定した場合、再帰的に(サブディレクトリも含めて)コピーする - 指定して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アドレスに変更することで、イントラ内部からのアクセスが可能になった。
