gpt4 book ai didi

php - 如何使用 Docker 设置 PHP $_SERVER 变量?

转载 作者:可可西里 更新时间:2023-10-31 22:40:14 25 4
gpt4 key购买 nike

我已经使用 Docker 创建了一个 PHP/Apache/MySQL 开发环境,并想设置我可以在 PHP 中与 $_SERVER 一起使用的变量。

通常我会在我的虚拟主机中配置类似的东西

SetEnv ENV "开发"

有没有办法用我的 docker_compose.yml 文件做到这一点?我将尝试在我的 docker-compose 文件中使用 environment: - ENV=developement 但它不起作用。

这是我的 Dockerfile

FROM php:5.6-apache

RUN apt-get update -y && apt-get install -y libpng-dev curl libcurl4-openssl-dev

RUN docker-php-ext-install pdo pdo_mysql gd curl

RUN a2enmod rewrite

RUN service apache2 restart

和我的docker-compose.yml

version: '2'

services:
webserver:
build: ./docker/webserver
image: dev_web
ports:
- "80:80"
- "443:443"
volumes:
- /pathtodev/www:/var/www/html
links:
- db
environment:
- ENV=developement

db:
image: mysql:5.7
ports:
- "3306:3306"
volumes:
- ./db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=******
- MYSQL_DATABASE=db_dev

最佳答案

考虑以下Dockerfile

FROM php:5.6-apache

RUN apt-get update -y && apt-get install -y libpng-dev curl libcurl4-openssl-dev

RUN docker-php-ext-install pdo pdo_mysql gd curl

RUN a2enmod rewrite

RUN service apache2 restart

RUN echo 'PassEnv FIRST_NAME' > /etc/apache2/conf-enabled/expose-env.conf
RUN echo '<?php echo $_SERVER["FIRST_NAME"];' > /var/www/html/first.php && echo '<?php echo $_SERVER["LAST_NAME"];' > /var/www/html/last.php

现在运行容器使用

docker run -it -e FIRST_NAME=TARUN -e LAST_NAME=LALWANI -p 80:80 4ba2aa50347b

测试

$ curl localhost/first.php
TARUN

$ curl localhost/last.php
$

如您所见,只有 FIRST_NAME 可以访问,因为我们在容器内的 apache 配置中使用 PassEnv 指令公开了它

关于php - 如何使用 Docker 设置 PHP $_SERVER 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46227277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com