无法访问 docker php 图像中的图像
Can't access images in docker php image
我有一个带有一些 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()。评论提醒我直接检查图像而不是整个文件夹。我还编辑了 Docker 文件并删除了权限更改。
OS: 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
Docker文件:
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"
感谢阅读。
路径应该是 localhost:8080/images/[image].jpg 而不是 var/www/html/images/[image].jpg.
更多信息在我上面的 post 中。
我有一个带有一些 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()。评论提醒我直接检查图像而不是整个文件夹。我还编辑了 Docker 文件并删除了权限更改。
OS: 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
Docker文件:
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"
感谢阅读。
路径应该是 localhost:8080/images/[image].jpg 而不是 var/www/html/images/[image].jpg.
更多信息在我上面的 post 中。