Tag: PHP

我想要一个容器处理多个请求?

这个问题不涉及到networking或托pipe,而是关于如何构build我的应用程序:如果我设置一个docker容器作为一个PHP的networking节点,是适当的约定,我设置它,可以处理多个连接? 或者,最好是将它设置为一次处理一个请求,然后如果我想要同时处理更多的连接,则旋转同一图像的多个实例?

为什么在写入标准输出时,PHP-FPM为前缀添加警告?

我尝试使用官方的php-fpm映像在Docker容器中运行基于Yii的PHP应用程序 。 Docker容器将所有日志消息写入stdout / stderr是很常见的做法。 所以我从我的容器中做了相同的代码,基本上看起来像这样: $fp = @fopen('php://stdout','w'); fwrite($fp, $message); fclose($fp); 不幸的是,PHP-FPM现在将我所有的日志消息加上丑陋的警告: [21-Mar-2016 14:10:02]警告:[pool www] child 12表示inputstdout:“2016-03-21 14:10:02 [xxxx] [ – ] [ – ] [trace] [yii \基地\应用程序::引导]引导用yii \debugging\模块:: bootstrap()“[21-Mar-2016 14:10:02]警告:[池www]孩子12说到标准输出:”2016-03-21 14:10:02 [xxxx] [ – ] [ – ] [info] [yii \ web \ Session :: open]会话开始“… 为什么是这样的,有没有办法阻止PHP-FPM做到这一点? 更新: 我也在docker-library / php项目网站上打开了一个问题 。 他们已经在其configuration中包含了catch_workers_output […]

docker的mysql不能连接到容器

我有docker-compose文件来创buildmysql映像并将端口暴露给3306,但是当我尝试安装CMS时,它给了我错误,它无法连接到数据库。 我试图扫描端口3306,它显示它已经打开,所以mysql正在运行。 为什么两个docker集装箱不能看到对方? 这是我的docker-compose文件: phpfpm: restart: always extends: file: php-fpm-5.6.yml service: phpfpm links: – db:db nginx: restart: always image: nginx ports: – "8000:80" links: – phpfpm:phpfpm volumes: – ./nginx/vhost.conf:/etc/nginx/conf.d/default.conf – ./app:/var/www/html – ./log/nginx:/var/log/nginx db: restart: always image: mysql ports: – "3306:3306" environment: MYSQL_ROOT_PASSWORD: 123456 MYSQL_USER: user MYSQL_PASSWORD: password MYSQL_DATABASE: database

在(php-fpm)docker容器中找不到mysqli

我在我的nginx web服务器使用的docker容器中运行php:7-fpm 。 除了当我试图在我的PHP代码中实例化一个mysqli连接时,一切都很好。 我收到以下错误: "NOTICE: PHP message: PHP Fatal error: Uncaught Error: Class 'Listener\mysqli' not found in index.php:104 这里是我的Dockerfile用于构build镜像,我明确地安装了mysqli扩展: FROM php:7-fpm RUN docker-php-ext-install mysqli 它似乎是安装在下面的phpinfo()输出。 我需要configuration或启用它?

用php文件构build容器对于运行docker容器的用户是不可访问的?

我需要知道是否有可能创build一个容器运行我的PHP应用程序与一些我的PHP文件不可从外部docker。 Docker的秘密不能适用于这种情况,没有其他的。 有什么我可能忽略的? 编辑:显然这是不可能的,我仍然需要一个详细的解释,为什么这是不可能的。 编辑2:我们需要使docker中的文件无法访问(所以代码不能被读取)到运行容器的用户。 打开端口80来执行/通过Apache运行脚本不是问题。

即使状态正在运行,也不能访问在Docker中configuration的wordpress

我按照这里的指示,在Docker中创build一个WordPress的网站: http : //www.sitepoint.com/how-to-use-the-official-docker-wordpress-image/ 1.pull&run mysql image:docker run –name wordpressdb -e MYSQL_ROOT_PASSWORD =密码-e MYSQL_DATABASE = wordpress -d mysql:5.7 2.pull&运行wordpress图像并链接到它的mysql容器:docker运行-e WORDPRESS_DB_PASSWORD =密码-d –name wordpress – 链接wordpressdb:mysql wordpress 我可以看到这两个容器正在运行: 我可以检查wordpress容器并尝试获取ip和端口: 另外,当我检查mysql容器时,我不能使用host / iplogin到mysql浏览器, ******** edit-add -p ***************** 我用-p运行wordpress容器 **************再次编辑******************** ********************更新********************** ***********最后我做了工作******************* 最后,我让它工作,如果我在-p命令中运行具有特定ip的容器例如127.0.0.1: -p 127.0.0.1:8080:80 它不会工作 如果我不指定IP,或使用0.0.0.0作为IP,它将工作: -p 0.0.0.0:8080:80

