- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在尝试链接 2 个单独的容器:
问题是 php 脚本不起作用。可能是 php-fpm 配置不正确。这是源代码,在我的repository .这是文件 docker-compose.yml
:
nginx:
build: .
ports:
- "80:80"
- "443:443"
volumes:
- ./:/var/www/test/
links:
- fpm
fpm:
image: php:fpm
ports:
- "9000:9000"
和 Dockerfile
用于构建基于 nginx 的自定义镜像:
FROM nginx
# Change Nginx config here...
RUN rm /etc/nginx/conf.d/default.conf
ADD ./default.conf /etc/nginx/conf.d/
最后,这是我自定义的 Nginx 虚拟主机配置:
server {
listen 80;
server_name localhost;
root /var/www/test;
error_log /var/log/nginx/localhost.error.log;
access_log /var/log/nginx/localhost.access.log;
location / {
# try to serve file directly, fallback to app.php
try_files $uri /index.php$is_args$args;
}
location ~ ^/.+\.php(/|$) {
fastcgi_pass 192.168.59.103:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS off;
}
}
谁能帮我正确配置这些容器以执行 php 脚本?
附言我像这样通过 docker-composer 运行容器:
docker-compose up
来自项目根目录。
最佳答案
我知道这是一篇旧帖子,但我遇到了同样的问题,不明白为什么您的代码不起作用。经过大量测试,我找到了原因。
fpm 似乎从 nginx 接收到完整路径并尝试在 fpm 容器中查找文件,因此它必须与 nginx 配置中的 server.root
完全相同,即使它在 nginx 容器中不存在。
演示:
docker-compose.yml
nginx:
build: .
ports:
- "80:80"
links:
- fpm
fpm:
image: php:fpm
ports:
- ":9000"
# seems like fpm receives the full path from nginx
# and tries to find the files in this dock, so it must
# be the same as nginx.root
volumes:
- ./:/complex/path/to/files/
/etc/nginx/conf.d/default.conf
server {
listen 80;
# this path MUST be exactly as docker-compose.fpm.volumes,
# even if it doesn't exist in this dock.
root /complex/path/to/files;
location / {
try_files $uri /index.php$is_args$args;
}
location ~ ^/.+\.php(/|$) {
fastcgi_pass fpm:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Dockerfile
FROM nginx:latest
COPY ./default.conf /etc/nginx/conf.d/
关于php - 如何正确链接 php-fpm 和 Nginx Docker 容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29905953/
我正在尝试使用 FPM 模块安装 PHP,但我根本做不到。我在 Mac OS Big Sur 上 brew install php74 --with-fpm --with-debug --with-c
我在使用 traefik 设置 mailcow 时遇到问题,遇到网关超时。我对 nextcloud 也有这个问题,所以我真的很感兴趣,是什么导致了这些网关超时问题。 我猜这与端口 9000 和上游 p
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我在 Red Hat Linux 服务器上安装了 PHP 7,但显然由于在服务器上运行一些命令来配置 PHP,我丢失了 php-fpm.sock文件。 任何人都可以帮助我了解文件的内容吗? 最佳答案
我的情况是这样的,我有两个 Docker 容器: 在端口 9000 上运行 PHP-FPM 运行 nginx 并拥有 PHP 文件(PHP-FPM 容器应该可以访问这些文件吗?) 我不断收到以下错误:
项目的 Git 存储库:https://github.com/tombusby/docker-laravel-experiments (撰写本文时 HEAD 为 823fd22)。 这是我的 dock
我正在尝试获取在 Windows 上运行的 Homestead Improved Vagrant VM 实例。请参阅Homestead Improved on Github 。我正在遵循这个简单的介绍
我知道我真的很接近这个,但我无法得到最后一部分 在职的。我几乎可以肯定它与 WordPress 有关 容器和 PHP 容器需要在同一个目录下吗?所以 PHP可以处理那个目录下的文件吗?我一直在努力 一
501 25131 1 0 9:31下午 ?? 0:00.37 /usr/local/opt/php/sbin/php-fpm --nodaemonize 501 2
我正在尝试在 Docker 镜像上设置 php-fpm。 这是我的 docker-compose.yml 中的服务: wordpress-service: build: context:
我在使用PHP-FPM遇到这个奇怪的问题。首先,我不是PHP方面的专家。我正在构建一个应用程序,PHP将仅与MySQL通信以推送和提取数据。 问题: 我有一个Dockerfile,在其中我对PHP-F
这是我的 docker-compose.yml version: '2' services: web: image: nginx:latest ports:
我一直在尝试让 php-fpm (w nginx) 与默认端口 (9000) 一起工作,但它不起作用。我正在尝试使用 php 7.1(也尝试过 7.0 和 5.6)。服务启动正常,我还可以在 ss/n
我正在努力寻找适用于 php-fpm 的监视器配置。 这是我试过的: ### Monitoring php-fpm: the parent process. check process php-fpm
在 fastcgi_finish_request(); 语句后在我的 php 脚本中实现了一些后处理后,我担心会出现一些差异。 看起来 PHP 没有在 fastcgi_finish_request
当一个特别长的字符串被打印到 php5-fpm.log 时,该字符串在末尾被截断并显示“...”(不带引号)以表明它已被截断。我怎样才能让它显示整个字符串而不考虑长度? 如果需要的话,我将 Nginx
php fpm 网站上的文档说 php fpm 从 5.3.3 开始是 coe php 的一部分 我正在运行 5.3.10,如何检查它是否正常工作?我以为这是在端口上运行的服务? 最佳答案 假设你在
我有一个运行 Apache/2.2.22 (Debian)、PHP 5.6.17 作为 FPM 和 MySQL 5.6.25 的服务器。 该项目使用名为 Redaxo 的 CMS 运行(我认为这并不重
我刚刚安装了一个 nginx+php-fpm 服务器。一切似乎都很好,只是 PHP-FPM 从不将错误写入其日志。 fpm.conf [default] listen = /var/run/php-f
本文实例讲述了PHP-FPM 设置多pool及配置文件重写操作。分享给大家供大家参考,具体如下: 重写配置文件 1、清空php配置文件 命令:> /usr/local/php/etc/p
我是一名优秀的程序员,十分优秀!