Tag: PHP

Docker服务无法构build:返回一个非零的代码1

我试图用docker安装一些需要的php扩展。 这是我的Dockerfile: FROM php:7-fpm RUN apt-get update && apt-get install -y \ libfreetype6-dev \ libjpeg62-turbo-dev \ libmcrypt-dev \ libpng12-dev \ libsqlite3-dev \ libssl-dev \ libcurl3-dev \ libxml2-dev \ libzzip-dev \ && docker-php-ext-install iconv json mcrypt mbstring mysql mysqli pdo_mysql pdo_sqlite phar curl ftp hash session simplexml tokenizer xml xmlrpc zip \ && docker-php-ext-configure gd –with-freetype-dir=/usr/include/ […]

Xdebug(在Docker容器中)忽略XDEBUG_CONFIG环境variables

我正在Docker上运行一个PHP应用程序,我想用XDebug进行debugging。 在我的docker-compose中,我在phpfpm部分添加了以下几行: environment: XDEBUG_CONFIG: "remote_enable=1 remote_host=192.168.110.29 remote_port=9000 idekey=PHPSTORM remote_autostart=1" PHP_IDE_CONFIG: "serverName=reports.dev" 我正确地configuration了PHPStorm,在端口9000上监听并运行应用程序。 该应用程序完美的工作,但XDebug似乎并没有工作。 如果我移动php.ini文件中的configuration行,除了服务器名是空的,我不能debugging(这就是为什么我试图按照docker-composeconfiguration方式)的事实除外。 如果在Docker容器中运行echo $ XDEBUG_CONFIG,则输出是正确的,但是XDebug似乎没有读取Envvariables。

如何在docker-compose文件中dynamic获取主机ip?

对于docker开发环境,我们使用的是docker-compose-file。 一切工作正常,我们真的很高兴,但有一个小问题,我会工作: 我们用xdebug安装php-fpm。 现在我们configuration它如下: PHP-Dockerfile: FROM php:7.1-fpm RUN docker-php-ext-install pdo_mysql \ && docker-php-ext-install json \ && pecl install xdebug \ && echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" > /usr/local/etc/php/conf.d/xdebug.ini \ && echo "xdebug.remote_enable=on" >> /usr/local/etc/php/conf.d/xdebug.ini \ && echo "xdebug.remote_autostart=off" >> /usr/local/etc/php/conf.d/xdebug.ini 泊坞窗,compose.yml: services: //[…] php: build: ./docker/php/ container_name: dev-php expose: – 9000 volumes: – .:/var/www/html environment: […]

为什么我的两个Laravel站点的会话发生冲突?

我在我们的Intranet上的服务器上部署了一个名为“仪表板”的Laravel 4.2应用程序。 它可以通过URL http://dashboard.mydomain.local/访问,并使用“本机”驱动程序进行会话存储。 我正在重新configuration应用程序以在Docker容器中运行。 新站点可以通过http://dbdock.mydomain.local/访问,并在不同的服务器上运行。 新网站使用“redis”进行sesson存储。 这是问题: 如果我login到一个站点然后login另一个站点,那么我会退出另一个站点。 以下是我所尝试的: 我更新了config/app.php文件中的应用程序URL。 我改变了encryption密钥。 我在config/session.php更改了会话cookie名称 在我看来,在这种情况下会话应严格分开,因为a)会话存储区不同(文件系统与redis); b)会话存储位于不同的服务器上; c)这两个网站的url是不同的; 和d)会话cookie名称是不同的。 我不明白这两个网站是如何相互冲突的。 任何人都可以向我解释在这种情况下发生了什么? 编辑我应该提到,这两个应用程序正在使用相同的数据库服务器的用户数据库。 这是为了从原来的服务器(即将在近期内将要退役)转换而来。

用Docker隔离PHP应用程序

我正在尝试设置一组docker容器来为几个应用程序提供服务。 我的目标之一是隔离PHP应用程序。 我是Docker的新手,并没有完全理解它的概念。 所以我只想到创build一个专用的php-fpm容器每个应用程序。 我以官方image: php:7.0-fpm开始image: php:7.0-fpm但现在我想我可能需要创build自己的通用pfp-fpm容器(基于上面提到的),添加一些程序(如ImageMagick)并实例化几个这样每个PHP应用程序的php-fpm + stuff容器,都会严格按照应用程序源代码设置卷的指针。 我在正确的方向思考?

我怎样才能debugging的PHP安装到运行在Dockertesting版的Mac上的容器

