PHP无法在Docker容器中编写

问题描述:

我正在尝试在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)。 –

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 ...但毕竟没有工作... –