用于PHP 7的Docker gd模块

我有一个为Drupal 8configuration的docker文件,但在启动“docker-compose up”之后,一切顺利,但是在安装Drupal的时候,它显示我没有启用PHP的“gd”模块。 这里是我的Dockerfile: FROM php:7-fpm # Install modules RUN apt-get update RUN apt-get install -y software-properties-common RUN DEBIAN_FRONTEND="noninteractive" add-apt-repository ppa:ondrej/php RUN apt-get update RUN apt-get install -y vim curl wget build-essential software-properties-common git ca-certificates RUN apt-get install -y \ libbz2-dev \ libfreetype6-dev \ libjpeg62-turbo-dev \ libpng12-dev \ libxpm-dev \ libvpx-dev \ libmcrypt-dev \ libmemcached-dev […]

使用XDebug从Docker Container进行远程debugging不起作用

我试图build立一个dockered的AMP环境,不能让远程debugging器工作。 我的设置如下: 我有一个运行MySQL的数据库容器,它像一个魅力工作。 我用下面的Dockerfile构build了一个Docker镜像“phpmysqli” FROM php:apache RUN docker-php-ext-install mysqli mbstring # zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so RUN pecl install xdebug RUN echo 'zend_extension = /usr/local/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so' >> /usr/local/etc/php/php.ini RUN touch /usr/local/etc/php/conf.d/xdebug.ini; \ echo xdebug.remote_enable=1 >> /usr/local/etc/php/conf.d/xdebug.ini; \ echo xdebug.remote_autostart=0 >> /usr/local/etc/php/conf.d/xdebug.ini; \ echo xdebug.remote_connect_back=1 >> /usr/local/etc/php/conf.d/xdebug.ini; \ echo xdebug.remote_port=9000 >> /usr/local/etc/php/conf.d/xdebug.ini; \ echo xdebug.remote_log=/tmp/php5-xdebug.log >> /usr/local/etc/php/conf.d/xdebug.ini; RUN echo 'date.timezone = […]

在Docker中安装GD

我是一个完整的Docker新手,但不得不维护一个现有的系统。 我正在使用的Dockerfile如下所示: FROM php:5.6-apache RUN docker-php-ext-install mysql mysqli RUN apt-get update -y && apt-get install -y sendmail RUN apt-get update && \ apt-get install -y \ zlib1g-dev RUN docker-php-ext-install mbstring RUN docker-php-ext-install zip RUN docker-php-ext-install gd 当我运行“dockerbuild设[sitename]”一切似乎没问题,直到我得到错误: configure: error: png.h not found. The command '/bin/sh -c docker-php-ext-install gd' returned a non-zero code: 1 这个错误的原因是什么?

在Docker环境中使用Symfony进行生产

我正在使用Docker-Compose在Docker上实现一个symfony应用程序。 我将至less有以下容器: Nginx的 Rabbitmq服务器 PHP-FPM MySQL的 Solr的 目前我们也有使用上述设置的开发环境。 Symfony应用程序存储在本地(主机),然后在PHP-FPM容器上使用一个卷,以便它可以读取应用程序 – 这很好。 我们打开php-fpm容器来运行composer / app / console命令。 我们还手动运行使用rabbitmq服务器消息的使用者(Symfony命令)。 我在生产中有什么select? 1)我可以创build一个运行应用程序的容器,然后允许其他容器使用它吗? 我看到php-fpm容器需要访问应用程序代码 – 但是我也想创build一个容器来运行一个消费者 – 传递服务的名字来运行到容器 – 这意味着我可以有一个单一的图像可以灵活地启动来处理来自任何队列的消息。 日志/caching在这个选项中会发生什么? 2)是否将应用程序存储在每个需要它的图像中? 这是我最不喜欢的select,然后更新我需要build立每个图像的应用程序 3)我还没有探索的东西? 我想允许对应用程序进行简单的更新 – 也许是脚本化的,但是我也想最大限度地减less停机时间 – 我可以使用haproxy或类似的东西来做到这一点 – 有没有人有生产中运行多容器symfony应用程序的任何经验?