我试图在我的本地机器上设置API平台来探索它。我尝试根据API平台的“入门”页面执行所有操作。所以我下载了最新的官方发行版,恰好是v2.4.2(https://github.com/api-platform/api-platform/releases/tag/v2.4.2),我开始使用Docker。
但是我无法访问http://localhost:81
的管理后端,收到“无法检索API文档”。
我在https://api-platform.com/docs/admin/getting-started/上寻求帮助,但它描述了在分发中似乎已经完成的步骤
如何启用管理组件或调试出错?
编辑(2019-04-14)
$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
40a5d5213cfe quay.io/api-platform/nginx "nginx -g 'daemon of…" 45 hours ago Up 6 minutes 0.0.0.0:8080->80/tcp apiplatformdemo_api_1
d53711c0ba0c quay.io/api-platform/php "docker-entrypoint p…" 45 hours ago Up 6 minutes 9000/tcp apiplatformdemo_php_1
2d4eb8d09e3e quay.io/api-platform/client "/bin/sh -c 'yarn st…" 45 hours ago Up 6 minutes 0.0.0.0:80->3000/tcp apiplatformdemo_client_1
abe3e3b41810 quay.io/api-platform/admin "/bin/sh -c 'yarn st…" 45 hours ago Up 6 minutes 0.0.0.0:81->3000/tcp apiplatformdemo_admin_1
4596a7f81cd8 postgres:10-alpine "docker-entrypoint.s…" 45 hours ago Up 6 minutes 0.0.0.0:5432->5432/tcp apiplatformdemo_db_1
c805fc2f11c9 dunglas/mercure "./mercure" 45 hours ago Up 6 minutes 443/tcp, 0.0.0.0:1337->80/tcp apiplatformdemo_mercure_1
编辑2(2019-04-14)
值得一提的是,尽管http://localhost:8080
的API组件有效,但https://localhost:8443
的HTTPS变体却没有。 (如果我尝试telnet
它连接被拒绝。)
现在事实证明它之前没有注意到JS控制台中有一条消息说连接到https://localhost:8443
失败了。 (它说的是关于CORS,但我认为真正的原因是8443只是拒绝连接)。因此,虽然我在http://localhost:81
上输入了Admin的HTTP变体,但它尝试通过HTTPS访问API。什么可能是HTTPS不起作用的原因?
编辑3(2019-04-15)
在查看docker compose的日志后,我发现它与Varnish容器失败有关。 h2-proxy
依赖于它,h2-proxy
管理8443
港口。
cache-proxy_1 | Error:
cache-proxy_1 | Message from VCC-compiler:
cache-proxy_1 | Expected return action name.
cache-proxy_1 | ('/usr/local/etc/varnish/default.vcl' Line 67 Pos 13)
cache-proxy_1 | return (miss);
cache-proxy_1 | ------------####--
cache-proxy_1 |
cache-proxy_1 | Running VCC-compiler failed, exited with 2
cache-proxy_1 | VCL compilation failed
apiplatform242_cache-proxy_1 exited with code 2
h2-proxy_1 | 2019/04/15 08:09:17 [emerg] 1#1: host not found in upstream "cache-proxy" in /etc/nginx/conf.d/default.conf:58
h2-proxy_1 | nginx: [emerg] host not found in upstream "cache-proxy" in /etc/nginx/conf.d/default.conf:58
apiplatform242_h2-proxy_1 exited with code 1
你能说vcl的哪个子程序“return(miss)”是什么?
我通过克隆当前主服务器获取API平台而不下载tar.tgz发行版本(2.4.2)解决了这个错误
git clone https://github.com/api-platform/api-platform.git
docker-compose build
docker-compose up -d
奇迹般有效 !