# 基础版加密器配置文件
加密器项目配置文件为`ini`格式,可以设置多个`key-value`的配置项,除了加密器定义的配置项之外,用户也可以增加自定义的配置项。这些配置项会被存储到`license`文件中。在加密的程序中使用`swoole_get_license()`可以获取到这些信息。
## 注意事项
1. 请按照配置格式和提示修改配置文件
2. 配置项等号左右不可以有空格
3. 注释使用 `#` 符号
## PHP版本:php_version
设置加密使用的`PHP`版本,支持 `[54, 55, 56, 70, 71, 72, 73, 74, 80, 81]`
```ini
php_version=74
```
## 代码路径:php_files_path
需要加密的`PHP` 文件/文件夹 路径
```ini
php_files_path=/data/www/wwwroot/source/
```
## 加密文件包导出路径:compiled_archived_path
```ini
compiled_archived_path=/data/www/wwwroot/archive.tar.gz
```
## 不加密的路径列表:exclude_list
不需要进行加密的PHP文件或者路径,设置加密文件黑名单的示例,格式为英文括号,路径需要使用双引号,多个路径使用空格(半角)分割。
> 默认为空
```ini
exclude_list=("/data/www/wwwroot/phpcode/exclude" "/data/www/wwwroot/phpcode/config.php" "/data/www/wwwroot/phpcode/config/env.php")
```
## 是否保留注释:save_doc
`0`代表不保留,`1`代表保留注释,有的框架会用注释做路由配置,需要设置为`1`
```ini
save_doc=0
```
> 在加密器`2.1.3`版本+`php7.1`以上 ,设置此参数为`1` 除了保留注释 还会保留文件的命名空间、`use`信息、以及声明的类
> 默认为`0`
## 设置源文件扩展名:postfixs
多个扩展名使用英文逗号分割
```ini
postfixs=inc,php
```
> 默认为`php`
## 项目名称:product_name
项目名称的格式要求为英文字母的组合
如果需要设置自定义信息或者限制代码的运行环境,例如`IP`地址,`mac`地址,`hostname`,代码有效时间等,则需要设置此参数。否则,此参数请留空
如果设置了项目名称 运行加密代码的时候就会依赖`license`文件
```ini
product_name=demo
```
## license文件路径:license_file
生成的证书文件路径,例如`/tmp/my_license`
> 默认为`./license`
> 请注意此选项为文件路径,并非文件的目录
```ini
license_file=/tmp/my_license
```
## 限制加密代码执行 hostname
多个域名用英文逗号隔开,支持通配符`*`,可使用通配符前缀或后缀,例如`*.swoole.com`代表允许所有`swoole.com`的二级域名
```ini
hostname=www.swoole.com
```
> 默认为空,表示不限制运行加密代码的域名
## 限制加密代码运行的机器 IP 地址
多个 `IP` 用英文逗号隔开
```ini
ip_address=172.20.0.2
```
> 默认为空,表示不限制运行加密代码的机器 `IP` 地址
## 限制加密代码的有效时间
加密的文件的最后有效时间,超过此时间后,代码不可以再运行。格式为Unix时间戳
```ini
expire_at=1715197895
```
> 默认为空,表示不限制运行加密代码的有效时间
## 限制加密代码的 MAC 地址
限制加密的文件运行的机器 `MAC` 地址,不区分大小写。多个 `MAC` 用英文逗号隔开
```ini
mac_address=02:42:ac:14:00:02
```
> 默认为空,表示不限制运行加密代码的有效时间
> `Windows`下`MAC`地址用`-`分割,例如: `08-00-27-fe-74-52`
## 自定义配置
可以从运行代码中通过`swoole_get_license()`获取配置信息
```ini
# 以下为示例可选配置
user_data="xxxxxxxxxxxxxxxxxxxxx"
copyright="xxxxxxx"
licensed_to="xxxxxx"
```