【发布时间】:2020-07-14 21:08:04
【问题描述】:
我在 docker 上安装 Synfony 和 Twig 时遇到问题。
出现致命错误:未捕获的错误:在 /var/www/html/... 中找不到类“Twig \ Environment”。
这是我的 Dockerfile
FROM php: 7.2-apache
#Install unzip, composer,
RUN curl -sS https://getcomposer.org/installer | php - --install-dir = / usr / local / bin --filename = composer \
&& apt-get update && apt-get install -y git libzip-dev unzip \
&& docker-php-ext-install zip \
&& a2enmod rewrite headers \
COPY src / / var / www / html /
#Enable Twig and Symfony
RUN cd / var / www && composer require "twig / twig: ^ 3.0"
RUN composer require "symfony / form"
我的控制器
protected function load (string $ view, $ param = [])
{
$twig = new \Twig\Environment((new \Twig\Loader\FilesystemLoader ('../app/site/view/')),
['debug' => false]
);
$ twig->addGlobal ('BASE', BASE);
echo $twig->render($view . '.twig.php', $params);
}
你知道怎么了吗?
【问题讨论】:
-
我相信
RUN [command]以 root 身份运行该命令。这可能会干扰 apache/php-fpm 对该文件夹的访问权限。你的码头工人的东西也包含太多的斜线周围的空间。最后,如果安装不起作用,您的 docker 文件应该会产生输出。如果它确实有效,也许你没有包括供应商/autoload.php?如果你也这样做了,你也许应该扩展该错误消息。 -
感谢您的回复,并帮助找到了错误,在检查权限时我发现错误是在错误的文件夹中运行。非常感谢。
标签: php docker symfony twig dockerfile