У меня есть установка докеров с некоторыми сайтами для localhost. Я использую Smarty как мой механизм шаблонов, и для этого требуется наличие папки для записи templates_c. Любая идея, как я могу сделать эту папку доступной для записи?Разрешения на доступ к папке в докере
Ошибка заключается в следующем:
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)
ваш Doc ker daemon запущен на хосте Linux или какой-либо Mac-загрузчик/докер-машина? –
Он работает на OSX с докере/докер-машиной и док-компостом – Wesley
Позвольте мне угадать :), вы используете это из папки, которая не находится в домашнем каталоге вашего пользователя? Если это так, установите настройку в вашем домашнем каталоге, и вы должны быть хорошими с 80% шансом :) –