Tag: PHP

如何阻止Cloudflare / Docker / NGINX / LAMP站点中的客户端IP地址丢失?

问题是PHP字段$_SERVER['HTTP_CLIENT_IP']没有在我的以下站点结构中设置,我应该如何解决这个问题? Docker桥接networking上的静态IP容器(在cloudflare后面的主机上)名为“back”: 运行在容器中的NGINX(172.24.02) 容器中的Apache + PHP(172.24.0.3) nginx.conf: location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass http://172.24.0.3; } test.php的 <?php echo('HTTP_CLIENT_IP: '.$_SERVER['HTTP_CLIENT_IP']); echo('<br>HTTP_X_FORWARDE‌​D_FOR'.$_SERVER['HTTP_X_FORWARDE‌​D_FOR']); echo('<br>REMOTE_ADDR'.$_SERVER['REMOTE_ADDR']); echo('<br>HTTP_X_FORWARDED'.$_SERVER['HTTP_X_FORWARDED']); echo('<br>HTTP_FORWARDED'.$_SERVER['HTTP_FORWARDED']); echo('<br>HTTP_FORWARDED_FOR'.$_SERVER['HTTP_FORWARDED_FOR']); ?> 运行以上产量: HTTP_CLIENT_IP: HTTP_X_FORWARDE‌​D_FOR: REMOTE_ADDR: 172.24.0.2 HTTP_X_FORWARDED: HTTP_FORWARDED: HTTP_FORWARDED_FOR:

Symfony无法连接到MySQL Docker容器

我有三个在Mac OS sierra上运行的Docker容器,即web , mysql和mongo ,并且已经将mongo和mysql链接到了web ,这基本上是一个Ubuntu Xenail基础,添加了Apache和PHP。 我目前正在将我的本地Symfony项目安装到web容器中,似乎工作正常,但是当我尝试以任何方式与数据库进行交互时,我会得到: 驱动程序发生exception:SQLSTATE [HY000] [2002]连接被拒绝 我已经尝试了几乎所有的参数值组合,但是不断得到相同的结果。 我怀疑这可能与我连接容器的方式有关。 我正在学习Docker,所以请原谅我有限的知识。 谢谢! 网站dockerfile: FROM ubuntu:xenial MAINTAINER Some Guy <someguy@domain.com> RUN apt-get update && apt-get install -y \ apache2 \ vim \ php \ php-common \ php-cli \ php-curl \ php-mysql \ php-mongodb \ libapache2-mod-php \ php-gd RUN mkdir -p /var/www/symfony.local/public_html RUN […]

Docker + PHP – 错误:无法连接到Docker守护进程?

我正在按照这个指南来设置一个Docker的PHP开发环境。 我在桌面 docker-compose.yml docker-php 上创build了一个文件夹,并在其中添加了一个docker-compose.yml文件,内容如下: nginx: image: nginx:latest ports: – 80:80 在我的terminal上: $ cd /home/my-username/Desktop/docker-php/ $ docker-compose up -d 我得到这个错误: 错误:无法连接到Docker守护进程在http + docker:// localunixsocket – 它运行吗? 如果位于非标准位置,请使用DOCKER_HOST环境variables指定URL。 我在Xubuntu 16.04上。 或者,也许我应该把文件夹放在Docker所需的特定位置? 如果是这样,那是哪个?

Docker无法安装php mysql扩展

我只是想得到一个简单的docker开发环境设置,但docker不安装PHP的MySQL扩展。 我得到一个致命的错误 – 调用未定义的函数mysql_connect()。 我已经尝试了不同的PHP版本(5.4,5.5,5.6,7.0)都具有相同的结果。 任何帮助,将不胜感激。 泊坞窗,compose.yml version: '2' volumes: database_data: driver: local services: nginx: image: nginx:latest ports: – 8080:80 volumes: – ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf volumes_from: – php php: build: ./docker/php/ expose: – 9000 volumes: – .:/var/www/html testing: build: ./docker/php/ volumes_from: – php mysql: image: mysql:latest expose: – 3306 volumes: – database_data:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: secret MYSQL_DATABASE: project […]

Docker – Ubuntu – Nginx – MariaDB – 连接被拒绝

我试图build立与Docker的OSXdocker集装箱 – Ubuntu的 – Nginx的 – MariaDB运行一个Laravel应用程序 我的docker设置是: version: "2" services: nginx: build: context: ./nginx ports: – "8080:80" volumes: – ./app:/var/app fpm: build: context: ./fpm volumes: – ./app:/var/app expose: – "9000" environment: – "DB_HOST=db" – "DB_DATABASE=laravel_db" db: image: mariadb ports: – "33061:3306" environment: – MYSQL_ROOT_PASSWORD=root – MYSQL_DATABASE=laravel_db volumes: – ./database:/var/lib/mysql 和2个docker文件: FROM nginx ADD ./default.conf […]

