choblog

未分類

2025/02/08

2025/04/06

キャッチアップ画像

headless wordpress (3) wordpress初期設定

~ 目次 ~

    1 wordpress 初期設定

    前回まででdocker composeによる開発環境の構築、https-portalをwebサーバーにしてフロントエンド、wordpressの管理画面をそれぞれブラウザに表示させることができました。

    headless-wordpress/
    ├── frontend-next/
    ├── backend-wp/
    │   └── my-theme/
    │       ├── index.php
    │       ├── functions.php
    │       └── style.css
    └── docker/
        ├── development/
        │   ├── Dockerfile
        │   └── docker-compose.yml
        └── production/
            ├── Dockerfile
            └── docker-compose.yml

    今回はwordpressの初期設定をしていきます。

    先ずブラウザで

    https://wp.localhost.net/wp-admin

    として言語の選択〜サイト名などを入力していきます。

    「検索エンジンにインデックスさせない」のところは、インデックスさせたいのはフロントエンド側なのでチェックを入れておきます。

    ユーザー名、パスワードを入力してログインできたら「外観」からmy-themeが反映されているのを確認して有効化しておきます。

    次に「設定」〜「表示設定」で先程の「検索エンジンにインデックスさせない」にチェックが入っているのを確認。

    「パーマリンク」で「投稿名」を選択したら「変更を保存」ボタンを押して設定を反映させます。

    2 php.iniファイルの設定

    php.iniファイルはwordpressの構成する重要なファイルですがまず最初に必要となるアップロードデータの上限を増やす設定をしていきます。

    全体の流れとしてはbackend-wpコンテナ内に入ってphp.ini-developmentファイルをコピー、ローカル側で設定を変更、変更したファイルをバインドマウントします。こうすることでビルド時にいちいち設定を変更しないで済むようになります。

    まずは

    docker exec -it backend-wp bash

    としてコンテナ内に入り

    cd /usr/local/etc/php/

    とします。

    ls

    として、php.ini-developmentと、php.ini-productionという2種類のファイルがあるのを確認したらbackend-wpに移動して、次のコマンドでコピーしてきます。

    docker cp backend-wp:/usr/local/etc/php/php.ini-development php.ini

    コピーができたら次のようにphp.iniファイルが追加されたと思います。

    headless-wordpress/
    ├── frontend-next/
    ├── backend-wp/
    │   ├── my-theme/
    │   │   ├── functons.php
    │   │   ├── index.php
    │   │   └── style.css
    │   └── php.ini
    └── docker/
        ├── development/
        │   ├── Dockerfile
        │   └── docker-compose.yml
        └── production /
            ├── Dockerfile
            └── docker-compose.yml

    そうしたら今コピーしてきたphp.iniファイルの設定内容を変更していきます。とりあえず次の3 つの変更を加えると良さそうです。

    upload_max_filesize = 128M
    post_max_size = 256M
    memory_limit = 512M

    特にupload_max_filesizeはデフォルトだと2Mとかなり少なく、まともに画像がアップロードできないので設定は必須でしょう。お使いのエディターでそれぞれの項目を一つずつ探して値を変更したら保存します。

    そうしたら次はそのファイルをコンテナにバインドマウントする設定をdocker-compose.ymlファイルに加えます。

    ./docker/development/docker-compose.yml~

        backend-wp:
        depends_on:
          - db
        image: wordpress:latest
        container_name: backend-wp
        environment:
          WORDPRESS_DB_HOST: db:3306
          WORDPRESS_DB_NAME: wp_db
          WORDPRESS_DB_USER: wp_user
          WORDPRESS_DB_PASSWORD: wp_password
        ports:
          - "8080:80"
        volumes:
          - ../../backend-wp/my-theme:/var/www/html/wp-content/themes/my-theme
    +     - ../../backend-wp/php.ini:/usr/local/etc/php/php.ini
          - wordpress_data_cabala:/var/www/html
        restart: always
    

    + の部分が加えた箇所です、変更を加えたphp.iniファイルをコンテナのphpディレクトリ内にマウントしています。

    php.ini-developmentファイルに直接バインドすればいいのでは?とも思いますが、どうもそれだとうまく行かないようです。

    これでビルドし直しても設定の変更は維持されます。

    compose upし直して反映されるか確認してみます。

    docker compose down
    docker compose up -d

    コンテナが立ち上がったらwordpressの管理画面に入り「新規投稿を追加」ボタンを押して右サイドパネルの「投稿」を選択、「アイキャッチ画像を設定」をクリックしてファイルをアップロードタブを選択、最大アップロードサイズが128Mに変更されていれば成功です。

    次はいよいよbackend-wp側で記事を作成〜frontend-next側からコンテンツのデータを取得する流れを解説していきます。

    広告

    広告

    広告

    広告

    広告

    広告