gpt4 book ai didi

php - Apache 404 文件匹配

转载 作者:行者123 更新时间:2023-12-03 20:38:46 25 4
gpt4 key购买 nike

考虑以下工作 Apache 配置(在 httpd:2.4.48-alpine docker 容器内使用)

<VirtualHost *:80>

DocumentRoot "/code2"

<Proxy "fcgi://php/">
ProxySet enablereuse=On
</Proxy>

<FilesMatch \.php$>
SetHandler "proxy:fcgi://php:9000"
</FilesMatch>

<Directory /code2>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

DirectoryIndex index.php

</VirtualHost>
但是,如果我将与 php-fpm 容器(名为“php”)中的路径匹配的/code2 目录移动到例如:/code (我还更新了 DocumentRoot 和 Directory path )。
我在所有 php 文件上都得到 404。为什么会这样?如何为每个容器提供不同的 php 文件路径?
另一个需要注意的有趣的事情是 apache 和 php 的访问日志都不显示正在访问的 php 文件的完整路径,仅显示文件名。

最佳答案

如果您想在 PHP 处理程序中使用“DocumentRoot”指令,您需要将该卷挂载到 httpd以及。默认情况下,不存在的文件将直接触发 404(参见 https://cwiki.apache.org/confluence/display/HTTPD/PHP-FPM“通过处理程序代理”)
这是您的用例的一个小示例(为简单起见,使用 docker-compose):./docker-compose.yaml :

version: "3.9"

services:
httpd:
build:
context: ./httpd/
ports:
- 80:80
volumes:
- ./php-vol:/code2:rw
php:
image: php:8.0-fpm
volumes:
- ./php-vol:/code2:rw
- ./php-vol2:/code2/another-dir:rw
./httpd/Dockerfile
FROM httpd:2.4.48-alpine

COPY php-fpm.conf conf/extra/php-fpm.conf

RUN echo "Include conf/extra/php-fpm.conf" >> conf/httpd.conf

RUN sed -i \
-e 's/^#\(LoadModule .*mod_proxy.so\)/\1/' \
-e 's/^#\(LoadModule .*mod_proxy_fcgi.so\)/\1/' \
conf/httpd.conf
./httpd/php-fpm.conf (使用 PHP 处理程序,参见 https://cwiki.apache.org/confluence/display/HTTPD/PHP-FPM)
<VirtualHost *:80>
DocumentRoot "/code2"

<Proxy "fcgi://php/">
ProxySet enablereuse=On
</Proxy>

<FilesMatch \.php$>
SetHandler "proxy:fcgi://php:9000"
</FilesMatch>

<Directory /code2>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

DirectoryIndex index.php
</VirtualHost>
如果您只想使用 php-fpm 提供 .php 文件,这可以简化:
<VirtualHost *:80>
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://php:9000/code2/$1

DirectoryIndex index.php
</VirtualHost>

关于php - Apache 404 文件匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67839979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com