2016-10-03 61 views
1

我正在嘗試在Docker中創建工作流程。 很簡單:只需PHP和MySQL即可進行小測試。PHP無法在Docker容器中編寫

泊塢窗,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

這一切ok:我可達集裝箱,但PHP本身不能在目錄寫入(如fwrite()或類似的)。

我研究了很多,嘗試了很多的教程,但沒有...

+0

你能告訴我你的php Dockerfile嗎?我認爲它是由許可問題引起的。 – Gabbax0r

+0

我想你是寫@ Gabbax0r,但我是新的Linux ... 我的Dockerfile已經有問題,並指向[php5.6-apache](https://github.com/docker-library/php/ blob/1c56325a69718a3e3cf76179e75d070b7e23da62/5.6/Dockerfile)。 –

回答

2

Apache運行PHP與用戶www-data,該用戶需要有對你的主機目錄的寫入權限./public_html

要解決那麼,轉到您的docker-compose目錄並執行以下命令來更改您的public_html目錄的所有者以及其中的所有文件。

sudo chown -R www-data:www-data 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 {} \; 

爲了使您的當前用戶編輯您需要添加它這些文件到www-data組:

sudo usermod -aG www-data $USER 
+0

這是'chown -R' –

+0

@MárioValney你是真實的,回答編輯 – ChVuagniaux

+0

謝謝@ChVuagniaux ...但畢竟沒有工作... –

相關問題