我正在尝试将网站迁移到 Docker。我已遵循了许多指南,现在快完成了。
我正在使用 php:7.2.7-fpm-alpine3.7 图像将 PHP 与 Apache 分离。
我的网站位于包含 Apache Docker 容器的本地文件夹 /var/www/html/app 中。
我的 Apache conf 文件如下所示:
服务器名称 localhost
LoadModule deflate_module /usr/local/apache2/modules/mod_deflate.so
LoadModule proxy_module /usr/local/apache2/modules/mod_proxy.so
LoadModule proxy_fcgi_module /usr/local/apache2/modules/mod_proxy_fcgi.so
<VirtualHost *:80>
# Proxy .php requests to port 9000 of the php-fpm container
ProxyPassMatch ^/(.*\.(php|inc)(/.*)?)$ fcgi://php:9000/var/www/html/$1
DocumentRoot /var/www/html/
<Directory /var/www/html/>
DirectoryIndex index.php
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>
# Send apache logs to stdout and stderr
CustomLog /proc/self/fd/1 common
ErrorLog /proc/self/fd/2
</VirtualHost>
我的问题是 Apache 似乎在某些时候重写/编辑 URL,我不知道为什么,例如,如果我尝试访问http://localhost/app/htdocs/install.php我将看到对 /app/dist/* 的 GET 请求日志(位置应该是 /app/htdocs/dist/*,因此我得到了 404)。安装应该会导致http://localhost/app/htdocs/admin/install_db.php但浏览器却转到http://localhost/app/admin/install_db.php。
我认为这是一个重写问题,因为主机上具有标准 *AMP 堆栈的相同站点代码可以毫无问题地运行。
非常感谢!
答案1
我发现一个单独的特定情况的配置文件存在问题,我没有考虑到。