我正在尝试在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
答案 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']
。