我已經使用symfony/fosrest等構建了簡單的api端點。我可以通過symfony在服務器端構建它,例如:php bin/console server:run
。訪問rest api端點docker
現在我想訪問docker中的api。我用php-apache和mysql映像創建了docker-compose.yml。現在,當我嘗試按如下方式連接到端點時,我得到了禁止(403)錯誤。我假設我的docker php-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
,改變你的搬運工應用端口8000:8000
在泊塢窗,compose.yml
現在你應該可以按如下方式訪問您的端點。
POST http://192.168.99.100/api/myendpoint
您的碼頭IP地址可能與我的不同。
新增泊塢窗,compose.yml。謝謝我已經解決了這個問題。非常感謝。 – Viraths