phpEnv 无法运行 YOURLS,因其缺乏 MySQL 服务、未启用 mod_rewrite、PHP 版本可能过低且无持久化支持;推荐改用 XAMPP/Laragon 或 Docker 部署。

phpEnv 本身不支持直接部署 YOURLS —— 它不是标准 PHP 运行环境,而是 Windows 下的“伪环境模拟器”,缺少 MySQL 服务、URL 重写支持和稳定持久化能力,硬装会卡在 admin/install.php 无法完成初始化。
为什么 phpEnv 跑不起来 YOURLS
YOURLS 依赖三个底层能力:MySQL 持久化存储、PHP 的 mysqli 或 pdo_mysql 扩展、Web 服务器(Apache/Nginx)的 URL 重写(mod_rewrite 或 try_files)。phpEnv 默认只带轻量 Apache + PHP,不附带 MySQL 服务;即使手动启动 MySQL,其 Apache 配置也未启用 mod_rewrite,导致访问 /admin 时 404,/yourls-loader.php 无法接管请求。
- phpEnv 的 Apache 配置文件(
conf/httpd.conf)里LoadModule rewrite_module modules/mod_rewrite.so默认是被注释掉的 - 它的 MySQL 是独立进程,但没有自动创建数据库、授权用户的脚本,需手动进
bin/mysql/bin/mysql.exe操作 - YOURLS 的
.htaccess规则在 phpEnv 的 Apache 下常被忽略,因为AllowOverride All未在虚拟主机配置中生效 - phpEnv 使用的 PHP 版本多为 7.2–7.4,而 YOURLS 1.9+ 要求 PHP ≥ 7.4,低版本会报
TypeError: array_key_first()类错误
想用 Windows 本地快速试跑,换 XAMPP 或 Laragon
这两个工具开箱即用,MySQL 自启、mod_rewrite 默认开启、PHP 扩展齐全,比折腾 phpEnv 省至少两小时。
- 下载 XAMPP(推荐 v8.2+,含 PHP 8.2 + MariaDB 10.11),安装后启动 Apache 和 MySQL 服务
- 把 YOURLS 解压到
htdocs/yourls,重命名user/config-sample.php为user/config.php - 用浏览器打开
http://localhost/phpmyadmin,新建数据库yourls,字符集选utf8mb4_unicode_ci - 编辑
user/config.php,填入:define( 'YOURLS_DB_USER', 'root' ); define( 'YOURLS_DB_PASS', '' ); define( 'YOURLS_DB_NAME', 'yourls' ); define( 'YOURLS_DB_HOST', 'localhost' ); define( 'YOURLS_SITE', 'http://localhost/yourls' );
- 访问
http://localhost/yourls/admin/install.php,输入管理员账号密码完成安装
真正适合长期用的方案:Docker(Windows/macOS/Linux 通用)
YOURLS 官方维护了 Docker 镜像,一条命令拉起完整环境,MySQL、PHP、Nginx、URL 重写全预配好,连 config.php 都不用手改。
立即学习“PHP免费学习笔记(深入)”;
- 确保已安装 Docker Desktop,然后执行:
docker run -d \ --name yourls \ -p 8080:80 \ -e YOURLS_DB_HOST=yourls-db:3306 \ -e YOURLS_DB_USER=yourls \ -e YOURLS_DB_PASS=securepassword \ -e YOURLS_DB_NAME=yourls \ -e YOURLS_SITE=http://localhost:8080 \ -e YOURLS_USER=admin \ -e YOURLS_PASS=mypassword \ --network bridge \ --restart=always \ yourls/yourls:latest
- 再起一个 MySQL 容器配合它:
docker run -d \ --name yourls-db \ -e MYSQL_ROOT_PASSWORD=rootpass \ -e MYSQL_DATABASE=yourls \ -e MYSQL_USER=yourls \ -e MYSQL_PASSWORD=securepassword \ -v yourls-mysql-data:/var/lib/mysql \ -p 3307:3306 \ --network bridge \ --restart=always \ mariadb:10.11
- 等 20 秒,直接访问
http://localhost:8080/admin,用admin/mypassword登录即可 - 所有数据落盘在 Docker volume 里,重装系统也不丢链接记录
YOURLS 的核心价值在于数据自主和长期可用,而 phpEnv 这类工具本质是临时调试玩具。真要搭个能用半年以上的短链服务,别省那点 Docker 学习时间 —— 容器里跑着的才是生产级的 YOURLS。



