AWS弹性beanstalk上的Docker应用程序上载失败

我正在使用Docker镜像来运行PHP和MongoDB上的web-app。 Docker容器在我的本地机器(Windows10)上完美运行,但是它不在AWS Elastic Beanstalk上更新。 我已经做了一个由run.sh , Dockerfile和Dockerrun.aws.json组成的压缩文件,可以从这里find。 在AWS Elastic Beanstalk上我使用的是单一的docker容器,实例types是Linux Docker Version 1.11.2 。 部署后我得到以下错误:

如何用Docker启动现有的WordPress的应用程序图像不是默认的80端口?

可能有人知道如何解决我的问题? 如果我使用我现有的应用程序的WP – 内容和现有的数据库,每一次我redirect到本地主机:80端口。 如何在另一个端口启动它,例如可能是8000? 我有一个Wordpress应用程序Dockerfile与下一行: FROM wordpress:latest COPY ./src /var/www/html ENV WORDPRESS_DB_PASSWORD mypass ENV WORDPRESS_DB_NAME mydb ENV WORDPRESS_DB_HOST mysql:3306 具有现有数据库转储的MySQL Dockerfile: FROM mariadb:10.1.20 COPY dump/dump.sql /docker-entrypoint-initdb.d ENV MYSQL_ROOT_PASSWORD mypass CMD ["mysqld"] 和docker-compose.yml一起: version: '2' services: mysql: build: mysql/ restart: always volumes: – db_data:/var/lib/mysql wordpress: depends_on: – mysql build: wpapp/ ports: – 8000:80 restart: always […]

官方nginx和php docker图像的“Hello World”。 如何?

我想运行一些简单的index.php文件,使用官方的nginx和php docker镜像。 这些是我的先决条件: Ubuntu的版本是16.04.1 LTS(我的主机) docker版本是1.12.6 docker工人版本1.9.0 我的主机上的本地目录如下所示: \code index.php docker-compose.yml nginx.conf index.php包含一些简单的代码: <?php echo phpinfo(); ?> docker-compose.yml包含这些指令(版本1): web: image: nginx:latest ports: – "8181:80" volumes: – ./code:/code – ./nginx.conf:/etc/nginx/nginx.conf links: – php php: image: php:7-fpm volumes: ./code:/code nginx.conf包含这些指令(版本1): worker_processes 1 events { worker_connections 1024; } http { sendfile on; server { listen 80; index index.php […]

LEMP Kubernetes

假设我们不想让这个例子复杂化,我们决定使用外部存储来存储数据库。 此外,代码,configuration文件等是泊坞窗图像的一部分。 我的问题是,根据经验,好的做法和易用性。 你们用什么策略来部署nginx,php-fpm stack? 我有三个select: 创build一个你有两个进程的Dockerfile,然后创build一个容器运行的容器。 这将打破每个容器一个进程的原则。 创build一个包含两个容器的容器,每个容器包含一个进程。 我在网上发现了一些意见,例如: pod概念的主要动机是在应用程序容器旁边支持协同定位的,共同pipe理的辅助容器。 这些包括:logging或监视代理,备份工具,数据更改观察者,事件发布者,代理等等。 创build不同的豆荚,一个使用运行nginx的容器,另一个使用运行php-fpm的容器。 这可能会使事情复杂化,可能是? 如果你们能根据你们的经验对此进行说明,并讨论哪些因为不同的原因更有意义,那将是非常好的。 谢谢大家!

无法通过PHP连接到Docker中的PostgreSQL

我不能用PHP代码连接到PostgreSQL。 我的PostgreSQL是docker集装箱。 我得到一个IP: docker inspect toshi_db_1 我如何连接: $dbconn = pg_connect("host=172.17.0.2 port=5432 dbname=toshi_development")or die("Could not connect"); 错误:警告:pg_connect():无法连接到PostgreSQL服务器:无法连接到服务器:连接超时(0x0000274C / 10060)服务器是否运行在主机“172.17.0.2”上并接受端口5432上的TCP / IP连接? 我以为在使用listen_addressconfiguration参数的PostgreSQL.conf中可能会出现问题,但它允许所有的连接,所以我不知道问题出在哪里。 更新:我自己修复它,只是试图暴露docker-compose文件中的错误端口。