为什么有些PHP页面不使用Docker容器加载?[副本]

rks48beu  于 2023-04-28  发布在  PHP
关注(0)|答案(1)|浏览(92)

此问题已在此处有答案

How to hide PHP file extension without using .htaccess(3个答案)
昨天关门了。
我想dockerize一个现有的PHP网站,但我遇到了一个问题。你能帮我弄明白这里发生了什么吗?

问题

index.php页面加载正常。但是,所有其他页面,如关于。PHP没有加载。它会产生如下所示的错误消息。我想知道为什么我不能浏览其他页面。
我已经通过使用以下命令连接验证了项目文件正在复制到docker容器:

  • docker exec -it <container_id> bash

查看代码,我们没有使用任何第三方库,所以我不认为这是路由器类型的问题。这是一个基本的网站,几乎没有PHP功能。
有趣的是,我可以在我的笔记本电脑上使用默认的MacOS Apache Web服务器运行这个网站。页面加载正常。在docker镜像中一定有一个配置我可能需要更改,但我不确定是什么。

Dockerfile

FROM php:8.2.5-apache as php

WORKDIR /var/www/html

COPY ./ ./

EXPOSE 80

错误

404 Not Found
服务器上没有找到请求的URL。
36846服务器类型Apache/2.4.56(Debian)
感谢您的指导。

x6yk4ghg

x6yk4ghg1#

我会尝试帮助你,也许你需要改变这个基本的URL:base_url()在某些情况下:人们通常使用HTTP://localhost,当运行docker容器时,域名将更改为HTTP://docker_container来解决这个问题,您需要在PHP代码中设置基本URL。我通常这样做:

$base_url = "HTTP://docker_container";

我通常在链接上这样做:

<a href="<?php echo $base_url; ?>/about.php">About</a>

我希望这能帮助你。

相关问题