monica 不能像 wordpress 那样直接放入 www 目录运行,因其是基于 laravel 的现代 php 应用,依赖 composer 自动加载、artisan 命令、环境配置及 web 服务器重写规则;phpenv 默认仅提供基础运行时,未预装必要扩展、未启用 url 重写、也未配置 public 入口路径,且必须通过 www/monica/public 作为 web 根目录,否则路由和静态资源全部 404。

phpEnv 本身不提供一键安装 Monica 的功能,Monica 是一个独立的 PHP + Laravel 应用,必须手动部署;直接把 Monica 丢进 www 目录下是跑不起来的,会报 Class 'Illuminate\Foundation\Application' not found 或 Missing .env file 这类错误。
为什么 Monica 不能像 WordPress 那样直接放进去就运行
Monica 不是传统 PHP 脚本型应用(如 WordPress),而是基于 Laravel 框架的现代 PHP 应用,依赖 Composer 自动加载、Artisan 命令、环境配置和 Web 服务器重写规则。phpEnv 默认只配好了 PHP + Nginx + MySQL 基础运行时,没预装扩展、没启用 URL 重写、也没配置 Laravel 所需的 public 入口路径。
- Laravel 必须通过
public/目录作为 Web 根目录,否则路由和静态资源全部 404 - 需要开启
mod_rewrite(Apache)或try_files(Nginx)支持伪静态,否则所有后台路径如/login都返回 404 - 必须安装
ext-mbstring、ext-xml、ext-zip、ext-pdo_mysql等扩展,缺一个就会在composer install或启动时报错 -
.env文件必须手动创建并填写数据库、APP_KEY、加密密钥等,漏填会导致白屏或 500 错误
在 phpEnv 中正确部署 Monica 的关键步骤
以 phpEnv v4.1.2(最新稳定版)为例,假设你已启动 Nginx 和 MySQL 服务:
- 用 Git 克隆 Monica 到
www/monica(不要解压到根目录!):git clone https://github.com/monicahq/monica.git www/monica
- 进入目录执行依赖安装(需提前在 phpEnv 中确认
composer可用):cd www/monica && composer install --no-dev --optimize-autoloader
- 复制
.env.example为.env,并修改以下几项:DB_HOST=localhost<br>DB_PORT=3306<br>DB_DATABASE=monica<br>DB_USERNAME=root<br>DB_PASSWORD=<br>APP_URL=http://monica.test
- 生成密钥:
php artisan key:generate
- 执行迁移并初始化数据:
php artisan migrate --seed
必须修改 phpEnv 的 Nginx 配置才能访问
默认 phpEnv 的 Nginx 配置指向 www/,但 Monica 要求 Web 根目录是 www/monica/public。你需要编辑:
C:\phpEnv\nginx\conf\vhost\localhost.conf(或对应你绑定的域名配置文件),把其中的
root 行改为:
root "C:/phpEnv/www/monica/public";
同时确保 location / 块里有这条重写规则(Laravel 必需):
try_files $uri $uri/ /index.php?$query_string;
改完后重启 phpEnv 的 Nginx 服务(点“重启服务”按钮,不是“启动”)。
访问前别忘了 hosts 和数据库准备
Monica 默认不接受 localhost 访问,必须用域名(如 monica.test):
- 用管理员权限打开
C:\Windows\System32\drivers\etc\hosts,加一行:127.0.0.1 monica.test
- 用 phpMyAdmin 或 Navicat 创建空数据库
monica,字符集选utf8mb4_unicode_ci(Laravel 强制要求) - 浏览器访问
http://monica.test,首次加载可能慢(要跑 session 和缓存初始化),耐心等 10–20 秒
如果看到登录页,说明成功;如果卡在 500 或空白页,优先检查 storage/logs/laravel.log,90% 的问题都写在里面——尤其是 APP_KEY 缺失、storage 目录不可写、或 MySQL 连接失败这三类。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











