yggverse / next
支持不同协议的 PHP 8 服务器
dev-main
2024-05-09 11:12 UTC
Requires
- cboden/ratchet: ^0.4.4
- kevachat/kevacoin: ^1.10
This package is auto-updated.
Last update: 2024-09-09 11:53:02 UTC
README
支持不同协议的 PHP 8 服务器
基于 Ratchet 异步套接字库
功能
- 异步套接字
- 多主机
- 多协议
- 多模式
- 静态文件托管
- 目录请求上的文件系统导航
- 可选的
gemfeed
文件修改日期 - 支持 Unicode 文件名
- 过滤隐藏上下文(以点开头)
- 排序顺序设置(目前为按目录顺序升序)
- 可选的
- 自定义索引文件名
- 自定义失败模板
- 自定义数据目录位置
- 目录请求上的文件系统导航
- KevaCoin 存储浏览器
- 自定义应用
- 反向代理
- 流服务器
- 静态文件托管
- 连接事件日志
- 通过 CLI 参数进行简单灵活的服务器配置
安装
环境
apt install git composer php-fpm php-mbstring
- 对于
kevacoin
服务器mode
,还需要php-curl
扩展
稳定
项目正在开发中,使用 仓库 版本!
仓库
git clone https://github.com/YGGverse/next.git
cd next
- 导航到项目目录composer update
- 获取最新依赖项
启动
开始
通过提供不同的 type
、host
、port
、type
、mode
和其他参数创建所需数量的服务器!
- 出于安全原因,文件服务器阻止对隐藏文件(以点开头)的任何访问
- 此外,客户端无法访问
root
路径之外的数据,该路径在服务器启动时定义
启动示例
php src/server.php host=127.0.0.1 port=1900 type=nex mode=fs root=/target/dir
host
和port
- 可选参数,请参阅 参数文档 以获取详细信息!
参数
由服务器协议 type
自动定义的可选参数
一些参数也定义在 default.json 中 - 在不理解的情况下不要更改它,而是使用 CLI!
CLI
以 key=value
格式提供参数,用空格分隔
依赖于父参数定义的子节点,在其他组合中将被跳过!
以下列表解释了 key
依赖关系及其 value
选项(以 =
开头)
type
- 必需的,服务器协议,还自动定义默认port
,支持的选项- =
nex
- NEX 协议mode
- 可选的,服务器实现变体,默认为fs
(文件系统)- =
fs
- 为root
位置提供静态文件托管root
- 绝对路径 到公共目录,浏览器导航从这里开始file
- 文件名 服务器尝试在请求的目录路径上打开,默认禁用list
- 在请求的目录中显示列表(在索引file
未找到时),默认启用date
- 在目录列表中显示文件修改日期(作为 gemfeed),默认禁用
- =
kevacoin
- 通过 RPC 连接到钱包的 KevaCoin 存储浏览器(请参阅kevacoin.conf
)rpcscheme
- 必需的,例如http
rpcport
- 必需,默认值为9992
rpchost
- 必需,远程或localhost
rpcuser
- 必需rpcpassword
- 必需namespace
- 必需,远程或本地数据列表命名空间(以N
开头)
- =
- =
host
- 可选,默认为127.0.0.1
,例如localhost
连接仅限port
- 可选,默认值取决于所选的服务器type
,例如1900
用于nex
或1965
用于gemini
fail
- 可选,失败模板的 绝对路径(例如/path/to/error.gmi
),默认禁用dump
- 可选,启用或禁用服务器调试功能(默认启用)
自动启动
systemd
以下示例表示您已将 next
服务器安装到 next
用户的家目录中(useradd -m next
)
# /etc/systemd/system/next.service [Unit] After=network.target [Service] Type=simple User=next Group=next ExecStart=/usr/bin/php /home/next/next/src/server.php type=nex mode=fs root=/home/next/public StandardOutput=file:/home/next/debug.log StandardError=file:/home/next/error.log Restart=on-failure [Install] WantedBy=multi-user.target
systemctl daemon-reload
- 重新加载 systemd 配置systemctl enable next
- 系统启动时启用服务systemctl start next
- 启动服务器