Clone the project:
git clone https://github.com/alpaca0x0/reurl.git --depth 1 reurlEdit example files:
# Enter project folder
cd reurl
# Copy config example files
cp config.example.php config.php
cp configs/db.example.php configs/db.php
# Edit config files (choose your own editor)
vim config.php
vim configs/db.phpImport the structure of database:
src/url.sqlUpdate the blocked domains list (Optional):
cd ./configs/blocked-domains/
./auto.shSet http router (e.g. Nginx):
# Setting router in web server
# For example, nginx:
vim /etc/nginx/conf.d/default.conf# Route all traffic to router.php in project root path
# p.s. The "root" value set as your own path of project root
# The same goes for other fields...
location ^~ /reurl/ {
root /var/www/html/reurl;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/router.php;
fastcgi_pass unix:/run/php/php-fpm.sock;
}For docker:
location / {
proxy_pass http://127.0.0.1; # Your proxy
proxy_buffering off;
proxy_set_header X-Remote-Addr $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto $scheme;
}😁 Have fun.
說明一些關於該專案的架構,僅僅解釋較為主要或有疑慮的部份。
所有流量都會被導向至/router.php,其稱作Main Router,再由此路由判斷請求的類型,並將其導向至其類型專屬的子路由(Sub Router)。
config.php用於存放該站點的核心參數,如設定站點專案根目錄ROOT,或是開關DEBUG或DEV模式等。init.php用於初始化站點的核心檔案,會自動的引入config.php。router.php主要的路由(Main Router),所有流量必須經過這,由該檔案將流量導至其他子路由(Sub Router)。該檔案會自動引入init.php。
-
api
一些專門用於獲取資料的頁面。captcha取得驗證碼的值,當然這只能用於 DEV 模式下。
-
assets
前端所會用到的資源,包含常見的 JS、CSS,以及圖片、插件庫等。 -
auth
用於驗證的頁面,通常採用 Ajax 請求,並回應 Json 格式。通常情況下,回應欄位有以下幾種:-
type作為回應類別,通常有如下幾種常見的類型:success成功執行warning請求存在問題,而無法完成error伺服端錯誤info單純的顯示訊息
當然這並非固定格式,在某些特定功能中,也會有其獨有的回應格式。
-
status回應狀態碼,同個功能下,必須是唯一值,用於表明請求的處理狀態,且不能含有空格。例如is_login或data_not_found...等。 -
data用於回傳相關資料,如執行更新請求後,回傳新值等。
當然,若是沒有需要回傳的欄位,該欄位可以為NULL。 -
message用於顯示的回應訊息,可以含有任意字元,但通常結尾並不會有標點符號。大多數情況下,該欄位被要求必須設定,但在少數情況,該欄位被允許為NULL。
-
-
classes
一些核心的功能,以 Class 的方式包裝資料與函式,通常為靜態呼叫。init在該目錄下的檔案會在初始時自動的被載入。
-
components
一些常用的頁面部件,如header、footer等。 -
configs
用於存放設定檔的目錄,其.example為範例檔案,需要將檔名中的該字節刪除。如db.example.php修改內容後更名為db.php。 -
functions
一些核心的函式。init在該目錄下的檔案會在初始時自動的被載入。
-
libraries
與assets/plugin不同的點在於,plugin資源可於前端調用,而libraries僅供後端使用。 -
pages
存放站點的主要頁面。 -
routers
用於存放Sub Router的目錄。 -
src
用於存放站點架設所需的資源,該目錄並未有嚴格的規定,總之...有需要就塞。
Tocas-UI(v4.2.4)Animate.css(v4.1.1)
Vue3(v3.0.2)Sweetalert2(v11.6.16)Ajax(Jquery-ajax-onlyfromjquery-builder)
