我有一个可以在localhost上正常运行但在云服务器上引发错误的PHP。在本地主机上,脚本会运行,并且还会从数据存储区中获取数据。
这是引起问题的那一行:
require __DIR__ . '/../../vendor/autoload.php';
// this is the line5 of datastore.php
我使用以下代码部署它: gcloud应用部署--promote --stop-previous-version app.yaml
部署到Google AppEngine后,我得到了这个信息:
警告: require(/ base / data / home / apps / myproject / projectID / dialpad_research / api /../../ vendor / autoload.php): 无法打开流:在该目录中没有这样的文件或目录 /base/data/home/apps/myproject/projectID/dialpad_research/api/datastore.php 第5行发生致命错误:require():需要打开失败 '/base/data/home/apps/myproject/projectID/dialpad_research/api/../../vendor/autoload.php' (include_path ='。; / base / data / home / apps / myproject / projectID /; // base / alloc / tmpfs / dynamic_runtimes / php55_dynamic / ef537742f8701211 / sdk') 在 /base/data/home/apps/myproject/projectID/dialpad_research/api/datastore.php 在第5行
此文件在另一个PHP文件中也是必需的。 但是,即使我尝试直接访问此文件,我仍然会遇到相同的错误。
我应该以其他方式添加需求代码吗?
答案 0 :(得分:1)
问题是未上传供应商文件夹。 .gcloudignore文件正在阻止它。 纠正后,此错误消失了。
感谢大家的尝试。
答案 1 :(得分:0)
您的需求代码应如下所示。供应商文件夹通常应位于代码的根目录级别,与app.yaml处于同一级别。在这种情况下,您的需求应如下所示:
require 'vendor/autoload.php';
还要进行完整性检查,并确保该文件确实在供应商文件夹中。