用樹莓派搭建一個私人社群網路

2020-04-17 21:02:00

手把手教你怎樣以低成本的硬體和簡易步驟搭建自己的社群網路。

近年來,社群網路已經革新了人們的生活習慣。人們每天都會使用社交頻道與朋友和家人聯絡。但是涉及到隱私和資料安全時,仍有一些共同的問題。儘管社群網路建立了複雜的隱私策略來保護使用者的資訊,但如果你不想自己的資訊被洩露,最好的辦法還是把資料儲存在自己的伺服器上。

一個樹莓派 — 多才多藝的 Raspbian Lite 版本就可以讓你搭建很多有用的家庭服務(參照我的文章樹莓派專案)。通過搜尋開源軟體你就可以實現一些令人癡迷的功能,你也可以用這個神奇的裝置來感受那些功能。其中一個有趣的嘗試就是在你的樹莓派上安裝 OSSN。

OSSN 是什麼?

開源社群網路OpenSource Social Network(OSSN)是用 PHP 寫的一個快速開發社群網路軟體,讓你可以搭建自己的社群網站。OSSN 可以用來搭建不同型別的社交應用,如:

  • 私人內部網路
  • 公用/公開網路
  • 社群

OSSN 支援的功能:

  • 照片
  • 個人資料
  • 朋友圈
  • 表情
  • 搜尋
  • 聊天

OSSN 執行在 LAMP 伺服器上。硬體需求很簡單,卻能提供強大的使用者介面,也友好支援行動端。

我們需要準備什麼

這個專案很簡單,而且由於我們只安裝遠端 Web 服務,因此我們只需要一些便宜的零件就夠了。我使用的是樹莓派 3B+,但是用樹莓派 3A+ 或其他更新的板應該也可以。

硬體:

  • 帶有電源模組的樹莓派 3B+
  • 一張 SD 卡(最好是效能好點的卡,至少 16 GB)
  • 一台有 SFTP 軟體(如免費的 Filezilla)的桌面 PC,用來把安裝包傳到你的樹莓派上

操作步驟

我們首先搭建一個傳統的 LAMP 伺服器,然後設定資料庫使用者和安裝 OSSN。

1、安裝 Raspbian Buster Lite 作業系統

你可以直接參照我的文章在你的樹莓派上安裝 Raspbian Buster Lite

為了確保你的系統是最新的,ssh 登入到樹莓派後在終端輸入下面的命令:

sudo apt-get updatesudo apt-get upgrade

2、安裝 LAMP 服務

LAMP(Linux–Apache–Mysql–Php)服務通常與 MySQL 資料庫配合。在我們的專案中,我們選擇 MariaDB,因為它更輕量,完美支援樹莓派。

安裝 Apache 服務:

sudo apt-get install apache2 -y

你可以通過在瀏覽器輸入 http://<<YouRpiIPAddress>> 來檢查 Apache 是否安裝正確:

安裝 PHP:

sudo apt-get install php -y

安裝 MariaDB 服務和 PHP connector:

sudo apt-get install mariadb-server php-mysql -y

安裝 phpMyAdmin:

在 OSSN 中 phpMyAdmin 不是強制安裝的,但我建議你安裝,因為它可以簡化資料庫的管理。

sudo apt-get install phpmyadmin

在 phpMyAdmin 設定介面,執行以下步驟:

  • 按下空格和 “OK” 選擇 apache(強制)。
  • 在 dbconfig-common 選擇“Yes”,設定 phpMyAdmin 的資料庫。
  • 輸入想設定的密碼,按下 “OK”。
  • 再次輸入 phpMyAdmin 密碼來確認,按下 “OK”。

為 phpMyAdmin 使用者新增資料庫許可權來管理資料庫:

我們用 root 使用者連線 MariaDB(預設沒有密碼)來設定許可權。

sudo mysql -uroot -pgrant all privileges on *.* to 'phpmyadmin'@'localhost';flush privileges;quit

最後,重新啟動 Apache 服務:

sudo systemctl restart apache2.service

在瀏覽器輸入 http://<<YouRpiIPAddress>>/phpmyadmin/ 來檢查 phpMyAdmin 是否正常:

預設的 phpMyAdmin 登入憑證:

  • 使用者名稱:phpmyadmin
  • 密碼:在 phpMyAdmin 安裝步驟中你設定的密碼

3、安裝 OSSN 所需的其他包和設定 PHP

在第一次設定 OSSN 前,我們還需要在系統上安裝一些所需的包:

  • PHP 版本 5.6、7.0 或 7.1
  • MYSQL 5 及以上
  • APACHE
  • MOD_REWRITE
  • 需要開啟 PHP 擴充套件 cURL 和 Mcrypt
  • PHP GD 擴充套件
  • PHP ZIP 擴充套件
  • 開啟 PHP 設定 allow_url_fopen
  • PHP JSON 支援
  • PHP XML 支援
  • PHP OpenSSL

