Skip to content

安装

环境要求

Fresns 是一款基于 PHP 编程语言和关系型数据库开发的社交社区网络服务软件。

配置项要求
Web 服务器
任选一种
Nginx
Apache
Caddy
IIS
PHP 版本8.2 或更高版本
PHP 扩展支持mbstring, fileinfo, opcache
PHP 函数启用symlink, putenv, proc_open, shell_exec, passthru
pcntl_signal, pcntl_alarm, pcntl_async_signals
软件包管理器Composer 2.5 或更高版本
数据库和版本
任选一种
MySQL 5.7 ~ latest
MariaDB 10.3 ~ latest
PostgreSQL 11.x ~ latest
SQL Server 2017(14.x) ~ latest
SQLite 3.35 ~ latest
PHP 函数用途介绍
函数用途禁用操作
symlink生成存储目录软链接使用 storage:link安装完 Fresns 后可以禁用
exec生成存储目录软链接使用 storage:link
不在环境要求的明细中,仅 Windows 系统使用
安装完 Fresns 后可以禁用
putenvcomposer 用于设置环境变量,升级 Fresns 或安装插件时使用升级完 Fresns 后和安装完插件后可以禁用
proc_opensymfony/process 用于 composer 命令,升级 Fresns 或安装插件时使用升级完 Fresns 后和安装完插件后可以禁用
shell_execsymfony/console 用于 composer 命令,升级 Fresns 或安装插件时使用升级完 Fresns 后和安装完插件后可以禁用
passthruFresns 升级使用,使用该函数执行升级可以避免执行超时升级完 Fresns 后可以禁用,或者只在终端中执行升级,则不需要该函数
pcntl_signalilluminate/queue 用于 Fresns 队列任务不配置队列,或者使用默认 sync 队列,则不需要该函数
pcntl_alarmilluminate/queue 用于 Fresns 队列任务不配置队列,或者使用默认 sync 队列,则不需要该函数
pcntl_async_signalsilluminate/queue 用于 Fresns 队列任务不配置队列,或者使用默认 sync 队列,则不需要该函数

Web 服务器配置

执行安装

方式 1: 可视化安装

  • 请先配置好 Web 服务器
  • 浏览器访问 网址/install

方式 2: 终端中安装

sh
# 进入 fresns 项目根目录
cd fresns

# 进入安装流程
php artisan fresns:install
  • 默认后台路径 网址/fresns/admin
  • Fresns 是前后端分离,主程序只是服务端,如需客户端,请至应用市场挑选安装。

URL 重写

请确保你的 Web 服务器将所有请求定向到 public/index.php 目录文件,永远不要尝试将 index.php 文件移动到主程序根目录,因为从主程序根目录运行程序会将许多敏感文件暴露在公共互联网上,这是非常不安全的运行方式。

nginx
location / {
    try_files $uri $uri/ /index.php?$query_string;
}
apache
<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Send Requests To Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>
xml
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Imported Rule 1" stopProcessing="true">
          <match url="^(.*)/$" ignoreCase="false" />
          <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
          </conditions>
          <action type="Redirect" redirectType="Permanent" url="/{R:1}" />
        </rule>
        <rule name="Imported Rule 2" stopProcessing="true">
          <match url="^" ignoreCase="false" />
          <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
          </conditions>
          <action type="Rewrite" url="index.php" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>
bash
rewrite {
    to {path} {path}/ /index.php?{query}
}

目录所有权

在安装过程中,Fresns 可能会要求您将某些目录设置为可写。要使 Linux 上的某个目录可写,可以执行以下命令:

sh
chmod 755 /path/to/directory

如果 Fresns 对某个目录及其子目录请求写权限,请添加 -R 选项,以递归更新该目录和其内的文件及子目录权限:

sh
chmod 755 -R /path/to/directory

如果在完成以上操作后,Fresns 仍要求您改变权限,请先尝试将 755 权限改为 775 试一遍,依然不行的话,您可能需要检查文件(夹)的所有者和所属组群是否正确。

环境有别

您的服务器环境可能会与本文示例不同,请查看您的 Web 服务器配置或咨询 Web 托管提供商,以了解 PHP 和 Web 服务器默认运行在哪个用户或组下。

权限禁忌 777

绝不要将任何文件夹或文件的权限设置为 777 级别,这个权限允许任何人(无论用户还是组)随意访问文件夹和文件的内容,严重威胁安全。