@destroy_fukuma

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

yamlファイルでのMYSQL の接続

docker-compose.yamlファイルに以下の記述を行いました。

version: '3'

services:
    php:
        image: php:7.2-apache
        volumes:
        - ./php.ini:/usr/local/etc/php/php.ini
        - ./html:/var/www/html
        ports:
        #こいつがフロントエンド
        - 8080:80
    mysql:
        image: mysql:5.5
        volumes:
        - ./mysql:/var/lib/mysql
        environment:
        - MYSQL_ROOT_PASSWORD=root
        - MYSQL_DATABASE=root
        - MYSQL_USER=root
        - MYSQL_PASSWORD=root
                - TZ=Asia/Tokyo
    phpmyadmin:
        image: phpmyadmin/phpmyadmin
        environment:
        - MYSQL_ROOT_PASSWORD=root
        - MYSQL_DATABASE=root
        - MYSQL_USER=root
        - MYSQL_PASSWORD=root
        ports:
        - 4040:80
        volumes:
        - ./phpmyadmin/sessions:/sessions

docker-compose up -d で起動したところ

Creating network "my_php_default" with the default driver
Creating my_php_php_1        ... done
Creating my_php_phpmyadmin_1 ... done
Creating my_php_mysql_1      ... done

以上のログが出て、

localhost:8080

に接続するとフロント側は確かに起動します。ただし、

localhost:4040

にアクセスすると

phpMyAdmin - Error
Error during session start; please check your PHP and/or webserver log file and configure your PHP installation properly. Also ensure that cookies are enabled in your browser.

session_start(): Session data file is not created by your uid

session_start(): Failed to read session data: files (path: /sessions)

というエラー画面になります。

どうしたら解決しますか?

ちなみに、 localhost:4040のdocker を docker log で確認したところ、

AH00558: apache2: Could not reliably determine the server's fully qualified domain name using 172.18.0.4. Set the 'ServerName' directive globally to suppress this message

のエラーログを確認しました。

ただ、こちらのメッセージは以前、ログで確認する前に、docker-compose up の時のlog で出ていたメッセージで、その時はフロント側も起動しませんでした。ただこちらのページの手法

を取ると解決(フロントの起動)したのですが、バック側が起動せず、エラーになります。どうしたらいいでしょうか

0 likes

2Answer

phpmyadmin コンテナから mysql コンテナに繋ぐための設定が不足してるように見えます。
phpmyadmin の Docker イメージの使い方を調べると良いのではないでしょうか?

環境変数として PMA_~~ で始まるものが多数存在しますがその中のうちの PMA_HOST=mysql の設定を行うことで何か変わるかもしれません。

0Like

Comments

  1. @destroy_fukuma

    Questioner

    有難うございます
    これってmysqladminのサイトに接続出来れば成功でよろしいですか?

  2. @destroy_fukuma

    Questioner

    PMA_HOST=mysqlを追加してもエラーは解消されませんでした

session_start(): Session data file is not created by your uid
session_start(): Failed to read session data: files (path: /sessions)

/sessions のパーミッションがあっていないのでは?

DockerHubから phpmyadmin/phpmyadmin を取ってくると

$ docker run -it --rm phpmyadmin/phpmyadmin ls -ld /sessions
drwxrwxrwt 2 www-data www-data 4096 Jan 24 14:56 /sessions

/sessions は存在していてオーナーは www-data です。
(しかも誰でも読み書きできる状態ですね)

        volumes:
        - ./phpmyadmin/sessions:/sessions

/sessions をボリュームマウントしているのでパーミッションが合わず セッションファイルが作れないのだと思います。
こだわりが無ければ、この部分を compose.yaml から削除すればよいと思います。

0Like

Your answer might help someone💌