欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ThinkSNS+ PHP开发概述

程序员文章站 2022-07-11 11:23:29
Plus (读音:[plʌs],全称:ThinkSNS+ [θɪŋk es en es plʌs],是 ThinkSNS 系列产品一个重要版本,其软件识别名称为 Plus 即 +) 是一个基于 Latest Laravel 框架进行开发的一个功能强大、易于开发和强拓展的社交系统。 ......

plus (读音:[plʌs],全称:thinksns+ [θɪŋk es en es plʌs],是 thinksns 系列产品一个重要版本,其软件识别名称为 plus 即 +) 是一个基于 latest laravel 框架进行开发的一个功能强大、易于开发和强拓展的社交系统。与其他开源社交程序不同的是 plus 拥有多年社交系统经验,不仅易于上手,还便于应用拓展。另一方面,程序采用 php 7 严格模式,从根本上尽量避免弱级错误的产生。同时因为从零开始选择较好的带有较好 orm 的原因,plus 允许你更具你的需求使用不同数据库。

如果你想深入学习 plus,我们为你准备了大量教程级文档。哪怕你不会 laravel 框架,也能让你入门框架基础,并胜任 plus 应用开发。

如果你是有经验的 phper,那么你可以了解现代流行框架差异,laravel 就是现代留下框架的佼佼者之一。

#php 环境要求

重点

你可能还没有很好的 liunx 知识,没关系,后面的教程会拟定你是零基础的前提下教学,但是下面的环境要求限制,你需要重点记忆,这是程序能否运行的关键所在!

#php 版本

您的 php 必须大于或者等于 7.1.3 版本,当然,我们推荐 7.2. 版本。

#函数

在许多集成环境中,默认会禁用一些函数,当然,这些函数在 plus 的 web 服务中不是必须的,但是如果你在 cli 环境下操作,这些函数将会成为必须:

· exec

· system

· scandir

· symlink

· shell_exec

· proc_open

· proc_get_status

#拓展

这些拓展是 plus 运行时必须的拓展,你必须包装你的 php 环境已安装这些拓展:

· dom 用于解析 xml 等文档使用

· fileinfo 用于文件上传,或者获取文件 meta 信息使用

· gd 用于图片处理的库

· json 一般 php 内核自带,用于处理 json 文档和转换

· mbstring 用于兼容性的字符串处理

· openssl 用于应用秘钥加密等,同时也是内部请求 https 资源使用

· pdo 数据库操作抽象库

#选择性拓展

选择性拓展是更具你的需求,选择性安装的拓展,选择性拓展如下:

· pdo_mysql 如果你使用 mysql 数据库,则必须安装

· pdo_pgsql 如果你使用 postgresql 数据库,则必须安装

· pdo_sqlite 如果你使用 sqlite 数据库,则必须安装

· pdo_dblib 如果你使用 microsoft sql server 数据库,则必须安装

#可选或替换性拓展

· imagick 此库是一个比 gd 库处理图片更好的一个拓展,可以用于替换 gd 库,此库为可选性,安装后不可卸载 gd 库,gd 库可以用于更加高效的图片基础处理。

#数据库

plus 支持四种数据库的使用,但是我仅推荐使用两个数据库。

· mysql | mariadb

o mysql 请使用 >= 5.7 版本,当然,如果能用 mysql 8 再好不过。

o mariadb 是 mysql 原作者后开发的一款关系型数据库,兼容 mysql,如果你要使用,请选择大于或等于 10.3 版本。

· postgresql 数据库是及其推荐的一个数据库,费用高昂但是起计算性能非常好,有条件可以直接使用。

· sqlite 是一个轻量级数据库,如果你只是想体验倒是不妨尝试,问题在于 sqlite 对于 emoji 的储存有待改善(目前都不支持存储 emoji)所以原则上 plus 是不允许使用 sqlite 的。

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

warning

答应我,在 sqlite 和 microsoft sql server 没有很好默认支持 emoji 之前,暂时用 mysql 或者 postgresql 好吗?我是认真的!不然你会遇到很多奇怪的问题!

#教程说明

从后面的教程开始,我们将从零基础开始教学,教学环境为 centos 7.4 版本的 linux。教学环境如下:

· 教学使用服务器系统: centos 7.4

· 教学者使用系统: macos

· ssh 工具: termius

· 教学 php 版本:7.2

· 教学 mysql 版本: 5.7

· 教学 web 组件:nginx

教学内容包括:

· 登入 linux

· 安装 php 7.2

· 安装 mysql 5.7

· 安装 plus

· nginx 安装

· 发布站点

#登入 linux

这里虚拟一台主机,其 ip 地址我们假设为 hostname(正常情况下是一段 ip 地址),端口为 22,操作用户为 root。

在你的 ssh 工具中输入 ssh root@hostname -p 22 然后回车。然后输入你的主机密码即可。

hostname 等信息登录的时候替换为你的真实信息。

我们进入主机后,会进入用户家目录,如果你不知道家目录在说明为主,输入 pwd 命令即可看到。

#编译 php

本章将会带领你在 centos 7.4 系统上编译安装 php 7.2 环境,以及缺少的拓展安装。

#下载源码

我们打开php 官网下载页找到最新的 php 7.2 版本,以 7.2.9 为例:

ThinkSNS+ PHP开发概述

我们点击绿色框部分的的地址,最后我们通过选择地区后得到最终地址为:http://cn2.php.net/distributions/php-7.2.9.tar.xz

我们得到文件下载地址后,登入 linux,我们现在在服务器下载 php 源码,下载我们使用 curl 命令下载,检查你的服务器是否有这个命令输入 curl --help 如果有很大一串内容输出,则表示有该命令,如果输出内容为:

-bash: curl: command not found

1

那么,我们使用 centos 自带的 yum 命令进行安装:

yum install -y curl

1

等待命令执行完成即可,执行完成后,我们下载 php 源码:

curl -o php-7.2.9.tar.xz http://cn2.php.net/distributions/php-7.2.9.tar.xz

1

warning

如果你无法找到准确的文件下载地址,那么你点击绿色框的链接,会进入地区选择页面,例如你选择 china 地区,你会看到一个 cn2.php.net 的链接,鼠标放上去,「右键」点击「复制链接地址」你粘贴后会得到 http://cn2.php.net/get/php-7.2.9.tar.xz/from/this/mirror 这样的地址,如图:

ThinkSNS+ PHP开发概述

复制得到地址后,我们运行下面的命令进行下载:

curl -l -o php-7.2.9.tar.xz http://cn2.php.net/get/php-7.2.9.tar.xz/from/this/mirror

1

#解压源码

解压源码之前,请先下载解压工具:

yum install -y tar xz

1

然后我们先将 xz 归档解压为 tar 归档:

xz -d php-7.2.9.tar.xz

1

执行完成后,我们输入 ls 命令,你会看到现在 php-7.2.9.tar.xz 文件已经消失,而多出一个 php-7.2.9.tar 归档。此时我们来解压这个 tar 归档:

tar -xvf php-7.2.9.tar

1

解压完成后,运行 ls 命令会看到,多出一个 php-7.2.9 的目录了,好了我们现在就得到了源码。

如果你解压步骤失败,可能是下载的文件不是 .tar.xz 后缀归档,也有可能是下载过程中数据丢包,不用担心。你重新下运行 rm -rf php-7.2.9* 命令,将你之前下载的删除,然后重新下载即可。