Cześć,
potrzebuje lokalnie uruchomić stary projekt napisany w php 5.6 dlatego chciałem użyć Dockera, żeby nie instalować starej wersji PHP w systemie.
Użyłem tego rozwiązania https://github.com/mzazon/php-apache-mysql-containerized
Plik z projektem wrzuciłem do katalogu public_html i projekt udało się uruchomić.
Problem pojawił się w momencie kiedy skrypt PHP próbował coś zapisać na dysku. Dostaje cały czas taki komunikat:
Warning: file_put_contents(people.txt): failed to open stream: Permission denied in /var/www/html/index.php on line 16
Próbowałem zmienić uprawnienia do folderu w kontenerze na różne sposoby ale bez efektu.
Może ktoś bardziej doświadczony będzie w stanie pomóc?
Tak wyglądają pliki:
docker-compose.yml
version: "3.2"
services:
php:
build:
context: './php/'
args:
PHP_VERSION: ${PHP_VERSION}
networks:
- backend
volumes:
- ${PROJECT_ROOT}/:/var/www/html
container_name: php
apache:
build:
context: './apache/'
args:
APACHE_VERSION: ${APACHE_VERSION}
depends_on:
- php
networks:
- frontend
- backend
ports:
- "81:80"
volumes:
- ${PROJECT_ROOT}/:/var/www/html
container_name: apache
networks:
frontend:
backend:
volumes:
data:
PHP
ARG PHP_VERSION="5.6-cli"
FROM php:${PHP_VERSION:+${PHP_VERSION}-}fpm-alpine
RUN apk update;
apk upgrade;
RUN docker-php-ext-install mysqli
#RUN chown -R www-data:www-data /var/www/
#RUN chmod 755 /var/www/
APACHE:
ARG APACHE_VERSION="2.4"
FROM httpd:${APACHE_VERSION:+${APACHE_VERSION}-}alpine
RUN apk update;
apk upgrade;
Copy apache vhost file to proxy php requests to php-fpm container
COPY demo.apache.conf /usr/local/apache2/conf/demo.apache.conf
RUN echo "Include /usr/local/apache2/conf/demo.apache.conf"
>> /usr/local/apache2/conf/httpd.conf
#RUN chown -R www-data:www-data /var/www/html
#RUN chmod 755 /var/www/html