我正在尝试使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文件代码
有人可以解释发生了什么吗?
答案 0 :(得分:1)
我猜想您的httpd / virtualhost不包含连接php-fpm服务的信息。
例如,我们需要查看您的./httpd/httpd.conf
。或者,您应该在httpd配置中的某处检查类似这样的内容:
<FilesMatch \.(php|phar)$>
SetHandler "proxy:fcgi://php:9000"
</FilesMatch>
出于安全性和方便性考虑,如果不需要,请勿在主机上导出端口3306和9000。
希望您现在已经解决了问题:)