php - 允许Apache写入本地同步的docker卷

标签 php apache docker docker-compose dockerfile

Docker文件

FROM php:5.6-apache
COPY config/php.ini /usr/local/etc/php/
RUN docker-php-ext-install mysql mysqli pdo pdo_mysql
RUN rm /var/log/apache2/access.log
RUN a2enmod rewrite
RUN a2enmod deflate
RUN a2enmod headers

docker-compose.yml
version: "2"
services:
  www:
    build: .
    ports: 
        - "8001:80"
    volumes:
        - ./www:/var/www/html/
    networks:
        - default

我在www中有一个名为photos的文件夹。在www/photos。我想使用我的php上传功能向其中写入文件。由于php-apache没有对该卷的写访问权,我得到了权限被拒绝的错误。如何授予apache写访问权限?

最佳答案

检查主机系统上目录的权限,可能 guest 没有写权限。如有必要,请使用chmod进行更改:

chmod 766 -R your/directory/

另外,您可以通过在行的末尾添加:rw(用于读/写)来指定在指定的已装载卷中写入docker内部的权限:
- ./www:/var/www/html/:rw

由于这应该是默认值,因此不必使用它,也不应该成为问题的一部分。

关于php - 允许Apache写入本地同步的docker卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52422202/

相关文章:

php - 如何检查 file_get_contents 在 PHP 中返回 false 的原因

php - 准备部分准备好的语句失败 - 直接在另一个准备好的语句下

PHP-用多列的最小值更新一列

linux - Ubuntu-Apache : How to start automatically apache at boot?

apache - Ant build 无法识别西类牙字符

docker - 从管道部署容器以供traefik 2管理的最佳方法是什么?

php - 有没有什么情况是我们没有主键的?

apache - 如何在 ubuntu 中启用 AllowEncodedSlashes

node.js - Docker Compose w/Gulp - 找不到本地 gulp

docker - 错误:对于应用没有此类设备