问题描述
我已经为此工作了好几天了,现在我要拔头发了。
目标:在我的 LAMP 服务器上的特定子目录中部署 Slim4,并通过简单的 URL 访问。
结构: 服务器上有几个我的 Web 应用程序实例,应该为所有这些实例复制设置;结构很简单:
/var/www/company1.com/app
- 这个“app”文件夹包含网站的主要 index.PHP 以及其他各种文件夹。例如。 /var/www/company1.com/app/index.PHP => https://company.com/index.php
- 有一个名为“api”的文件夹,我想在其中加载 Slim4。我真的不介意这个文件夹的结构和深度。我的工作依据是 Composer 文件所在的位置。
- 最终结果应该是客户可以通过调用 https://company1.com/api
我正在使用 openapi-generator 和 Pet Store yaml 文件。 运行:
openapi-generator-cli generate -i petstore.yaml -g PHP-slim4 -o /var/www/company1/api/
然后我运行了 composer install
并按照说明中的说明设置了 config.inc.PHP
文件。
但是,当我导航到 http://company1.com/api 时,每次都会遇到同样的问题:
404 Not Found Type: Slim\Exception\HttpNotFoundException Code: 404 Message: Not found. File: /var/www/company1.com/app/api/vendor/slim/slim/Slim/Middleware/RoutingMiddleware.PHP Line: 91 Trace: #0 /var/www/company1.com/app/api/vendor/slim/slim/Slim/Middleware/RoutingMiddleware.PHP(58): Slim\Middleware\RoutingMiddleware->performRouting() #1 /var/www/company1.com/app/api/vendor/slim/slim/Slim/Middlewaredispatcher.PHP(147): Slim\Middleware\RoutingMiddleware->process()
它继续......!
我无法弄清楚这个问题。 这个问题似乎很常见,因为有很多关于它的帖子,所以我确信我错过了一些非常简单的东西。
我尝试了以下方法:
-
设置基本路径
$app->setBasePath("/api");
-
创建一个 /public/ 文件夹并将 index.PHP 文件移到那里,然后根据以下说明创建两个不同的 .htaccess 文件: https://akrabat.com/running-slim-4-in-a-subdirectory/
-
按照其说明使用基本路径 https://github.com/selective-php/basepath
似乎都不起作用!我做错了什么?
我已经能够成功加载 Slim4 Skeleton 应用程序,但是我想使用 openapi-generator 以便我可以让它根据我的 openapi yaml 规范自动准备所有 PHP 文件。
对提示的任何想法将不胜感激!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)