Grav是一款基于PHP的现代化扁平文件内容管理系统,以MIT协议开源,完全免费商用。Grav诞生于2014年,以无需数据库、极致轻量、速度极快著称。Grav采用Markdown格式存储内容,使用YAML配置元数据,内置强大的缓存机制、灵活的主题系统、丰富的插件生态,适合搭建个人博客、文档站点、企业官网、作品集、着陆页。
核心优势:无需数据库(内容存储为Markdown文件)、极致轻量快速、Markdown写作体验好、Git友好(内容可版本管理)、强大的缓存机制、灵活的Twig模板、丰富的插件和主题、完全免费商用、部署简单。Grav是追求轻量和速度的用户首选。
环境要求
- Web服务器:Nginx / Apache / LiteSpeed / IIS
- PHP版本:PHP 8.1 ~ 8.3(Grav 1.7+推荐PHP 8.2)
- 数据库:无需数据库(扁平文件存储)
- 内存:最低128MB,推荐256MB以上
- 磁盘:至少100MB可用空间
- PHP扩展:gd、curl、mbstring、json、xml、zip、openssl、ctype、dom、simplexml
- 可选:APCu、OPcache、Redis(用于缓存加速)
安装教程
步骤1:下载Grav安装包
cd /www/wwwroot/yourdomain.com
wget https://getgrav.org/download/core/grav-admin/latest -O grav-admin.zip
unzip grav-admin.zip
mv grav-admin/* .
rm -rf grav-admin grav-admin.zip
grav-admin版本包含管理后台插件,推荐新手使用。
步骤2:配置文件权限
chown -R www:www /www/wwwroot/yourdomain.com
chmod -R 755 /www/wwwroot/yourdomain.com
chmod -R 777 /www/wwwroot/yourdomain.com/cache
chmod -R 777 /www/wwwroot/yourdomain.com/logs
chmod -R 777 /www/wwwroot/yourdomain.com/images
chmod -R 777 /www/wwwroot/yourdomain.com/assets
chmod -R 777 /www/wwwroot/yourdomain.com/user/data
步骤3:Nginx配置
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
root /www/wwwroot/yourdomain.com;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \\.php$ {
fastcgi_pass unix:/tmp/php-cgi-82.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~* \\.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
expires 30d;
add_header Cache-Control "public, immutable";
}
location ~ /\\.ht {
deny all;
}
location ~ /(cache|logs|backup)/ {
deny all;
}
}
步骤4:创建管理员账号
浏览器访问 http://yourdomain.com/admin,首次访问会进入管理员注册页面:
- 填写管理员用户名、邮箱、密码
- 填写网站标题
- 点击"Create User"完成注册
步骤5:登录后台
访问 http://yourdomain.com/admin 登录后台。Grav后台功能包括:页面管理、配置管理、插件管理、主题管理、工具(缓存清理、备份)等。
Windows环境安装(phpStudy集成环境)
- 下载安装phpStudy(https://www.xp.cn),开启Apache/Nginx
- 从Grav官网(https://getgrav.org)下载grav-admin.zip
- 解压到phpStudy的WWW目录下
- 设置cache、logs、images等目录权限为可写
- 浏览器访问http://localhost/grav/admin创建管理员账号
- 登录后台开始使用
宝塔面板安装(推荐)
- 安装宝塔面板,登录后安装Nginx + PHP 8.2(无需MySQL)
- 点击"网站" → "添加站点",填写域名,数据库选择"不创建"
- 在网站根目录下载Grav:
wget https://getgrav.org/download/core/grav-admin/latest -O grav.zip && unzip grav.zip && mv grav-admin/* . && rm -rf grav-admin grav.zip
- 设置目录权限:cache、logs、images、assets、user/data设为755,所有者为www
- 浏览器访问域名/admin创建管理员账号
- 登录后台开始使用
服务器配置建议
- PHP内存限制:
memory_limit = 128M(推荐256M)
- 上传文件大小:
upload_max_filesize = 16M,post_max_size = 16M
- 最大执行时间:
max_execution_time = 60
- 启用OPcache和APCu加速(Grav缓存效果显著)
- 配置Redis或Memcached作为缓存后端
- 在后台配置中启用缓存和图像优化
- 定期备份user目录(包含所有内容和配置)
- 使用Git管理user目录,实现版本控制
常见问题
Q:安装时提示"目录不可写"?
A:确保cache、logs、images、assets、user/data目录权限为755,所有者为www用户。
Q:页面加载慢?
A:启用OPcache和APCu扩展,在后台配置中启用缓存,安装缓存插件。Grav首次加载较慢,缓存后速度极快。
Q:如何创建新页面?
A:在后台"页面"中点击"添加",或在user/pages目录下创建文件夹,新建default.md文件,用Markdown编写内容。
Q:忘记管理员密码?
A:删除user/accounts/admin.yaml文件,然后重新访问/admin创建新账号。或直接编辑该文件修改密码哈希。
官方网址
Grav官网地址:https://getgrav.org