docker httpd php .htacces загружается, но файлы php не загружаются - PullRequest
0 голосов
/ 01 августа 2020

Я пытаюсь использовать docker -compose для загрузки приложения php, которое загружается с .htaccess.

Если я использую proxypassmatch, он работает, но только для одного маршрута, как только изменение URL-адреса, файл не найден (я читал, что proxypass / reverseproxy / proxypassmatch) нельзя использовать с .htaccess ...?

Если я использую традиционные настройки с виртуальным хостом, файл .htaccess работает, но файл php не загружается, вместо этого его содержимое отображается на экране (независимо от маршрута).

Я потратил столько часов на поиски повсюду без каких-либо ответов ... Или, может быть, изменил изображение для одного контейнера php -httpd? но мне нравится идея разделить их.

Если кто-то знает, как это исправить, было бы большое спасибо.

См. docker -составить файл

version: "3.2"
services:
  php:
    build: './php/'
    volumes:
      - ./MediterPourGrandir/:/var/www/html/  
  apache:
    build: './apache/'
    depends_on:
      - php
      - mysql
    ports:
      - "80:80"
    volumes:
      - ./MediterPourGrandir/:/var/www/html/
  mysql:
    image: mysql:5.6.40
    #restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=monsupersite
      - MYSQL_PASSWORD=root
    ports:
      - "3306:3306"

apache Dockerfile

FROM httpd:2.4.33-alpine

RUN apk update; \
    apk upgrade;

# Copy apache vhost file to proxy php requests to php-fpm container

RUN sed -i '/LoadModule rewrite_module/s/^#//g' /usr/local/apache2/conf/httpd.conf && \
   sed -i 's#AllowOverride [Nn]one#AllowOverride All#' /usr/local/apache2/conf/httpd.conf

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

apache файла конфигурации

serverName localhost

    <VirtualHost *:80>
      
        DocumentRoot /var/www/html/
        <Directory /var/www/html/>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>
        
        # Send apache logs to stdout and stderr
        CustomLog /proc/self/fd/1 common
        ErrorLog /proc/self/fd/2
    </VirtualHost>

и php Dockerfile

FROM php:7.2.7-fpm-alpine3.7

RUN apk update; \
    apk upgrade;

RUN apk update --no-cache \
    && apk add --no-cache $PHPIZE_DEPS \
    && apk add --no-cache mysql-dev \
    && docker-php-ext-install pdo pdo_mysql

1 Ответ

0 голосов
/ 07 августа 2020

Я наконец меняю изображение (мне не понравилось, но похоже, что никто не знает, как с этим делать, даже на Docker форуме ...), я использую php:7.2.1-apache, тогда он отлично работает. См. Конфигурацию файла docker: running-virtual-hosts-in- apache - docker -container

Я подключаю его к образу mysql (как это было раньше) с использованием docker -compose.

  version: "3.2"
services:
  php-apache:
    build:
      context: ./apache-php
    ports:
      - 80:80  
    volumes:
      - ./MediterPourGrandir/:/var/www/html/  
  mysql:
    image: mysql:5.6.40
    #restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=monsupersite
      - MYSQL_PASSWORD=root
    ports:
      - "3306:3306"
        #volumes:
        #- ./var/www/html/'monsupersite (1).sql':/docker-entrypoint-initdb.d/'monsupersite (1).sql'
...