2017-06-15 18 views
2

TL; DR:WordPressは下記のdocker-compose configを使用してMySQLに接続できません。 データベース接続の確立中にエラーが発生しました。なぜですか?docker-compose - MySQLデータベースに接続できません

次のdocker-compose.ymlファイルを使用してLEMP開発環境を設定しています。

docker-compose.yml

version: '3' 
services: 
    nginx: 
    image: nginx 
    ports: 
     - '8080:80' 
    volumes: 
     - ./nginx/config/default.conf:/etc/nginx/conf.d/default.conf 
     - ../wordpress:/var/www/wordpress 
     - ./nginx/log:/var/log/nginx 
    depends_on: 
     - php 
    php: 
    image: php:fpm 
    ports: 
     - 9000:9000 
    volumes: 
     - ../wordpress:/var/www/wordpress 
    depends_on: 
     - mysql 
    mysql: 
    image: mysql 
    ports: 
     - "3306:3306" 
    environment: 
     MYSQL_ROOT_PASSWORD: secret 
     MYSQL_DATABASE: ado 
     MYSQL_USER: ado 
     MYSQL_PASSWORD: secret 
    volumes: 
     - ./mysql/data:/var/lib/mysql 

// inside php (`docker-compose exec php sh`) 
docker-php-ext-install mysqli 

// back on my local machine 
docker restart <php's container id> 

注(私は手動でもphp-mysqlをインストールするには、次の操作を行います):私は、MySQLのホストの両方localhost & mysqlを使用してみましたが。

答えて

1

大丈夫です。とった。

mysqlサービス内にデータベースを手動で作成した後、MySQL環境変数を追加しました。

MYSQL_ROOT_PASSWORD: secret 
    MYSQL_DATABASE: ado 
    MYSQL_USER: ado 
    MYSQL_PASSWORD: secret 

は私がなぜ100%わからないんだけど、(とPHPサービスの内部docker-php-ext-install mysqliとのphp-mysqliのインストール)再び、./mysql/dataでのMySQLのデータを削除docker-compose downをやって、その後docker-compose up -d後、すべてが働きました。

次に、WordPressのインストール画面が表示されます。インストールした後......私は空白の白い画面があります!

私のWordPressファイルにはデフォルトのテーマが含まれていなかったからです。

/wp-adminに行ってテーマをアクティブにした後、最終的にすべてが機能しました。完全のために

は、ここ./nginx/config/default.confにある私のnginxの設定です:

server { 
    listen    80 default_server; 
    listen    [::]:80 default_server; 

    root     /var/www/wordpress; 
    index    index.php index.html; 

    location = /favicon.ico { 
    log_not_found off; 
    access_log off; 
    } 

    location = /robots.txt { 
    allow all; 
    log_not_found off; 
    access_log off; 
    } 

    location ~ /\. { 
    deny all; 
    } 

    location ~* /(?:uploads|files)/.*\.php$ { 
    deny all; 
    } 

    location/{ 
    try_files $uri $uri/ /index.php?$args; 
    } 

    rewrite /wp-admin$ $scheme://$host$uri/ permanent; 

    location ~ \.php$ { 
    include /etc/nginx/fastcgi_params; 
    fastcgi_pass php:9000; 
    fastcgi_index index.php; 
    fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; 
    } 
} 
関連する問題