首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >docker httpd php .htacces加载,但php文件不加载

问docker httpd php .htacces加载,但php文件不加载
EN

Stack Overflow用户
提问于 2020-08-01 17:13:57
回答 1查看 649关注 0票数 0

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

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

如果我使用传统的设置,使用虚拟主机,.htaccess可以工作,但是php文件不能加载,而不是它的内容出现在屏幕上(不管是什么路由)。

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

如果有人知道如何修复它,那就太好了,谢谢。

请参阅docker-compose文件

代码语言:javascript
复制
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

代码语言:javascript
复制
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配置文件

代码语言:javascript
复制
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

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-07 16:21:26

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

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

代码语言:javascript
复制
  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'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63203592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档