# 基礎版加密器配置文件
加密器項目配置文件為`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"
```