作曲家如何保护文件created/imported?
How to protect files created/imported by composer?
我刚刚安装了 composer
来管理我的项目的依赖项。
但我遇到了一个问题:如何保护 composer
创建的文件?
vendor
的根目录下不应该有一个.htaccess
文件吗? (对于我的情况,在 libsproduction
文件夹的根目录)
这是我的 composer.json
文件:
{
"config": {
"vendor-dir": "libsproduction/"
},
"require": {
"spipu/html2pdf": "^5.2",
"phpmailer/phpmailer": "^6.1",
"tinymce/tinymce": "^5.2",
}
}
Composer 文件(vendor
目录以及 composer.json
和 composer.lock
文件本身)不应位于可公开访问的位置。
但是这样做的方法不是在与 Apache 不同的网络服务器下创建 .htaccess
或类似的东西。您应该做的是提供一个与包含这些目录和文件的目录不同的目录。也不会像您那样更改 vendor
名称。
大多数(如果不是全部)基于作曲家的框架通常这样做的方式是创建一个 "public" 或 "web" 目录,这是您将 Web 服务器配置到的目录实际服务,并将您的应用程序入口文件放在那里。
例如
project-root-dir
├── public
│ └── index.php
├── vendor/
├── composer.json
├── composer.lock
在这种情况下,您的 Web 服务器应指向的目录是 public
。因此访问用户无法直接看到不在该目录中的任何内容。
要加载 composer 的自动加载器以便所有包 类 可用,您只需执行以下操作:
// public/index.php
require dirname( __DIR__ ) . '/vendor/autoload.php';
/* your application/script logic goes here /*
通过这种方式,您还可以将不应由用户访问的任何其他文件(配置、日志、缓存等)放在可公开访问的目录的上一级,并且您可以减少保护敏感文件的工作量。
我刚刚安装了 composer
来管理我的项目的依赖项。
但我遇到了一个问题:如何保护 composer
创建的文件?
vendor
的根目录下不应该有一个.htaccess
文件吗? (对于我的情况,在 libsproduction
文件夹的根目录)
这是我的 composer.json
文件:
{
"config": {
"vendor-dir": "libsproduction/"
},
"require": {
"spipu/html2pdf": "^5.2",
"phpmailer/phpmailer": "^6.1",
"tinymce/tinymce": "^5.2",
}
}
Composer 文件(vendor
目录以及 composer.json
和 composer.lock
文件本身)不应位于可公开访问的位置。
但是这样做的方法不是在与 Apache 不同的网络服务器下创建 .htaccess
或类似的东西。您应该做的是提供一个与包含这些目录和文件的目录不同的目录。也不会像您那样更改 vendor
名称。
大多数(如果不是全部)基于作曲家的框架通常这样做的方式是创建一个 "public" 或 "web" 目录,这是您将 Web 服务器配置到的目录实际服务,并将您的应用程序入口文件放在那里。
例如
project-root-dir
├── public
│ └── index.php
├── vendor/
├── composer.json
├── composer.lock
在这种情况下,您的 Web 服务器应指向的目录是 public
。因此访问用户无法直接看到不在该目录中的任何内容。
要加载 composer 的自动加载器以便所有包 类 可用,您只需执行以下操作:
// public/index.php
require dirname( __DIR__ ) . '/vendor/autoload.php';
/* your application/script logic goes here /*
通过这种方式,您还可以将不应由用户访问的任何其他文件(配置、日志、缓存等)放在可公开访问的目录的上一级,并且您可以减少保护敏感文件的工作量。