shlinkio / shlink
一个基于PHP的自托管URL缩短器应用程序,具有CLI和REST接口
Requires
- php: ^8.2
- ext-curl: *
- ext-gd: *
- ext-json: *
- ext-mbstring: *
- ext-pdo: *
- akrabat/ip-address-middleware: ^2.1
- cakephp/chronos: ^3.0.2
- doctrine/dbal: ^4.0
- doctrine/migrations: ^3.6
- doctrine/orm: ^3.0
- endroid/qr-code: ^5.0
- friendsofphp/proxy-manager-lts: ^1.0
- geoip2/geoip2: ^3.0
- guzzlehttp/guzzle: ^7.5
- hidehalo/nanoid-php: ^1.1
- jaybizzle/crawler-detect: ^1.2.116
- laminas/laminas-config: ^3.8
- laminas/laminas-config-aggregator: ^1.15
- laminas/laminas-diactoros: ^3.3
- laminas/laminas-inputfilter: ^2.27
- laminas/laminas-servicemanager: ^3.21
- laminas/laminas-stdlib: ^3.17
- matomo/matomo-php-tracker: ^3.2
- mezzio/mezzio: ^3.17
- mezzio/mezzio-fastroute: ^3.11
- mezzio/mezzio-problem-details: ^1.13
- mlocati/ip-lib: ^1.18
- mobiledetect/mobiledetectlib: ^4.8
- pagerfanta/core: ^3.8
- ramsey/uuid: ^4.7
- shlinkio/doctrine-specification: ^2.1.1
- shlinkio/shlink-common: ^6.2
- shlinkio/shlink-config: ^3.0
- shlinkio/shlink-event-dispatcher: ^4.1
- shlinkio/shlink-importer: ^5.3.2
- shlinkio/shlink-installer: ^9.2
- shlinkio/shlink-ip-geolocation: ^4.0
- shlinkio/shlink-json: ^1.1
- spiral/roadrunner: ^2024.1
- spiral/roadrunner-cli: ^2.6
- spiral/roadrunner-http: ^3.5
- spiral/roadrunner-jobs: ^4.5
- symfony/console: ^7.0
- symfony/filesystem: ^7.0
- symfony/lock: ^7.0
- symfony/process: ^7.0
- symfony/string: ^7.0
Requires (Dev)
- devizzent/cebe-php-openapi: ^1.0.1
- devster/ubench: ^2.1
- phpstan/phpstan: ^1.11
- phpstan/phpstan-doctrine: ^1.4
- phpstan/phpstan-phpunit: ^1.4
- phpstan/phpstan-symfony: ^1.4
- phpunit/php-code-coverage: ^11.0
- phpunit/phpcov: ^10.0
- phpunit/phpunit: ^11.3
- roave/security-advisories: dev-master
- shlinkio/php-coding-standard: ~2.3.0
- shlinkio/shlink-test-utils: ^4.1
- symfony/var-dumper: ^7.0
- veewee/composer-run-parallel: ^1.3
Conflicts
- symfony/var-exporter: >=6.3.9,<=6.4.0
- dev-develop
- v4.2.0
- v4.1.1
- v4.1.0
- v4.0.3
- v4.0.2
- v4.0.1
- v4.0.0
- 3.x-dev
- v3.7.4
- v3.7.3
- v3.7.3-beta.1
- v3.7.2
- v3.7.1
- v3.7.0
- v3.7.0-beta.1
- v3.6.4
- v3.6.3
- v3.6.2
- v3.6.1
- v3.6.0
- v3.5.4
- v3.5.3
- v3.5.2
- v3.5.2-beta.1
- v3.5.1
- v3.5.0
- v3.4.0
- v3.3.2
- v3.3.1
- v3.3.0
- v3.2.1
- v3.2.0
- v3.1.2
- v3.1.1
- v3.1.0
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0.0
- v2.x-dev
- v2.10.3
- v2.10.2
- v2.10.1
- v2.10.0
- v2.9.3
- v2.9.2
- v2.9.1
- v2.9.0
- v2.9.0-alpha.1
- v2.8.1
- v2.8.0
- v2.8.0-alpha.1
- v2.7.3
- v2.7.2
- v2.7.1
- v2.7.0
- v2.6.2
- v2.6.1
- v2.6.0
- v2.5.2
- v2.5.1
- v2.5.0
- v2.5.0-alpha.2
- v2.5.0-alpha.1
- v2.4.2
- v2.4.1
- v2.4.0
- v2.3.0
- v2.2.2
- v2.2.1
- v2.2.0
- v2.2.0-alpha.1
- v2.1.4
- v2.1.3
- v2.1.2
- v2.1.1
- v2.1.0
- v2.0.5
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- 1.x-dev
- v1.21.2
- v1.21.1
- v1.21.0
- v1.20.3
- v1.20.2
- v1.20.1
- v1.20.0
- v1.19.0
- v1.19.0-beta.1
- v1.18.1
- v1.18.0
- v1.17.0
- v1.16.3
- v1.16.2
- v1.16.1
- v1.16.0
- v1.15.1
- v1.15.0
- v1.14.1
- v1.14.0
- v1.13.2
- v1.13.1
- v1.13.0
- v1.12.0
- v1.11.0
- v1.10.2
- v1.10.1
- v1.10.0
- v1.9.1
- v1.9.0
- v1.8.1
- v1.8.0
- v1.7.2
- v1.7.1
- v1.7.0
- v1.6.2
- v1.6.1
- v1.6.0
- v1.5.0
- v1.4.0
- v1.3.1
- v1.3.0
- v1.2.2
- v1.2.1
- v1.2.0
- v1.1.0
- v1.0.0
- v0.2.0
- v0.1.0
- dev-main
This package is auto-updated.
Last update: 2024-08-26 08:00:10 UTC
README
一个基于PHP的自托管URL缩短器,可用于在自己的域名下提供缩短的URL。
目录
完整文档
本文件包含了开始使用Shlink的非常基础的指南。如果您想了解它能做的一切,请访问完整可搜索文档。
Docker镜像
您可以通过阅读文档了解如何使用官方的Docker镜像。
想法是您可以使用该镜像生成一个容器,并通过环境变量提供自定义配置。
自托管
首先,请确保您将要运行shlink的主机满足以下要求
- PHP 8.2或8.3
- 以下PHP扩展:json、curl、pdo、intl、gd和gmp/bcmath。
- 如果不计划使用RoadRunner,建议使用apcu扩展。
- 如果您想以svg格式生成QR码,则需要xml扩展。
- 如果您想与RabbitMQ实例集成,则需要sockets和bcmath扩展。
- MySQL、MariaDB、PostgreSQL、MicrosoftSQL或SQLite。
- 您还需要为计划使用的数据库提供相应的pdo变体:
pdo_mysql
、pdo_pgsql
、pdo_sqlsrv
或pdo_sqlite
。
- 您还需要为计划使用的数据库提供相应的pdo变体:
下载
为了运行Shlink,您需要项目的编译版本。有两种方法可以获取它。
-
使用dist文件
安装shlink最简单的方法是使用预打包的发行版包之一。
访问最新版本,下载适合您需求的
shlink*_dist.zip
文件。您会找到每个支持的PHP版本的文件。最后,在您选择的位置解压文件。
-
从源码构建
如果您出于任何原因想自己构建项目,请按照以下步骤操作
- 使用git (
git clone https://github.com/shlinkio/shlink.git
)克隆项目,或通过点击绿色按钮“克隆或下载”来下载。 - 在项目文件夹内下载Composer PHP包管理器。
- 运行
./build.sh 3.0.0
,将版本号替换为您要构建的版本号(版本号用作生成的dist文件名的一部分,以及设置从命令行运行shlink -V
时返回的值)。
之后,您将在
build
目录中找到一个dist文件,您需要在您选择的位置解压。注意
这是发布新Shlink版本时使用的流程。使用git标记新版本后,GitHub发布会由GitHub工作流自动创建,并将生成的dist文件附加到其中。
- 使用git (
配置
不管你是如何构建项目的,你现在都需要按照以下步骤进行配置
- 如果你打算使用MySQL、MariaDB、PostgreSQL或Microsoft SQL Server,请创建一个空数据库,并取你喜欢的名字。
- 递归地授予对
data
目录的写权限。Shlink用它来缓存一些信息。 - 通过运行
vendor/bin/shlink-installer install
脚本来设置应用程序。这是一个命令行工具,将引导你完成安装过程。请注意,此工具必须直接在你计划托管Shlink的服务器上运行。在上传/移动之前不要运行它。 - 通过运行
bin/cli api-key:generate
来生成你的第一个API密钥。你需要这个密钥才能与Shlink的API交互。
使用shlink
一旦Shlink安装完成,主要有两种方式与之交互
-
命令行:尝试运行
bin/cli
以查看所有可用命令。所有这些命令都可以使用
--help
/-h
标志运行,以查看如何使用它们以及所有可用选项。将CLI入口点(
bin/cli
)符号链接到你的路径中的某个位置可能是个好主意,这样你就可以从任何目录运行Shlink。 -
REST API:有关如何使用API的完整文档可以在这里找到,以及一个文档了每个端点的沙箱,可以在API规范门户中找到。
然而,你可能不想直接消费原始API。这就是为什么提供了一个漂亮的网络客户端,可以直接在https://app.shlink.io使用,或者由你自己托管。
API和CLI允许你执行几乎相同的操作,除了API密钥管理,这只能从命令行界面完成。
贡献
如果你在寻找如何在开发模式下运行项目或如何提供贡献的方法,请阅读CONTRIBUTING文档。
此产品包含由MaxMind创建的GeoLite2数据,可在https://www.maxmind.com获取