Tag: PHP

Symfonylogging到Docker容器内的stdout

我正在为Symfony应用程序构build一个docker镜像。 在这个图像中,我想将Symfony日志stream式传输到标准输出。 所以,类似于如何configurationnginx日志,我将这一行添加到我的Dockerfile中: ln -sf /dev/stdout /var/www/project/app/logs/prod.log 在容器内部,我可以看到: $ ls /var/www/project/app/logs/ -l total 12 -rw-r–r– 1 501 games 4473 Jul 21 08:36 dev.log lrwxrwxrwx 1 501 games 11 Jul 21 08:35 prod.log -> /dev/stdout 但是,该应用程序抛出以下错误: PHP致命错误:未收到的exception“UnexpectedValueException”与消息“的stream或文件”/var/www/project/app/logs/prod.log“无法打开:无法打开stream:没有这样的文件或目录'在/无功/networking/项目/应用/caching/生产/ classes.php:5808 堆栈跟踪: #0 /var/www/project/app/cache/prod/classes.php(5746):Monolog \ Handler \ StreamHandler-> write(Array) #1 /var/www/project/app/cache/prod/classes.php(5917):Monolog \ Handler \ AbstractProcessingHandler-> handle(Array) #2 /var/www/project/app/cache/prod/classes.php(6207):Monolog \ […]

缓慢的响应时间:Docker容器中的Laravel 5.2

在PHP-7泊坞窗容器中运行Laravel 5.2时,我得到的响应时间是300ms – 400ms 。 这是非常缓慢的,虽然如果我只是在同一个容器上回显phpinfo()响应时间是15ms – 50ms是任何人在Docker容器中遇到与Laravel这些慢响应时间?

Docker-php-ext-install mcrypt丢失的文件夹

我尝试在基于php:7.2-apache Docker镜像中安装mcrypt。 因此,我从文档中使用RUN-Command,并在这里回答,但我收到此错误: error: /usr/src/php/ext/mcrypt does not exist usage: /usr/local/bin/docker-php-ext-install [-jN] ext-name [ext-name …] ie: /usr/local/bin/docker-php-ext-install gd mysqli /usr/local/bin/docker-php-ext-install pdo pdo_mysql /usr/local/bin/docker-php-ext-install -j5 gd mbstring mysqli pdo pdo_mysql shmop if custom ./configure arguments are necessary, see docker-php-ext-configure Possible values for ext-name: bcmath bz2 calendar ctype curl dba dom enchant exif fileinfo filter ftp gd gettext […]

Docker容器的粒度

在使用Dockerdevise应用程序基础架构和架构时,最佳做法是在“服务”中为每个“服务”或多个容器创build一个容器? 例如使用Nginx,PHP-FPM,Redis,MySQL和ElasticSearch的分布式PHP应用程序。 服务容器: Nginx + App + PHP-FPM(完整的应用程序作为“服务”容器) Redis的 MySQL的 过程容器: Nginx的 应用 PHP-FPM Redis的 MySQL的 从我的angular度来看,使用“服务”容器方法似乎更容易维护,因为为每个过程pipe理如此多的谨慎容器可能会变得麻烦。

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

这个问题不涉及到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