【问题标题】:PHP Slim4 on Apache2 gives HttpNotFoundExceptionApache2 上的 PHP Slim4 给出 HttpNotFoundException
【发布时间】:2020-07-24 06:20:36
【问题描述】:

我看到的链接包括:

https://akrabat.com/running-slim-4-in-a-subdirectory/

https://discourse.slimframework.com/t/slim-4-httpnotfoundexception/3273/18

还有一些人

我正在尝试在 apache2 上设置一个 Slim4 项目。但是尝试访问它会给我错误

PHP 致命错误:未捕获的 Slim\Exception\HttpNotFoundException:未找到....

我的索引文件在/var/www/html/_projects/work/calc1/src

以下是我在/etc/apache2/sites-available中的calc.conf:

<VirtualHost *:80>
    ServerName calc.mrid.local
    ServerAlias calc.mrid.local

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html/_projects/work/calc1/src

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

这是我的.htaccess,位于src 目录中

RewriteEngine On
RewriteBase /_projects/work/calc1/src/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
RewriteRule ^(.*)\.html$ /$1 [L,R=301]

我的index.php 看起来像这样:

// use and require statements...

$container = new Container();
AppFactory::setContainer($container);

$container->set('view', function() {
    return \Slim\Views\Twig::create(__DIR__ . '/public/templates');
});

$app = AppFactory::create();

// even without this line it doesn't work
$app->setBasePath("/_projects/work/calc1/src"); 

$app->add(TwigMiddleware::createFromContainer($app));

// my routes....

$app->run();

有人在 Apache2 上使用过 Slim4 吗?如果是的话,你能指导我吗?

【问题讨论】:

  • 请分享一些导致HttpNotFoundException 的路由的定义。另请提供完整的异常消息,特别是说明您尝试访问的 URL 不存在的部分。
  • 我认为因为 DocumentRoot 指向/var/www/html/_projects/work/calc1/src,你应该避免将RewriteBase /_projects/work/calc1/src/ 行放在.htaccess 中。请参阅this question

标签: php apache .htaccess slim


【解决方案1】:

src/ 目录实际上仅用于 PHP 类,并且不能被 Web 访问。 apache DocumentRoot 应该指向包含您的前端控制器public/index.phppublic/ 目录。看看Standard PHP package skeleton。有关 Slim 和 apache 的更多详细信息,请参阅 Slim 4 Tutorial

【讨论】:

  • 我稍微修改了我的目录结构。我在 src 中有我的 index.php,并且在公共目录中有所有资产(css、js、图像、模板)。我必须改变这一切吗?
  • 刚刚检查了骨架链接...它说 src 将具有 php 文件,而 public 将具有 Web 服务器文件
猜你喜欢
  • 1970-01-01
  • 2023-03-15
  • 2018-10-30
  • 1970-01-01
  • 2023-01-27
  • 1970-01-01
  • 2013-02-03
  • 2020-05-27
  • 1970-01-01
相关资源
最近更新 更多