Docker撰写:httpd + php-fpm + mariaDB

时间:2019-12-03 12:08:54

标签: php apache docker docker-compose lamp

我正在尝试使docker环境LAMP像 但是我不能让HTTPD处理PHP文件

我不想使用Linux映像

这是我的docker-compose.yml的样子:

version: '2'

networks:
    LAMP:

services:
    apache:
        image: httpd:alpine
        container_name: LAMP_apache
        ports:
            - "80:80"
        volumes:
            - ./code:/var/www/html
            - ./httpd/httpd.conf:/usr/local/apache2/conf/httpd.conf
        depends_on:
            - php
        networks:
            - LAMP

        # for debugging
        #entrypoint: ["sh", "-c", "sleep infinity"]
        # entrypoint: ["sh", "-c", "sleep 2073600"]

    mariaDB:
        image: mariadb:latest
        container_name: LAMP_mariaDB
        volumes:
            - ./database:/var/lib/mysql:rw
        ports:
            - "3306:3306"
        depends_on:
            - apache
        environment:
            - MYSQL_ROOT_PASSWORD=654321          
        networks:
            - LAMP    

    php:
        image: php:fpm-buster
        container_name: LAMP_php
        volumes:
            - ./code:/var/www/html
        ports:
            - "9000:9000"       
        networks:
            - LAMP

HTTPD正在运行,但显示PHP文件代码

有人可以解释发生了什么吗?

1 个答案:

答案 0 :(得分:1)

我猜想您的httpd / virtualhost不包含连接php-fpm服务的信息。 例如,我们需要查看您的./httpd/httpd.conf。或者,您应该在httpd配置中的某处检查类似这样的内容:

    <FilesMatch \.(php|phar)$>
        SetHandler "proxy:fcgi://php:9000"
    </FilesMatch>

出于安全性和方便性考虑,如果不需要,请勿在主机上导出端口3306和9000。

希望您现在已经解决了问题:)