【发布时间】:2018-06-08 18:02:08
【问题描述】:
我们已经设置了大约两打内部网络应用程序。多年后的现在,我想开始使用来自外部资源的包,并通过使用管理包的 Composer 来安装项目。我以前从未需要它,但想尝试为这些站点添加一些额外的功能。
问题是这些内部网站都没有使用 /project/public_html/ 结构设置。文档根目录是 WAMP 中的主目录。
所以 DOCUMENT_ROOT 目录看起来像这样:
c:\wamp64\www\my-site1\
c:\wamp64\www\my-site2\
c:\wamp64\www\my-site3\
每个项目都不同,可能需要不同的 php 包。我希望能够使用 Composer 来管理包。
当您运行 Composer 时,会创建一个 vendor 文件夹。我知道良好的实践要求我们应该把它放在这样的结构中:
C:\wamp64\www\my-project1\vendor //for vendor code
C:\wamp64\www\my-project1\public_html //for DOCUMENT_ROOT
但我的结果是这样的:
C:\wamp64\www\my-site1\vendor //for vendor code specific to site1
C:\wamp64\www\my-site2\vendor //for vendor code specific to site2
我可以使用 apache 重写规则从公共网络隐藏这个供应商文件夹和所有子文件夹吗? 想法是它会拒绝输入 http://my-site1/vendor/somevendor/somefile.php 的用户,但仍允许我的脚本需要或包含并在需要时使用该目录中的文件。
或者我可以把供应商放在这里:
C:\wamp64\www\vendor
然后以某种方式只包含我想要的供应商项目?不是每个项目的所有供应商包,以某种方式指定我想在每个站点上使用哪些类或包。
【问题讨论】:
-
简单答案:将其放在 docroot 之外。
标签: php apache composer-php