在終端輸入以下命令來安裝上述包:

sudo apt-get install php7.3-curl php7.3-gd php7.3-zip php7.3-json php7.3-xml

開啟 mod_rewrite:

sudo a2enmod rewrite

修改預設的 Apache 設定,使用 mod_rewrite:

sudo nano /etc/apache2/sites-available/000-default.conf

000-default.conf 檔案中新增下面的內容:

<VirtualHost *:80>    ServerAdmin webmaster@localhost    DocumentRoot /var/www/html    ErrorLog ${APACHE_LOG_DIR}/error.log    CustomLog ${APACHE_LOG_DIR}/access.log combined    # 需要新增的部分開始 --------------------------------        <Directory /var/www/html>            Options Indexes FollowSymLinks MultiViews            AllowOverride All            Require all granted        </Directory>    # 需要新增的部分結束 --------------------------------</VirtualHost>

安裝 Mcrypt:

sudo apt install php-dev libmcrypt-dev php-pearsudo pecl channel-update pecl.php.netsudo pecl install mcrypt-1.0.2

開啟 Mcrypt 模組:

/etc/php/7.3/apache2/php.ini 檔案中 extension=mcrypt.so(或取消註釋):

sudo nano /etc/php/7.3/apache2/php.ini

allow_url_fopen 應該已經在 /etc/php/7.3/apache2/php.ini 檔案中開啟了。OpenSSL 應該在 php7.3 中安裝了。

我建議的另一個設定是把 PHP 最大上傳檔案數修改為 16 MB:

sudo nano /etc/php/7.3/apache2/php.ini

搜尋到 upload_max_filesize 所在的行,參照下面的設定:

upload_max_filesize = 16M

儲存並退出,重新啟動 Apache:

sudo systemctl restart apache2.service

4、安裝 OSSN

建立資料庫,設定使用者

回到 phpmyadmin web 頁面(瀏覽器輸入 http://<<YouRpiIPAddress>>/phpmyadmin/)並登入:

  • 使用者名稱: phpmyadmin
  • 密碼:在 phpMyAdmin 安裝步驟中你設定的密碼

點選資料庫分頁:

建立一個資料庫,記下資料庫的名字,因為在之後的安裝過程中,你要手動輸入它。

現在為 OSSN 建立一個資料庫使用者,我使用下面的憑證:

  • 使用者名稱: ossn_db_user
  • 密碼: ossn_db_password

在終端輸入下面的命令(如果你沒有修改過密碼,root 密碼應該仍然是空):

sudo mysql -uroot -pCREATE USER 'ossn_db_user'@'localhost' IDENTIFIED BY 'ossn_db_password';GRANT ALL PRIVILEGES ON ossn_db.* TO 'ossn_db_user'@'localhost';flush privileges;quit
安裝 OSSN 軟體

在你 PC 上從 OSSN 下載頁面 下載 OSSN 安裝壓縮檔案,儲存為檔案 ossn-v5.2-1577836800.zip

使用你習慣的 SFTP 軟體把整個壓縮檔案通過 SFTP 傳到樹莓派的新目錄 /home/pi/download 下。常用的(預設)SFP 連線引數是:

  • 主機:你樹莓派的 IP 地址
  • 使用者名稱:pi
  • 密碼:raspberry(如果沒有修改過預設密碼)
  • 埠: 22

在終端輸入:

cd /home/pi/download/ # 進入上傳的 OSSN 安裝檔案的目錄。unzip ossn-v5.2-1577836800.zip # 從壓縮包中提取所有檔案cd /var/www/html/ # 進入 Apache Web 目錄sudo rm index.html # 刪除 Apache 預設頁面 - 我們將使用 OSSNsudo cp -R /home/pi/download/ossn-v5.2-1577836800/* ./ #Copy installation files to web directorysudo chown -R www-data:www-data ./

建立資料資料夾:OSSN 需要一個資料夾來存放資料。出於安全目的,OSSN 建議這個資料夾建立在公開文件根目錄之外。所以,我們在 /opt 下建立。

sudo mkdir /opt/ossn_datasudo chown -R www-data:www-data /opt/ossn_data/

在瀏覽器輸入 http://<<YourRpiIPAddress>> 來開始安裝嚮導。

所有項都檢查完後,點選頁面最下面的下一步按鈕。

閱讀證書驗證並點選頁面最下面的下一步按鈕來接受證書。

輸入資料庫使用者名稱,密碼和你選擇的資料庫名字,記得也要輸入 OSSN 資料資料夾名稱。點選安裝。

輸入你的管理員賬號資訊,點選建立按鈕。

現在所有的工作應該都完成了。點選結束,進入管理員首頁。

你可以通過 URL http://<<YourRpiIPAddress>>/administrator 進入管理員控制面板,普通使用者可以存取連結是 http://<<YourRpiIPAddress>>

本文首發在 peppe8o.com。已獲得轉載授權。