網上其實有各式各樣的網址縮短工具,有收費的有免費,為什麼我還要搭建一個呢,無他,一是為了裝裝逼,二是自己需要的功能剛好可以實現,就動手做了一個了,不難,不懂代碼的都可以搭建,下面分享一下搭建過程。
前期準備:
- 一台服務器;
- 一個短一點的域名;
說一下我用的配置,服務器是騰訊的香港CVM,當然你用阿里雲的ECS也可以,不影響,操作都是一樣的;
我域名是阿里雲的二級域名,短的域名不捨得花錢買,就用了比較長的d.funletu.com二級域名了,沒辦法,誰叫咱窮呢,
你要做的就是把二級域名解析到你的服務器上,關於這個不懂的可以網上搜索一下,很簡單的。
為了方便操作,這裡建議大家還是在服務器上安裝寶塔,不懂的可以看這篇文章《雲服務器如何安裝寶塔面板》,我下面的操作都會在寶塔面板上完成。
開始搭建
首先,搭建短網址程序還需要藉助國外一套開源的程序—Polr
別擔心,這套程序別人都已經開發好了,無需懂代碼,你只要把它安裝到你的服務器就可以了;
Polr功能介紹
- 修改縮短的域名
- 統計功能(來源,時間)
API
支持- 二維碼生成
因為這套程序是開源免費的,而且功能實用,所以用它來搭建,當然,你也可以用Yourls這套程序搭建,只是功能上就遜色得多,Yourls僅支持鏈接縮短。
安裝方法
1、安裝Web環境
我們要先在寶塔上安裝Web環境,我安裝的是LNMP環境,即Linux/Nginx/MySQL/PHP;當然,你也可以用LAMP環境搭建(和LNMP環境下的操作大致一樣,可以參考這份英文教程,反正我是看不懂,我只在LNMP環境下搭建成功);
環境搭建好之後,就需要可以開始安裝Polr了;
2、添加網站並下載程序
添加域名,並進入網站根目錄,使用命令:
cd /www/wwwroot/xx.com #下載官方源碼 git clone https://github.com/cydrobolt/polr.git mv polr/{.,}* ./
注意:要在網站根目錄安裝,xx.com要替換為你的網站根目錄文件夾名稱
另外,這裡我沒有裝中文漢化版,因為漢化版的源碼太舊了,二維碼功能沒有加上,所以我用的是官方源碼,如果你仍然想安裝中文版的,把git命令替換一下就行
安裝中文漢化版: git clone https://github.com/cydrobolt/polr.git #替換為 git clone https://github.com/skywalker512/polr.git
3、使用Composer安裝
#安裝Composer curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer #進入網站根目錄運行 composer install --no-dev -o
這一步很簡單,跟着粘貼命令即可,等待安裝直到出現Generating optimized autoload files
如果有報錯需要檢查是不是哪個函數沒有開放,一般會有提示。
4、編輯文件
將.env.setup
創建一個名為.env
的副本。
cp.env.setup .env
5、偽靜態
在寶塔面板上直接點擊網站-設置-網站目錄,選擇/public
文件夾,然後在偽靜態那裡填入以下代碼:
location / {
try_files uri $uri/ /index.php$is_args$args;
}
最後,授權根目錄所有文件,再重啟一下Nginx
就算完成了,然後訪問http://xx.com/setup
設置就可以了。
最終搭建好的樣子>>https://d.funletu.com/(被攻擊數據已丟失)
搭建過程可能會出錯,我也不是一次就搭建好,如果出錯了,清空網站根目錄文件,重新按照1,2,3,4,5的步驟安裝即可;
其它操作
1、修改設置
是的,你沒看錯設置僅能通過.env
這個文件修改。
2、通過CDN獲取真實IP
若使用Cloudflare
,請在vender/autoload.php
的第6
行加入:
if (isset($_SERVER["HTTP_CF_CONNECTING_IP"])) {
$_SERVER['REMOTE_ADDR'] = $_SERVER["HTTP_CF_CONNECTING_IP"];
}
其他CDN
請自行查找。
3、設置時區
在.env
文件的最後加入:
APP_TIMEZONE=Asia/Shanghai
4、手動漢化
由於Polr源碼沒有中文版,需要漢化時,可以修改 /resources/views
和 /public/js
文件夾中的文件信息。