2017-01-05 18 views
0

をインストールに失敗した私は、単純なドッキングウィンドウdevの環境設定を取得しようとしているが、ドッキングウィンドウは、PHPのMySQLの拡張機能をインストールされていません。致命的なエラーが発生する - 定義されていない関数mysql_connect()を呼び出します。私は同じ結果を持つ異なるPHPバージョン(5.4、5.5、5.6、7.0)を試しました。どんな助けもありがとう。ドッカーは、PHPのMySQL拡張

ドッキングウィンドウ-compose.yml

version: '2' 

volumes: 
    database_data: 
     driver: local 

services: 

    nginx: 
     image: nginx:latest 
     ports: 
      - 8080:80 
     volumes: 
      - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf 
     volumes_from: 
      - php 

    php: 
     build: ./docker/php/ 
     expose: 
      - 9000 
     volumes: 
      - .:/var/www/html 

    testing: 
     build: ./docker/php/ 
     volumes_from: 
      - php 

    mysql: 
     image: mysql:latest 
     expose: 
      - 3306 
     volumes: 
      - database_data:/var/lib/mysql 
     environment: 
      MYSQL_ROOT_PASSWORD: secret 
      MYSQL_DATABASE: project 
      MYSQL_USER: project 
      MYSQL_PASSWORD: project 

PHP Dockerfile

FROM php:7.0-fpm 

# Install pdo_mysql 
RUN apt-get update \ 
    && echo 'deb http://packages.dotdeb.org jessie all' >> /etc/apt/sources.list \ 
    && echo 'deb-src http://packages.dotdeb.org jessie all' >> /etc/apt/sources.list \ 
    && apt-get install -y wget \ 
    && wget https://www.dotdeb.org/dotdeb.gpg \ 
    && apt-key add dotdeb.gpg \ 
    && apt-get update \ 
    && apt-get install -y php7.0-mysql \ 
    && docker-php-ext-install pdo_mysql mysqli mysql 
+0

[これらの拡張機能](http://php.net/manual/en /migration70.removed-exts-sapis.php)はPHP 7で削除され、以前のバージョンでは廃止されました。 MySQLiとPDOについて学んでください。 –

+0

申し訳ありませんが、私は、このコードはmysqliのを使用しようとすると、その後mysqliのが利用できない場合、MySQLにフォールバックのように7が見えるサポートワードプレスのサイトであることを言及したはずです。 https://github.com/WordPress/WordPress/blob/master/wp-includes/wp-db.php#L1504 –

答えて

1

私はWPドッカーレポを見て、自分のphp Dockerfileを使用し、それが働きました。

# install the PHP extensions we need 
RUN apt-get update && apt-get install -y libpng12-dev libjpeg-dev && rm -rf /var/lib/apt/lists/* \ 
    && docker-php-ext-configure gd --with-png-dir=/usr --with-jpeg-dir=/usr \ 
    && docker-php-ext-install gd 
RUN docker-php-ext-install mysqli 
0

あなたはこのPHP拡張モジュールは、コンテナ内

docker-php-ext-install mysqli 

(dockerfileの内側)に機能をインストールした場合:

docker-php-ext-install mysqli 
apache2ctl restart