Obtuve un pequeño sitio web PHP con algunos js y quería ejecutarlo con Docker. Como es una galería, tiene imágenes en una subcarpeta. El index.php principal funciona bien, excepto que no se encuentran imágenes. Miré dentro de la carpeta con la CLI de docker normal y un ' echo ls ... ', pero todo está ahí. Si voy a localhost:8080/images, obtengo el error 403 (consol imprime a continuación).
Las imágenes se cargan mediante php, que genera rutas como: ' /var/www/html/images/2555-P160-05.jpg '. ¿Quizás están equivocados?
Solución : tengo los caminos equivocados. Ahora estoy obteniendo el nombre de la ruta a través de
$link = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];en lugar de getcwd() . Los comentarios me recordaron revisar las imágenes directamente y no toda la carpeta. También edité el Dockerfile y eliminé los cambios de permisos.
Sistema operativo: Ubuntu 19.04 Docker-v: 19.03.6
Aquí están mis últimas ediciones:
docker-compose.yml:
version: '3' services: photography-website: build: context: ./ dockerfile: ./ ports: - 8080:80 volumes: - .:/var/www/htmlarchivo acoplable:
FROM php:7.4.4-apacheError 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"Gracias por leer.
Las rutas deben ser localhost:8080/images/[image].jpg no var/www/html/images/[image].jpg .
Más información en mi publicación de arriba.