我花了半天的时间尝试不同的东西,包括我在gist.github.com上遇到的这个解决scheme 我有一个docker-compose文件,它装载了一个包含我的客户端和服务器项目的文件夹: volumes: – ~/projectx:/projectx 我的dockerphp.ini包含以下xdebug选项 [xdebug] xdebug.remote_enable=1 xdebug.remote_port=9000 xdebug.remote_connect_back=On xdebug.var_display_max_children = 999 xdebug.var_display_max_data = 999 xdebug.var_display_max_depth = 100 我有安装的xdebug 铬扩展 在我的Mac主机文件中,我有以下127.0.0.1 localhost dtest.xxx.com所以我可以通过dtest.xxx.com访问我的web应用程序(和其他dockernetworking应用程序),所有这些都可以运行应用程序 在Phpstorm(版本2016.1.2)在首选项->语言和框架-> PHP ->服务器我有: host = dtest.xxx.com,port = 80,Debugger = Xdebug 检查使用path映射,我有 文件/目录设置为/Users/<myname>/projectx/server 服务器上的绝对path设置为/projectx/server 我已经尝试将xdebug.remote_host设置为从ifconfig获取的我的IP地址,以及在/Users/<myname>/Library/Containers/com.docker.docker/Data/database/com.docker.driver.amd64-linux/slirp/host尝试IP /Users/<myname>/Library/Containers/com.docker.docker/Data/database/com.docker.driver.amd64-linux/slirp/host 但是我不能xdebug_break()点,我甚至添加了xdebug_break()双重检查。 我也在运行最新的Version 1.12.0-rc3-beta18 (build: 9996)testingVersion 1.12.0-rc3-beta18 (build: 9996) 我非常感谢任何人的帮助,这对我来说是一个真正的障碍。 如果需要更多信息,我很乐意提供。

如何在默认情况下在Docker容器中启动php-fpm?

我有这个Docker镜像 – FROM centos:7 MAINTAINER Me <me.me> RUN yum update -y RUN yum install -y git https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm RUN yum install -y ansible RUN git clone https://github.com/…/dockerAnsible.git RUN ansible-playbook dockerFileBootstrap.yml RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \ rm -f /lib/systemd/system/multi-user.target.wants/*;\ rm -f /etc/systemd/system/*.wants/*;\ rm […]

composer php安装(自己的容器)与Docker缺lessPHP扩展

我目前正在学习Docker,并使用它两个星期。 现在我有一个非常简单的任务,通过Composer安装PHP库。 通常,在没有Docker的情况下工作: composer install 现在,因为我使用Docker,我发现有一个Docker容器,它为我保留了composer php: docker run –rm -v $(pwd):/app composer/composer install 这工作相当不错,但有一些图书馆,需要安装特定的PHP库,如bcmath,所以我把它添加到我的Dockerfile FROM php:7.0-apache RUN docker-php-ext-install bcmath <– added this line COPY . /var/www/html WORKDIR /var/www/html EXPOSE 80 当我重build我的容器,这段代码返回true var_dump(extension_loaded('bcmath')) 万岁! BCMath安装正确,但是composer php不能识别它,因为该库没有安装在composer php容器中! 现在我可以忽略这一点 docker run –rm -v $(pwd):/app composer/composer install –ignore-platform-reqs 但在我看来,这是一个肮脏的工作,composer php无法validation我的平台。 有没有任何干净的解决scheme,除了在我的Dockerfile中下载composer php,不重复使用现有的容器?

在Docker容器中的SSH会导致HTTP 404

我有这样简单的PHP dockerfile : # Base image FROM php:7-fpm # Update packages list RUN apt-get –yes update; # Install SSH server, set root password and allow root login RUN apt-get –yes install openssh-server RUN mkdir /var/run/sshd RUN echo 'root:123' | chpasswd RUN sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/' /etc/ssh/sshd_config # Run SSH server EXPOSE 22 CMD ["/usr/sbin/sshd", […]

弹性search不按预期工作

我已经使用这个查询 'body' => [ 'query' => [ 'bool' => [ 'should' => [ ['match' => ['title'=> $q]], ['match' => ['year'=> $q]], ['match' => ['case_type'=> $q]], ['match' => ['body'=> $q]], ['match' => ['petition_no'=> $q]], ['match' => ['keywords'=> $q]] ] ] ] ] 我不知道为什么我没有得到正确的结果。 在Docker ELASTICSEARCH日志中显示[WARN] [oedimStringFieldMapper $ TypeParser] [string]字段已弃用,请在[标题]上使用[文本]或[关键字]而不是请求帮助?