社交 App 系統 ThinkSNS+ PHP 開發概述

ThinkSNS發表於2019-05-30

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 為例:

圖片1.png

我們點選綠色框部分的的地址,最後我們通過選擇地區後得到最終地址為:http://cn2.php.net/distributions/php-7.2.9...

我們得到檔案下載地址後,登入 Linux,我們現在在伺服器下載 PHP 原始碼,下載我們使用 curl 命令下載,檢查你的伺服器是否有這個命令輸入 curl --help 如果有很大一串內容輸出,則表示有該命令,如果輸出內容為:

-bash: curl: command not found

那麼,我們使用 CentOS 自帶的 yum 命令進行安裝:

yum install -y curl

等待命令執行完成即可,執行完成後,我們下載 PHP 原始碼:

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

WARNING

如果你無法找到準確的檔案下載地址,那麼你點選綠色框的連結,會進入地區選擇頁面,例如你選擇 China 地區,你會看到一個 cn2.php.net 的連結,滑鼠放上去,「右鍵」點選「複製連結地址」你貼上後會得到 http://cn2.php.net/get/php-7.2.9.tar.xz/fr... 這樣的地址,如圖:

圖片2.png

複製得到地址後,我們執行下面的命令進行下載:

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

#解壓原始碼

解壓原始碼之前,請先下載解壓工具:

yum install -y tar xz

然後我們先將 XZ 歸檔解壓為 tar 歸檔:

xz -d php-7.2.9.tar.xz

執行完成後,我們輸入 ls 命令,你會看到現在 php-7.2.9.tar.xz 檔案已經消失,而多出一個 php-7.2.9.tar 歸檔。此時我們來解壓這個 tar 歸檔:

tar -xvf php-7.2.9.tar

解壓完成後,執行 ls 命令會看到,多出一個 php-7.2.9 的目錄了,好了我們現在就得到了原始碼。

如果你解壓步驟失敗,可能是下載的檔案不是 .tar.xz 字尾歸檔,也有可能是下載過程中資料丟包,不用擔心。你重新下執行 rm -rf php-7.2.9* 命令,將你之前下載的刪除,然後重新下載即可。

For 企業/商業:利用ThinkSNS軟體系統可快速搭建所需的網站/微信版/APP 軟體,無須從 0 開發,省時省心省研發成本;

For 創業者:ThinkSNS提供優秀創業扶持優惠,助力創業初期完美起飛;

For 個人粉絲:ThinkSNS10 年開源,提供業內開發參考,免費體驗使用;

For 開發者:ThinkSNS採用可持續發展的框架開發,底層穩固文件清晰,支援深度二次開發。

相關文章