2016-10-03 18 views
1

ドッカーでワークフローを作成しようとしています。 それは簡単です:わずかなテストにPHPとMySQLだけ。PHPがドッカーコンテナに書き込めない

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

web: 
    build: .docker 
    links: 
    - mysql:mysql 
    ports: 
    - "80:80" 
    - "443:443" 
    volumes: 
    - ./public_html:/var/www/html 
mysql: 
    image: mysql:5.7 
    environment: 
    - MYSQL_ROOT_PASSWORD=root 
    volumes: 
    - "./.data/db:/var/lib/mysql" 
phpmyadmin: 
    image: phpmyadmin/phpmyadmin 
    ports: 
    - "8080:80" 
    links: 
    - mysql:mysql 
    environment: 
    - PMA_HOST=mysql 
    volumes: 
    - /sessions

そして、私のDockerfile

FROM php:5.6-apache 

RUN docker-php-ext-install mysqli

それはすべて大丈夫だ:私はコンテナをアップすることができますが、PHP自体のような(ディレクトリに書き込むことはできませんfwrite()等)。

が、私は多くのことを研究し、チュートリアルの多くを試みたが、何も...

+0

あなたは私にあなたのPHP Dockerfileを表示できますか?私はそれが許可問題によって引き起こされたと思う。 – Gabbax0r

+0

私はあなたが@ Gabbax0rを書いていると思いますが、私はLinuxで新しくなっています... 私のDockerfileは既に質問されており、[php5.6-apache](https://github.com/docker-library/php/)を指しています。 blob/1c56325a69718a3e3cf76179e75d070b7e23da62/5.6/Dockerfile)をHUBに入れます。 –

答えて

2

Apacheはユーザーwww-dataでPHPを実行していない、このユーザーは、ホストディレクトリに書き込みアクセス権を持っている必要があり./public_html

修正するにはdocker-composeディレクトリに移動し、次のコマンドを実行して、public_htmlディレクトリとその中のすべてのファイルの所有者を変更します。あなたがグループ「WWWデータ」のユーザーは、あなたがそれを追加する必要があり、これらのファイルを編集するには、現在のユーザーのためにファイル

# To change all the directories to 775 
# (write for user & group www-data, read for others): 
find public_html -type d -exec chmod 775 {} \; 

# To change all the files to 664 
# (write for user & group www-data, read for others): 
find public_html -type f -exec chmod 664 {} \; 

を編集できるようにする必要がある。その後

sudo chown -R www-data:www-data public_html 

www-dataグループに:

sudo usermod -aG www-data $USER 
+0

これは 'chown -R'です –

+0

@MárioValneyあなたは本当です、答えは – ChVuagniaux

+0

ありがとうございます@ChVuagniaux ...しかし、すべての後に動作しませんでした... –

関連する問題