JackZhou 2020-07-29
之前使用 Nginx 容器配置了反向代理,但是初始的 Nginx 容器没有预先安装 php 相关组件。在尝试了各种各样的方法之后,也没有在 Nginx 容器中实现 php 编译。
本文简记 Nginx 容器链接 php:rc-fpm 容器实现 php 编译。
Nginx
sudo docker pull nginx:latest
php:rc-fpm
Dockerhub : php 说明 。
这里拉取的是官方发布的 php 镜像变体,标签为: rc-fpm
。
sudo docker pull php:rc-fpm
这里使用 docker-compose 运行容器。
version: ‘3.1‘ services: php-rc-fpm: restart: always image: php:rc-fpm container_name: php-rc-fpm networks: amber-net: ipv4_address: 172.20.0.6 volumes: - /opt/docker_nginx/conf.d/nginxHtml:/var/www/html nginx: restart: always image: nginx:latest container_name: nginx networks: amber-net: ipv4_address: 172.20.0.5 links: - php-rc-fpm ports: - 80:80 - 443:443 volumes: - /opt/docker_nginx/conf.d:/etc/nginx/conf.d networks: amber-net: external: true
请参阅: Nginx 容器反向代理和 SSL 配置 。
示例:
...... server{ listen 80; return 301 https://$host$request_uri; } server{ listen 443 ssl; server_name $host; # SSL ...... # HSTS ...... location / { root /etc/nginx/conf.d/nginxHtml; index index.php; } location ~ \.php$ { root /var/www/html; fastcgi_pass php-rc-fpm:9000; fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name; include fastcgi_params; } }
更多配置 Nginx 容器信息,请参阅: 运行配置 Nginx 容器 。
编译测试。
sudo docker-compose build
启动运行容器:
sudo docker-compose up -d
html 网页。
.php 文件
<?php. if (!empty($_POST)) {. $data1 = $_POST["data1"];$data2 = $_POST["data2"];$fuhao = $_POST["fuh