我使用symfony/fosrest等构建了简单的api端点,我可以通过服务器(即:php bin/console server:run )中的symfony构建来访问它。
现在我想访问docker中的api。我用php-apache和mysql映像创建了docker-compose.yml。现在,当我试图按如下方式连接到端点时,就会被禁止(403)错误。我假设我在docker apache映像中的apache配置是不正确的。有人能帮我解决这个问题吗。谢谢。
endpoint: POST http://192.168.99.100/api/myendpoint错误如下。
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /api/myendpoint on this server.<br />
</p>
<hr>
<address>Apache/2.4.12 (Ubuntu) Server at 192.168.99.100 Port 80</address>
</body></html>*编辑- docker-compose.yml
version: "2"
services:
myapp:
build: ./docker
image: php5.6-apache
container_name: myapp
ports:
- "80:80"
volumes:
- .:/app
- $HOME/.composer/cache:/root/.composer/cache
working_dir: /app
links:
- mymysql
environment:
- APPLICATION_ENV=test
mymysql:
image: mysql:5.6
container_name: mymysql
ports:
- "3306:3306"
volumes:
- data:/var/lib/mysql
environment:
- MYSQL_USER=root
- MYSQL_PASSWORD=password
- MYSQL_DATABASE=db
- MYSQL_ROOT_PASSWORD=password
volumes:
data:答案
在您的symfony应用程序中运行以下命令。
docker exec -it your_container_name php bin/console server:run 0.0.0.0:8000并在docker -come.yml中将您的坞应用程序端口更改为8000:8000。
现在您应该能够访问您的端点,如下所示。
POST http://192.168.99.100/api/myendpoint 你的IP地址可能和我的不一样。
发布于 2017-01-04 11:04:26
您确实应该提供您的dockerCompose.yml来帮助诊断问题,但是我要说,这是一个或多个问题(我知道,因为我可能在某个时候也做错了所有这些问题):
php bin/console server:run失败,因为它没有在正确的目录中运行。docker-composer up上的日志将显示这一点,容器将无法启动。docker-compose.yml中是不正确的,它应该使用您在server:run命令中使用的端口。https://stackoverflow.com/questions/41461028
复制相似问题