2016-03-03 1352 views
0

我有一些docker设置,包含一些本地主机的网站。我使用Smarty作为模板引擎,它需要有一个可写的templates_c文件夹。任何想法如何让这个文件夹可写?docker中的可写入文件夹权限

的错误是如下:

PHP Fatal error: Smarty error: unable to write to $compile_dir 
'/var/www/html/sitename.local/httpdocs/templates_c'. 
Be sure $compile_dir is writable by the web server user. in 
/var/www/html/sitename.local/httpdocs/libs/Smarty.class.php on 
line 1093 

我知道这可能是手动设置与Linux,但我正在寻找一个自动全球解决方案,因为我有很多的网站谁拥有这个问题

另外值得一提我使用的是很干净泊坞窗,compose.yml

php56: 
    build: . 
    dockerfile: /etc/docker/dockerfile_php_56 
    volumes: 
    - ./sites:/var/www/html 
    - ./etc/php:/usr/local/etc/php 
    - ./etc/apache2/apache2.conf:/etc/apache2/conf-enabled/apache2.conf 
    - ./etc/apache2/hosts.conf:/etc/apache2/sites-enabled/hosts.conf 
    ports: 
    - "80:80" 
    - "8080:8080" 
    links: 
    - mysql 


mysql: 
    image: mysql 
    ports: 
    - "3306:3306" 
    environment: 
    - MYSQL_ROOT_PASSWORD=MY_PASSWORD 
    - MYSQL_DATABASE=YOUR_DATABASE_NAME 
    volumes: 
    - ./etc/mysql:/docker-entrypoint-initdb.d 

随着基础小dockerfile:

FROM php:5.6-apache 

RUN /usr/local/bin/docker-php-ext-install mysqli mysql 
RUN docker-php-ext-configure mysql --with-libdir=lib/x86_64-linux-gnu/ \ 
    && docker-php-ext-install mysql 
RUN a2enmod rewrite 

https://github.com/wesleyd85/docker-php7-httpd-apache2-mysql(但随后的PHP 5.6)

+0

是您的文档ker守护进程运行在Linux主机或某些Mac boot2docker/docker-machine类型的设置上? –

+0

它正在与docker/docker-machine和docker-composose一起工作OSX – Wesley

+0

让我猜测:),你是从一个不在用户主目录中的文件夹运行它? 如果是这样,把设置在你的主目录,你应该很好,有80%的机会:) –

回答