Tag: PHP

未find文件 – Docker中的Nginx

描述 我有一个docker容器与此 nginx.conf server { listen 80; index index.php index.html; root /var/www/public; location / { try_files $uri /index.php?$args; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass app:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; } } 泊坞窗,compose.yaml version: '2' services: # The Application app: build: context: ./ dockerfile: app.dockerfile working_dir: /var/www volumes: […]

超级慢查询时间为laravel 5 / php-fpm / nginx在dockerized的web应用程序

我有一个位于nginx之后的Laravel 5.5 / PHP-fpm(PHP 7)API,都在不同的Docker容器中。 我简单地返回一个json对象的API调用大约需要2秒钟,这对于这样一个简单的查询来说是非常长的(即使我查询并从dockerized mysql数据库中返回一些行,也需要3秒以上)。 应该less于一百毫秒。 我不知道如何debugging这个问题。 任何想法为什么这么慢? 使用Docker for Mac docker-compose版本1.16.1,build 6d1ac21 Docker版本17.09.0-ce,编译afdb6d4 PHP API Route::get('/api/names', function () { return array( 1 => "Honey", 2 => "Nut", 3 => "Cheerios" ); }); Nginx的dockerfile FROM nginx RUN rm /etc/nginx/conf.d/* COPY nginx.conf /etc/nginx/conf.d/ nginx.conf upstream phpie { server php-fpm:9000 weight=10 max_fails=3 fail_timeout=30s; } server […]

如何在与docker-compose链接到另一个容器的容器中运行linux守护进程?

我有以下docker-compose.yml文件,它运行带有PHP支持的nginx: version: '3' services: nginx: container_name: my-app-nginx image: nginx:1.13.6 ports: – 8080:80 volumes: – ./nginx-default.conf:/etc/nginx/conf.d/default.conf – ./my-app:/var/www/my-app restart: always depends_on: – php php: container_name: my-app-php image: php:7.1-fpm volumes: – ./my-app:/var/www/my-app restart: always /var/www/my-app的PHP应用/var/www/my-app需要与一个linux守护进程进行通信(我们称之为myappd )。 我看到的方式,我需要: 把myappd复制到/usr/local/bin的nginx容器中,用chmod +x使其可执行,并在后台运行。 创build一个不同的容器,将myappd复制到/usr/local/bin ,使用chmod +x使其可执行,并在前台运行它。 现在,我是Docker的新手,我正在研究和了解它,但是鉴于我在使用Docker Composer,我的最佳猜测是选项2可能是推荐的选项? 鉴于我对Docker的知识有限,我不得不猜测这个容器需要某种基于Linux的映像(比如Ubuntu或者其他)来运行这个二进制文件。 所以也许选项1是首选? 或者,也许选项2是可能的一个最小的Ubuntu图像,也许没有这样的形象是可能的? 无论哪种方式,我不知道如何在composer文件上实现它。 特别是选项2,PHP应用程序将如何与守护程序在不同的容器中进行通信? 就像我为nginx / php服务所做的那样,“共享”一个卷(二进制文件所在的位置)就足够了吗? 还是其他什么是必需的?

AWS Elastic Beanstalk更改已加载目录的权限

我正在将一个Laravel应用程序部署到一个多容器Elastic Beanstalkconfiguration。 应用程序代码打包在一个zip文件中,并作为部署的一部分进行上传,然后将其安装到PHP-FPM Docker容器中。 容器运行正常并且代码被挂载,但是所有挂载的目录都由root拥有,因此应用程序不能写入这些目录(日志文件,框架文件等所需的)。 我需要他们由www-data拥有 如果我在EC2实例上手动SSH,然后运行docker exec -it container_id bash并运行ls -la我可以看到所有文件/目录都由root拥有。 如果我运行chown -R www-data: storage vendor那么应用程序按预期工作。 因此,我需要find一种方法来改变php-fpm容器内的安装目录的权限。 我已经在.ebextensions/permissions.config尝试了以下命令 container_commands: 01_change_storage_permissions: # Get the php fpm container ID and change permissions on the mounted directories command: sudo docker exec $(sudo docker ps -aqf "name=php-fpm") chown -R www-data:www-data storage vendor bootstrap 部署是成功的,所以我可以假定命令成功执行,但不幸的是似乎没有改变权限,因为login到容器,目录仍然由根

无法find套接字传输“用户名”(cURL或作曲者docker容器内)

我背后需要用户/ pwauthentication的公司代理。 我在Windows 10计算机上的Docker客户端中input了凭据。 这些设置过去用于工作。 在我的docker build过程中,我使用与–build-arg相同的凭据,它也可以工作。 我可以构build基于openSUSE的映像并运行它。 该图像包含cURL和composer php(用于PHP开发)。 我可以在公司代理networking之外使用这些工具,而不会出现问题。 但是,在公司内部,我尝试: curl –silent –show-error https://getcomposer.org/installer | php curl –silent –show-error https://getcomposer.org/installer | php或 composer self-update 我得到这个错误消息: 无法打开stream:无法find套接字传输“xxx” – 你忘记configurationPHP时启用它? 其中xxx是从docker代理设置用户名:password@123.456.789.0:端口的我的用户名 据我所知,curl和composer php认为我的用户名是一个应该用来下载文件的协议。 这可能应该是“http”或“ssl”等。 任何帮助是极大的赞赏! 我使用zypper安装curl: zypper –non-interactive install curl php7 php7-curl php7-openssl php-composer…

Docker for Windows和Symfony 4中的NGINX 502错误网关错误

我试图在Windows机器上使用NGINX和PHP-FPM在Docker中设置Symfony 3。 目前,我得到一个502坏的网关错误。 我将FPM端口从9000更改为8000,因为在我的主机上,端口9000已被超v服务vmms.exe使用。 我不知道是否有关系 泊坞窗,compose.yml version: "3" services: nginx: build: ./nginx volumes: – ./symfony:/usr/shared/nginx/html ports: – "80:80" – "443:443" environment: – NGINX_HOST=free-energy.org depends_on: – fpm fpm: image: php:fpm ports: – "8000:8000" # It seems like FPM receives the full path from NGINX # and tries to find the files in this dock, so it […]

在Docker中使用docker-compose运行laravel / lumen

我正在学习微服务架构,我想设置一个简单的stream明应用程序,使用docker-compose在3个独立的容器中运行 networking – 这将运行我的nginx前端服务器 应用程序 – 这将运行我的PHP-FPM 数据库 – 这将运行我的MySQL服务器 这是我的docker-compose.yml version: '2' services: # The Web Server web: build: context: ./ dockerfile: ./deploy/web.dockerfile working_dir: /var/www volumes_from: – app ports: – 8080:80 depends_on: – app # The Application app: build: context: ./ dockerfile: ./deploy/app.dockerfile working_dir: /var/www volumes: – ./:/var/www environment: – "DB_PORT=3306" – "DB_HOST=database" # […]

为什么orientDB连接到docker的localhost被拒绝

我在Docker上构build了orientDB和appserver。 他们也在运行。 这是docker上的列表容器: core@localhost ~ $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 01abef0204a7 fxrialab/appserver:latest /usr/sbin/httpd -DF 30 minute s ago Up 30 minutes 0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp appserver f6d0631bb092 fxrialab/orient:latest /bin/sh -c cd /opt/o 30 minute s ago Up 30 minutes 0.0.0.0:2424->2424/tcp, 0.0.0.0:2480->2480/tcp appserver/db,orient ebc1386250b9 fxrialab/data:latest /usr/sbin/sshd -D 30 minute s ago Up […]

Couchbase PHP SDK在Docker容器中

我有一个运行PHP-FPM 5.5的Docker容器,我想确保它可以访问Couchbase SDK。 我在Docker之外工作,并不能真正了解Docker如何干预,但我似乎遇到了“可能”与docker相关的问题: 我的Docker容器在Ubuntu 14.04下运行,包括以下安装(安装PHP之后): # Install Couchbase C-library and PECL extension RUN wget -O/etc/apt/sources.list.d/couchbase.list http://packages.couchbase.com/ubuntu/couchbase-ubuntu1404.list \ && wget -O- http://packages.couchbase.com/ubuntu/couchbase.key | sudo apt-key add – \ && apt-get update \ && apt-get install -y –no-install-recommends pkg-config libcouchbase2-libevent libcouchbase-dev libmemcached-dev php-pear php5-dev make \ && pecl config-set php_ini /app/conf/php.ini \ && pecl install couchbase […]

如何在nginx和php容器之间进行通信

我有PHP web application ,我想转换成docker 。 我有这些容器 mysql php nginx 我的主机文件夹中有源代码/var/www/site1 现在当我启动nginx的时候,我可以挂载site1到nginx作为/usr/nginx/share/html 但我不知道如何链接与PHP Conainer。 我不能独立PHP容器只安装PHP或我需要有一些networking服务器与PHP