Tag: PHP

Docker – 调用未定义函数mcrypt_get_block_size()

在docker中 ,我调用了未定义的函数mcrypt_get_block_size() ,在容器中我安装了php5-mcrypt,并在php.ini中写入了扩展名= mcrypt.so,但是不工作。 sudo docker exec -i -t docker_pbr_1 /bin/bash apt-get update apt-get install php5-mcrypt php5enmod mcrypt /etc/init.d/apache2 restart 我有PHP 5.6,但没有findphp5-mcrypt。

PHP API在docker swarm&HAproxy上请求传出IP

我有些奇怪的东西,我无法解决。 我有一个应用程序与一个在同一个docker群集群上运行的API通信。 当从应用程序发出一个API请求时,我收到一个错误,说明IP不在可信列表中。 但是,当我进一步调查,我已经注意到,API响应不检测请求的IP地址。 起初,API服务器在我们的旧平台上,应用程序已经在群集中运行。 这工作完美。 现在API服务器正在群集上进行第一次testing,并且我有这种行为。 +———+ | HAproxy |———–+ +———+ | | | +—–+ +—–+ | API | | APP | +—–+ +—–+ 可以说有: app.domain.com api.domain.com 两者都可以通过3个IP进行访问,并通过DNS和健康检查进行加权。 当应用程序向API发出请求时,它通过FQDN(api.domain.com)发出请求,然后返回通过无效IP(不在白名单中)发出的请求,但是它声明没有IP 。 我使用这个作为docker集装箱HAproxy,工作伟大的btw! http://dockerflow.com 什么可能导致这个? 任何帮助表示赞赏,这只是没有任何意义。

如何使用Docker Compose在Debian容器中设置LAMP堆栈?

Apache Webserver PHP MySQL服务器 我想为我的应用程序创build一个图像。 这将在hub.docker.com上托pipe。 任何人都可以请指导我与docker文件和docker构成文件。 FROM debian:latest MAINTAINER nodechef <nodechef@gmail.com> # Install packages ENV DEBIAN_FRONTEND noninteractive RUN apt-get update && \ apt-get -y install supervisor git apache2 libapache2-mod-php5 mysql-server php5-mysql pwgen php-apc php5-mcrypt && \ echo "ServerName localhost" >> /etc/apache2/apache2.conf # Configure /app folder with sample app RUN git clone https://github.com/fermayo/hello-world-lamp.git /app RUN […]

与Apache不同的Php-Fpm容器

我的生产服务器正在运行一个经典的结构Db-Container,Server-Container和Php-Fpm容器的Docker。 我想要做的就是拆分源代码,以便为项目的三个主要部分分配不同的容器。 现在他们以mydomain.com/index为主要网站,mydomain.com/api和mydomain.com/adm作为其他服务。 我如何设置Apache虚拟主机以映射这样的请求? mydomain.com -> fcgi://siteFpm:9000 mydomain.com/api -> fcgi://apiFpm:9000 mydomain.com/cms -> fcgi://cmsFpm:9000 谢谢

Docker:如何更新容器中php.ini的更改

