Twig 1.x - 我可以安全删除哪些文件进行制作?

时间:2017-04-28 14:48:41

标签: php twig production-environment

在审核之后,我的任务是从我们其中一个网站的Twig 1.x供应商目录中删除无关文件。计划删除/ twig / twig / doc,/ twig / twig / test并查看是否有任何中断。

/twig/twig/ext/twig/run-tests.php或整个“ext”目录怎么样?

有没有人有过为生产环境除草默认Twig 1.x安装的经验?任何帮助或建议都表示感谢。

3 个答案:

答案 0 :(得分:1)

正确的操作是更新您网站的布局,以便这些文件位于您的网络服务器的文档根目录之外 - 那么您不必担心要删除的内容和内容离开。您可能有类似这样的内容,您的Web服务器的文档根目录直接指向/path/to/project

/path/to/project
    /lib
        foo.php
        bar.php
    /twig
        /twig
            /doc
            /test
    index.php

这意味着任何人都可以直接请求http://yourdomain.com/twig/twig/test/some_file.php

你想要的更像是这样:

/path/to/project
    /public
        index.php
    /lib
        foo.php
        bar.php
    /twig
        /twig
            /doc
            /test

然后配置您的Web服务器,使其文档根目录为/path/to/project/public。然后,您的应用代码仍然可以include()/twig /lib内容,但您的网络服务器不会直接为其提供服务。

答案 1 :(得分:1)

如果你从供应商目录中删除文件,他们会在你下次进行作曲家安装时回来,所以这看起来毫无意义。

你提到的文件(文档和测试)除了占用空间之外没有任何损害,因为它们没有直接调用,但这只是任何软件包管理系统的缺点。就像@Alex所说的那样,只要它们不能公开访问,就没有必要担心。

如果你真的想要没有额外文件的Twig你可以分叉项目,将它移动到你自己的Git仓库然后在你的composer.json中引用它而不是官方的 - 但你会错过来自Twig的任何更新。

答案 2 :(得分:0)

我们正在运行Apache,因此最简单的解决方案是将.htaccess文件添加到顶级供应商目录:

# Prevent non-local access to the vendor directory.
Order deny,allow
Deny from all

目录结构:

/root
    /vendor
        .htaccess
        /twig
        ...
    /includes
        ...

现在PHP脚本继续具有访问权限,但是外部尝试查看供应商目录中的任何内容会返回403错误。