我目前正在维护在服务器中本地运行的旧应用程序。我创建了一个与此服务器具有相同规格的Dockerfile,但我收到了一个奇怪的错误。 这个遗留应用程序是使用旧程序员开发的自制框架构建的。他严重依赖全球$ _SERVER [' request_uri']的价值来进行路由。
在服务器中,值是请求的uri(即www.test.local),在docker版本中,我得到" /"作为回应。这是我的docker-compose
#-- v2 syntax
version: '2'
# Named volumes
volumes:
# MySQL Data
hibrida-mysql-data:
driver: local
services:
# MySQL (5.7)
mysql:
image: mysql:5.7
container_name: hibrida-mysql
volumes:
- ./.db-data/:/var/lib/mysql
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=hibrida
- MYSQL_DATABASE=hibrida
- MYSQL_USER=hibrida
- MYSQL_PASSWORD=hibrida
# PHP (with Nginx)
app:
image: 1and1internet/ubuntu-16-apache-php-5.6
container_name: hibrida-apache
environment:
XDEBUG_ENABLED: "true"
XDEBUG_CONFIG: "remote_host=192.168.25.3"
PHP_IDE_CONFIG: "serverName=dev.local"
volumes:
- ./public:/var/www
- ./config/vhost.conf:/etc/apache2/sites-available/vhost.conf
- ./config/vhost.conf:/etc/apache2/sites-enabled/vhost.conf
#- ./config/php.ini:/usr/local/etc/php/php.ini
#- ./config/www.conf:/etc/php7/php-fpm.d/www.conf
ports:
- "80:80"
links:
- mysql
我刚刚登录到apache容器,我打开了ae2nmod重写。它可能是什么?
答案 0 :(得分:0)
使用$_SERVER['REQUEST_URI']
是查看来自客户端的原始未修改请求的最可靠方法之一,并且反映了HTTP请求的第一行,无论PHP脚本是如何被调用的。它不应包含主机名,并且在访问文档根目录时需要/
。其他东西正在修改它。