我有一个docker的容器里面有php5.6 。 当我testing一些东西,我得到这个错误: strtotime(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for […]

php-fpm进程内存使用率高,主机卡住了

我正在使用基于neolao / php-5.6.3-fpm-redis docker镜像的php-fpm服务容器。 我的主机的操作系统是Ubuntu 14.04,以下是我的dockerfile内容: FROM neolao/php-5.6.3-fpm-redis RUN sed -i 's#http://http.debian.net#http://mirrors.163.com#g' /etc/apt/sources.list && \ sed -i 's#http://security.debian.org#http://mirrors.163.com/debian-security#g' /etc/apt/sources.list && \ apt-get update && apt-get install -y libmcrypt-dev librabbitmq-dev && \ docker-php-ext-install mcrypt mysqli && \ pecl install amqp RUN echo 'extension=amqp.so' > /usr/local/etc/php/conf.d/amqp.ini ADD php.ini /usr/local/etc/php/conf.d/php.ini Php-Fpm容器可以工作。 但是每次我发送一个http请求,php-fpm进程都有很高的内存使用率,并且主机被卡住了。 谁能帮我?

如果数据库为空,如何运行Codeigniter迁移

我正在将Codeigniter 3.1.4开发环境转移到Docker容器中。 当第一次运行Docker镜像时,如果数据库为空,我希望Codeigniter自动在数据库中创build表,而不是导出当前的开发数据库,​​然后将其导入到Mysql泊坞窗中。 我已经在开发过程中(通过命令行)使用迁移库来更改数据库模式。 这听起来像迁移图书馆将完美的这个任务,但我想不出我应该从哪里来。 例如 – 我添加一些代码到database.php的末尾来检查数据库是否存在,然后以某种方式调用我的迁移控制器?

Docker与Symfony和MongoDB

我想在PHP(Symfony)和MongoDB中创build一个项目。 我创build了文件docker-compose.yml: web_server: build: . ports: – 5000:5000 links: – mongo mongo: image: mongo:3.0 container_name: mongo command: mongod –smallfiles expose: – 27017 我尝试在PHP Storm中运行Docker Compose,但是我收回了: Removing old containers… (Re)building services… mongo uses an image, skipping Building web_server Cannot locate specified Dockerfile: Dockerfile Starting… Building web_server Cannot locate specified Dockerfile: Dockerfile No containers created for service: […]

当使用PhpStorm运行时,stream_socket_client容器之间的超时

我有stream_socket_client()函数的问题,但只在某些情况下。 我使用docker-compose来构build包含nginx,php-fpm(7.1.3)和schickling / mailcatcher(以及其他一些不重要的容器)的环境。 我的问题涉及到SwiftMailer,但我已经将问题隔离到以下代码: // /var/www/web/app_dev.php $streamContext = stream_context_create(); $timeout = 5; $_stream = stream_socket_client('172.21.0.106:1025', $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT, $streamContext); var_dump($_stream); 172.21.0.106:1025是正确的,并为Mailcatcher的静态 IP:端口。 现在,如果我通过浏览器请求这个文件,我得到: /var/www/web/app_dev.php:8:resource(4,stream) 哪个是对的。 当我做docker exec php_container /var/www/web/app_dev.php ,我得到: /var/www/web/app_dev.php:9:types(stream)的资源(20) 这也是正确的。 但是当我使用configuration的Docker远程解释器(通常工作正常)通过PhpStorm(选项“运行>运行…”)运行此脚本时,我得到输出: docker:// php_container:latest / php /var/www/web/app_dev.php 警告:stream_socket_client():无法连接到第5行/var/www/web/app_dev.php中的172.21.0.106:1025(连接超时) 调用堆栈:0.0001 349080 1. {main}()/var/www/web/app_dev.php:0 0.0032 360960 2. stream_socket_client()/var/www/web/app_dev.php:5 进程使用退出码0结束 我做了一些testing,看起来像尝试使用任何其他容器的主机端口时存在的问题,但它使用Dockernetworking之外的任何东西时工作。 例如,使用'172.21.0.103:3306'容器)的问题仍然存在,但与'google.com:80' ,它也可以通过PhpStorm运行function。 docker-compose.yml的重要部分: services: […]

Docker PHP5.6调用未定义的函数bindtextdomain()

问题: 我有一个Docker与一个n​​ginx服务和一个PHP服务组成。 当我尝试打开我的开发项目页面时,遇到此错误: 致命错误:调用第16行的/usr/share/nginx/html/some_project/some_path/Bootstrap.php中未定义的函数bindtextdomain() 我看到这是一个缺less依赖的问题: php-gettext 。 我的configuration: 在我的Dockerfile中,我尝试安装它: FROM php:5.6.30-fpm MAINTAINER DarckCrystale "xxx@xxx.xx" # Here I try to install the php-gettext extension # but it does not work RUN apt-get update && apt-get install -y php-gettext gettext # Setup PHP configuration ADD php.ini /usr/local/etc/php/conf.d/php.ini 在我的php.ini中,我加载它: extension=gettext.so 其他信息: 当我在我的容器中运行 php -i | grep extension_dir 我有这个消息显示: […]