Docker文件PHP中的环境variables问题
我正在使用PHP Apache的docker文件。 我在docker文件中声明了一些环境variables,但是当我运行docker的时候,它只能得到Apache环境variables,而我的环境variables不起作用。 这里是我的docker文件。
# Install dependencies From ubuntu:16.04 RUN apt-get update -y RUN apt-get update && apt-get -y upgrade && DEBIAN_FRONTEND=noninteractive apt-get -y install \ vim apache2 php7.0 php7.0-mysql php7.0-gd php7.0-mbstring libapache2-mod-php7.0 curl lynx-cur RUN service apache2 stop # Install app RUN rm -rf /var/www/html/* ADD . /var/www/html # Configure apache RUN a2enmod php7.0 RUN a2enmod rewrite RUN chown -R www-data:www-data /var/www/html/backend/runtime /var/www/html/backend/web/assets /var/www/html/uploads RUN sed -i '/<Directory \/var\/www\/>/,/<\/Directory>/ s/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf ENV APACHE_RUN_USER www-data ENV APACHE_RUN_GROUP www-data ENV APACHE_LOG_DIR /var/log/apache2 ENV APACHE_LOCK_DIR /var/lock/apache2 ENV APACHE_PID_FILE /var/run/apache2.pidd ENV test myenv_variable_value EXPOSE 80 RUN service apache2 start CMD ["apache2", "-D", "FOREGROUND"]
虽然我可以轻松打印APACHE_PID_FILE
但是当我尝试test
它不工作。 这里是我的PHP方法
<?php getenv('APACHE_PID_FILE'); $_ENV['test'] getenv('test'); ?>
这两种方法在testing环境下都不起作用。
谢谢
问题是Apache不公开暴露Apache启动的环境variables。 您需要使用您的configuration公开这些环境variables。 Apache有一个你需要使用的PassEnv
指令
https://httpd.apache.org/docs/current/mod/mod_env.html
PassEnv test
这将通过环境test
到您的页面。 你需要它来做你想暴露的每个环境。