首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP不能在docker容器中写入

PHP不能在docker容器中写入
EN

Stack Overflow用户
提问于 2016-10-03 23:44:50
回答 1查看 4.3K关注 0票数 4

我正试图在码头上创建一个工作流。这很简单:只需用PHP和MySQL进行小测试。

我的docker-compose.yml

代码语言:javascript
复制
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

和我的文档

代码语言:javascript
复制
FROM php:5.6-apache

RUN docker-php-ext-install mysqli

没关系:我可以打开容器,但是PHP本身不能在目录中写入(比如fwrite()或类似的)。

我做了很多研究,尝试了很多教程,但什么都没有.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-07 20:29:30

Apache与用户www-data一起运行PHP,此用户需要对主机目录./public_html具有写访问权限。

要解决这个问题,请转到您的docker目录并执行以下命令,以更改您的public_html目录的所有者和其中的所有文件。

代码语言:javascript
复制
sudo chown -R www-data:www-data public_html

之后,您需要允许组"www-data“中的用户编辑文件。

代码语言:javascript
复制
# 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组中:

代码语言:javascript
复制
sudo usermod -aG www-data $USER
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39842112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档