注: 本人采用 freenom (域名) + cloudflare (防刷接口) + infinityfree (代码托管) + planetscale (数据库) 的纯白嫖方式搭建此demo.
- Apache
- PHP
- 下载最新的
Release
压缩包到你的电脑; - 解压
Release
压缩包, 得到的文件夹下文中会称为Release
; - 打开
Release
下的api
文件夹, 修改configuration_sample.php
, 其中:database
下为数据库设置:type
填你的数据库类型, 如mysql
;host
填你的数据库主机地址, 如localhost
;port
为数据库端口, 一般来说是3306
, 无需更改;user
为数据库用户名;password
填你的数据库密码;db
为数据库名;table_prefix
为数据表的前缀, 默认eb5a
, 无需更改;ssl
设置是否使用ssl加密连接数据库.
banned_domains
下设置禁止的域名 (即: 长链接的域名不能为这些). 主要用于防止套娃. 注意: 一定要把你自己网站的域名也加上!
- 将
configuration_sample.php
重命名为configuration.php
; - 回到
Release
目录, 打开db
文件夹 - 用
navicat
,phpmyadmin
,mysql 命令行工具
等工具连接到你的数据库, 并导入short_link.sql
; - 回到
Release
目录, 删除db
文件夹; - 按照文件内的提示修改
config.js
; - 将
Release
文件夹下的所有文件上传到你的服务器 (的htdocs
文件夹); - 访问你的网站, 完成!
如果你使用的是 Nginx (而非 apache), 请在 nginx.conf
中这样配置:
location / {
try_files $uri $uri/ /api/index.php?$query_string;
}
写的有点乱, 见谅
前端: Vue3 + Vite
后端: PHP
/ # 根目录
api/ # 后端
cacert.pem # 连接数据库的ssl证书
configuration_sample.php # 配置示例
Controller.php # 控制器, 储存公共方法
DAO.php # 连接数据库的类
index.php # 入口文件
RecordController.php # 控制短链接生成的控制器
RecordModel.php # 控制短链接生成的模型
Tools.php # 工具类
db/
short_link.sql # 数据库文件
short-link/ # 前端
public/
.htaccess # 控制转发请求到后端的配置文件
src/ # 前端的源码
http.rest # 测试 api 接口用的, 忽略就好
# cmd 1
cd api/ && php -S 0.0.0.0:23456 ./index.php
# cmd 2
cd short-link/ && npm run dev
npm run build
剩下懒得写了...
MIT