安装

优质
小牛编辑
118浏览
2023-12-01

环境要求

PHP & 拓展

  • PHP 必须大于或等于 7.1.3
  • 必须安装扩展 dom
  • 必须安装扩展 fileinfo
  • 必须安装扩展 gd
  • 必须安装扩展 json
  • 必须安装扩展 mbstring
  • 必须安装扩展 openssl
  • 必须安装 PDO
  • 使用 MySQL 数据库则必须安装 PHP 扩展 pdo_mysql
  • 使用 PostgreSQL 数据库则必须安装 PHP 扩展 pdo_pgsql
  • 使用 SQLite 数据库则必须安装 PHP 拓展 pdo_sqlite
  • 使用 SQL Server 数据库则必须安装 PHP 拓展 pdo_dblib

PHP 函数

  • exec
  • system
  • scandir
  • symlink
  • shell_exec
  • proc_open
  • proc_get_status

这些是在 Console 环境下使用的,尽量确保你的系统没有禁止。

数据库

推荐使用 PostgreSQL。

MySql

使用 MySQL 建议使用 >=5.7 版本,必须 >=5.6 版本,如果你的是 5.6 版本,则自行解决索引过长导致的 SQL 执行错误问题。

MariaDB

使用 MariaDB 必须 >=10.3 版本,因为只有该版本是建立在 MySQL 5.6 & 5.7 之上的,得以支持 Emoji。

使用 MariaDB 按照 MySQL 进行配置即可。

PostgreSQL

PostgreSQL 数据库天然支持 Emoji,无需任何版本要求,但是我们还是建议使用最新版本的 PostgreSQL 稳定版本的以支持更完善的空间计算。

SQLite

首先,这个数据库不建议使用,因为这种轻量级的数据库适合在 App 中来解决数据本地化需求,服务器应用场景很小。

虽然 ThinkSNS+ 不允许使用 SQLite,但是您仍然可以在系统中使用该数据库,但是例如 Emoji 储存等问题自行解决。

Microsoft SQL Server

就像不推荐 SQLite 一样,我们同样不推荐 Microsoft SQL Server 除非你确定你的系统不适用 Emoji 那么你可以无顾虑的使用 Microsoft SQL Server 了,因为 Microsoft SQL Server 同样支持 utf8 字符集,却无法支持四位长度的 Emoji 字符。

ThinkSNS+ 不建议使用 SQL Server,但是你仍然可以在系统中使用,出现的 emoji 存储问题自行解决。

安装

需要软件:

之后操作我们拟定目录为 /var/www

下载 Plus 和相关依赖

composer create-project zhiyicx/thinksns-plus

克隆完成后我们进入 thinksns-plus 目录:

发布拓展包资源

php artisan vendor:publish --all

前端服务器转发配置

配置前端服务器,例如 Nginx、Apache 等。应当将 ThinkSNS Plus 下的 public 作为 root 目录。

Nginx

如果你使用的是 Nginx,在你的站点配置中加入以下内容,它将会将所有请求都引导到 index.php 前端控制器:

location / {
  try_files $uri $uri/ /index.php?$query_string;
}
Example
server {
  listen 443 ssl http2;
  server_name plus.io;
  ssl on;
  ssl_certificate /var/www/public/public.io.crt;
  ssl_certificate_key /var/www/public/public.io.key.unsecure;
  root /var/www/public/public;
  index index.php index.html index.htm;

  location / {
     try_files $uri $uri/ /index.php$is_args$args;
  }

  location ~ \.php$ {
    try_files $uri /index.php =404;
    fastcgi_pass php-upstream;
    fastcgi_index index.php;
    fastcgi_buffers 16 16k;
    fastcgi_buffer_size 32k;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }

  location ~ /\.ht {
    deny all;
  }
}

Apache

在 ThinkSNS+ 中,已经在根目录 /plulic 中已经提供了 .htaccess 文件,其中已经为您配置好了优雅的地址配置。如果在你的 Apache 中不生效或者由其他位置提供配置,请设置:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

Caddy

Caddy 是一个小巧精悍的 http 软件,在开发环境,测试环境等下也是我们推荐使用的软件。因为它无需特殊的安装,无需特殊的配置,您只需下载一个 Caddy 运行文件,写一份你的站点配置即可运行。

rewrite { 
  to {path} {path}/ /index.php?{query}
}

目录权限 & 公开资源

大多数时候为了方便,我们在服务器都是使用 root 作为服务器管理账户,可能你在下载 ThinkSNS+ 的时候也适用的 root 账户,这会产生一个问题,php-fpm 或者 nginx 不是运行在 root 账户下的,导致你实际运行站点的时候会出现莫名其妙的错误,你应该将你整个 thinksns-plus 目录指定给 php 或者 nginx 的运行角色:

目录权限
/*0755
/storage0777

所有资源都存储在 /storage 目录下,所以你需要将公开资源链接到 /public 目录下,请务必执行:

php artisan storage:link