【问题标题】:docker httpd php .htacces load but php files do notdocker httpd php .htaccess 加载但 php 文件不加载
【发布时间】:2020-08-01 09:13:56
【问题描述】:

我正在尝试使用 docker-compose 加载一个使用 .htaccess 启动的 php 应用程序。

如果我使用 proxypassmatch 它可以工作,但仅适用于一条路线,一旦 url 更改,文件就找不到了(我读到 proxypass/reverseproxy/proxypassmatch)不能与 .htaccess 一起使用...?

如果我使用传统设置,使用虚拟主机,.htaccess 正在工作,但 php 文件不加载,它的内容会出现在屏幕上(无论路径如何)。

我花了这么多时间到处寻找没有任何答案......或者也许改变单个容器 php-httpd 的图像?但我喜欢把它们分开的想法。

如果有人知道如何解决它,那就太好了。

查看 docker-compose 文件

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

【问题讨论】:

    标签: php apache docker docker-compose


    【解决方案1】:

    我终于改变了图像(我不喜欢,但看起来没有人知道如何处理这个图像,即使在 Docker 论坛上也是如此......),我使用 php:7.2.1-apache 然后效果很好。查看docker文件的配置:running-virtual-hosts-in-apache-docker-container

    我使用 docker-compose 将它连接到 mysql 的映像(就像以前一样)。

      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'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-09
      • 1970-01-01
      相关资源
      最近更新 更多