Docker CodeIgniter路由重定向到Docker IP

时间:2017-10-20 09:25:15

标签: php macos codeigniter ubuntu docker

我正在尝试在Docker容器中运行CodeIgniter项目。我的基本映像是Ubuntu 16.04,其中我安装了LAMP堆栈。我的容器从我的项目所在的主机上安装了一个卷。我的docker run命令如下。

docker run -ti -v /Users/user/Documents/projects:/var/www/html  -p 80:80 -p 3306:3306 ubuntu

问题是每当我尝试以http://localhost/project/运行项目时,它都会被重定向到Docker的本地以太网IP,例如172.17.0.2/project /

但如果我用一个简单的phpinfo文件测试它,它运行正常。

我的机器:macOS Sierra

Docker Image:Ubuntu 16.04

2 个答案:

答案 0 :(得分:2)

检查您的apache代理配置。你能改变host_port并再次检查吗? 我正在使用nginx -p 127.0.0.1:80:80。使用**sudo netstat -plunt**检查本地IP /端口,并检查一下 sudo iptables -t nat -L -n

答案 1 :(得分:0)

尝试在 config.php 中设置$config['base_url'] = 'http://127.0.0.1/'(或任何适合您的条件),因为如果未设置该值,则将如下所示(该值写在配置文件说明中,在base_url的正上方):

如果未设置,则CodeIgniter会尝试猜测协议和安装路径,但是由于安全方面的考虑,主机名将设置为$ _SERVER ['SERVER_ADDR'](如果可用),否则设置为localhost。

所以我想您没有设置此值,而CodeIgniter使用了172.17.0.2,因为它是$_SERVER['SERVER_ADDR']