无法访问docker php图像中的图像

我有一个带有一些 js 的小型 PHP 网站,想用 docker 运行它。因为它是一个画廊,所以它的子文件夹中有图像。主 index.php 运行良好,除了没有找到图像。我使用普通的 docker CLI 和“ echo ls ... ”查看了文件夹,但一切都在里面。如果我转到 localhost:8080/images,我会收到错误 403(如下所示的控制台打印)。


图片是通过 php 加载的,它生成的路径如下:“ /var/www/ html/images/2555-P160-05.jpg ”。他们可能错了吗?


解决方案:我得到了错误的路径。我现在通过获取路径名


$link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? 

                "https" : "http") . "://" . $_SERVER['HTTP_HOST'] .  

                $_SERVER['REQUEST_URI']; 

而不是getcwd()。评论提醒我直接检查图像而不是整个文件夹。我还编辑了 Dockerfile 并删除了权限更改。


操作系统:Ubuntu 19.04 Docker -v:19.03.6


这是我的最新编辑:


docker-compose.yml:


version:  '3'

services:

  photography-website:

    build: 

      context: ./

      dockerfile: ./

    ports:

      - 8080:80

    volumes:

      - .:/var/www/html

文件:


FROM php:7.4.4-apache

错误 403:


172.18.0.1 - - [06/Apr/2020:23:19:48 +0000] "GET /images/ HTTP/1.1" 403 493 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:72.0) Gecko/20100101 Firefox/72.0"

谢谢阅读。


人到中年有点甜
浏览 92回答 1
1回答

心有法竹

路径应该是localhost:8080/images/[image].jpg而不是var/www/html/images/[image].jpg。更多信息在我上面的帖子中。
打开App,查看更多内容
随时随地看视频慕课网APP