Fresns 是一款基于 PHP 编程语言和关系型数据库开发的社交社区网络服务软件。
Web 服务器任选一种 | NginxApacheCaddyIIS |
---|---|
PHP 版本 | 8.1 或更高版本 |
PHP 扩展支持 | fileinfo |
PHP 函数启用 | symlink, putenv, proc_open, shell_exec, passthrupcntl_signal, pcntl_alarm, pcntl_async_signals |
软件包管理器 | Composer 2.5 或更高版本 |
数据库和版本任选一种 | MySQL 5.7 ~ 8.xMariaDB 10.3 ~ 11.xPostgreSQL 11.x ~ 15.xSQL Server 2016(13.x) ~ 2022(16.x)SQLite 3.9 或更高版本 |
PHP 函数用途介绍
方式 1: 手动下载安装包
sh
composercreate-projectfresns/fresns
方式 1: 可视化安装
方式 2: 终端中安装
sh
# 进入 fresns 项目根目录
cdfresns
# 进入安装流程
phpartisanfresns:install
备注:由于“网站根目录”不是“主程序根目录”,网站运行时会向上请求主程序根目录文件,所以请勿开启 防跨站攻击(open_basedir) 的功能配置。
安装成功后,主程序根目录会有一个 .env 文件,该文件用于存储 Fresns 所有配置信息,具体介绍如下:
sh
APP_ENV=production#运营环境,测试使用为 local,正式运营为 production
APP_KEY=#数据加密 key,可重新生成,指令为 php artisan key:generate
APP_DEBUG=false#是否输出详细报错信息,调试时改为 true
APP_URL=#你的系统网址,例如 https://discuss.fresns.cn
APP_FOUNDER=1#创始人账号 ID (accounts->id)
MySQL/MariaDBPostgreSQLSQL ServerSQLite
sh
DB_CONNECTION=mysql#数据库类型 sqlite, mysql, pgsql, sqlsrv
DB_HOST=127.0.0.1#数据库主机 默认为 127.0.0.1
DB_PORT=3306#数据库主机端口 默认为 3306
DB_DATABASE=fresns#数据库名
DB_USERNAME=fresns#数据库用户名
DB_PASSWORD=123456#数据库密码
DB_TIMEZONE=Asia/Shanghai#数据库时区
DB_PREFIX=fs_#表前缀 默认为 fs_
DB_COLLATION=utf8mb4_0900_ai_ci#默认为 utf8mb4_unicode_520_ci
如果你的运行环境为代理,需要配置 .env 可信任的 IP 信息,多个以英文逗号隔开。
我们以 Cloudflare 代理环境为例,配置 IPv4 和 IPv6
IPv4IPv6全部
sh
TRUSTED_PROXIES=173.245.48.0/20,103.21.244.0/22,103.22.200.0/22,103.31.4.0/22,141.101.64.0/18,108.162.192.0/18,190.93.240.0/20,188.114.96.0/20,197.234.240.0/22,198.41.128.0/17,162.158.0.0/15,104.16.0.0/13,104.24.0.0/14,172.64.0.0/13,131.0.72.0/22
你可以指定应用默认使用哪个缓存驱动。Fresns 支持的缓存后端包括 Memcached、Redis、DynamoDB,以及现成的关系型数据库。此外,还支持基于文件的缓存驱动,以及方便自动化测试的缓存驱动 array 和 null。
RedisMemcached
sh
REDIS_HOST=127.0.0.1#Host
REDIS_PASSWORD=null#密码
REDIS_PORT=6379#端口
CACHE_DRIVER=redis#缓存驱动
BROADCAST_DRIVER=redis#广播驱动
SESSION_DRIVER=redis#会话驱动
QUEUE_CONNECTION=redis#队列驱动
同一台服务器部署多个 Fresns 项目时配置
推荐 redis 或 database,不配置则默认为 sync
sh
# 进程启动命令
phpartisanqueue:work
在运营 Fresns 时,您需要一种方法来保持「定时任务」正常运行,而 Laravel 框架的任务调度就是一个保证主程序和插件能够使用定时任务的机制。配置了任务调度,主程序就可以定时清理注销账号和检测用户角色过期等任务。
说明示例
sh
# 任务配置
***** cd /你的项目路径 && phpartisanschedule:run>>/dev/null2>&1
# 或
su-c"cd /你的项目路径 && php artisan schedule:run >> /dev/null 2>&1"-s/bin/sh所有者
Fresns 是一款支持跨时区服务的软件,为了保证时间值的一致性,软件中采用 UTC 时区标准。
录入时间
输出时间
请确保你的 Web 服务器将所有请求定向到 public/index.php 目录文件,永远不要尝试将 index.php 文件移动到主程序根目录,因为从主程序根目录运行程序会将许多敏感文件暴露在公共互联网上,这是非常不安全的运行方式。
NginxApacheIISCaddy
nginx
location/ {
try_files $uri $uri/ /index.php?$query_string;
}
php
fresns/// 主程序根目录
├──app/// 主程功能目录
├──bootstrap/// 引导程序目录
├──config/// 配置文件目录
├──database/// 数据文件目录
├──plugins/// 插件目录
├──public/// 网站根目录
│├──assets/// 插件静态文件
│├──static/// 内置静态文件
│├──index.php// 网站入口文件
│├──favicon.ico// 站点 ico 图标
│└──robots.txt// 搜索引擎 Robots 协议
├──resources/// 框架资源目录
├──storage/// 框架存储目录
├──vendor/// 扩展依赖项目录
├──.env// 配置文件(安装完成后生成)
├──artisan// 框架命令行接口
├──compose.json// 依赖项配置信息
├──compose.lock// 依赖项安装信息
├──fresns.json// 主程序信息
├──install.lock// 安装锁定文件(有该文件后,禁止再执行安装)
└──LICENSE// 版权文件
在安装过程中,Fresns 可能会要求您将某些目录设置为可写。要使 Linux 上的某个目录可写,可以执行以下命令:
sh
chmod755/path/to/directory
如果 Fresns 对某个目录及其子目录请求写权限,请添加 -R 选项,以递归更新该目录和其内的文件及子目录权限:
sh
chmod755-R/path/to/directory
如果在完成以上操作后,Fresns 仍要求您改变权限,请先尝试将 755 权限改为 775 试一遍,依然不行的话,您可能需要检查文件(夹)的所有者和所属组群是否正确。
环境有别
您的服务器环境可能会与本文示例不同,请查看您的 Web 服务器配置或咨询 Web 托管提供商,以了解 PHP 和 Web 服务器默认运行在哪个用户或组下。
权限禁忌 777
绝不要将任何文件夹或文件的权限设置为 777 级别,这个权限允许任何人(无论用户还是组)随意访问文件夹和文件的内容,严重威胁安全。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有