世界上最好的語言搭建短鏈接及統計功能(附API代碼)

来源:https://www.cnblogs.com/smallSevens/archive/2018/03/21/8612391.html
-Advertisement-
Play Games

前言 在這個營銷的時代,短鏈接和二維碼是企業進行營銷中非常重要的工具,不僅僅是縮短了鏈接,而且還可以通過擴展獲得更多的數據,諸如點擊數、下載量、來源以及時間等等。 網上搜尋了一下比較有名有U.NU和0x3.me,但前者只能統計點擊次數,而且不能修改鏈接,後者功能豐富,但確是收費商業網站。 環境搭建 ...


前言

在這個營銷的時代,短鏈接和二維碼是企業進行營銷中非常重要的工具,不僅僅是縮短了鏈接,而且還可以通過擴展獲得更多的數據,諸如點擊數、下載量、來源以及時間等等。

網上搜尋了一下比較有名有U.NU和0x3.me,但前者只能統計點擊次數,而且不能修改鏈接,後者功能豐富,但確是收費商業網站。

環境搭建

本安裝指南將幫助您安裝Polr 2.0的最新版本Polr 2.0。Polr 是一個開源軟體、世界上最好的語言,功能還算強大。

功能包括

  • 修改縮短的功能變數名稱
  • 統計功能(來源,時間)
  • API支持
  • 二維碼生成

伺服器要求

  • Apache, nginx, IIS, or lighttpd (Apache preferred)
  • PHP >= 5.5.9
  • MariaDB or MySQL >= 5.5, SQLite alternatively
  • composer
  • PHP requirements:
    OpenSSL PHP Extension
    PDO PHP Extension
    PDO MySQL Driver (php5-mysql on Debian & Ubuntu, php5x-pdo_mysql on FreeBSD)
    Mbstring PHP Extension
    Tokenizer PHP Extension
    JSON PHP Extension
    PHP curl extension

安裝PHP

PHP http://php.net/downloads.php

wget http://ba1.php.net/get/php-5.6.34.tar.gz/from/this/mirror

安裝libxml2和libxml2-devel

yum -y install libxml2
yum -y install libxml2-devel

因為不同的操作系統環境,系統安裝開發環境包的完整程度也不相同,所以建議安裝操作系統的時候做必要選擇,也可以統一執行一遍所有的命令,將沒有安裝的組件安裝好,如果已經安裝了可能會進行升級,版本完全一致則不會進行任何操作,命令除上面2個之外,彙總如下:

yum -y install libxml2
yum -y install libxml2-devel
yum -y install openssl
yum -y install openssl-devel
yum -y install curl
yum -y install curl-devel
yum -y install libjpeg
yum -y install libjpeg-devel
yum -y install libpng
yum -y install libpng-devel
yum -y install freetype
yum -y install freetype-devel
yum -y install pcre
yum -y install pcre-devel
yum -y install libxslt
yum -y install libxslt-devel
yum -y install bzip2
yum -y install bzip2-devel
yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel  mysql pcre-devel

安裝完成之後,執行配置:

./configure --prefix=/usr/local/php --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-jpeg-dir --with-xmlrpc --with-xsl --with-zlib --with-bz2 --with-mhash --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-zip

然後執行編譯:

make

編譯時間可能會有點長,編譯完成之後,執行安裝:

make install

php的預設安裝位置上面已經指定為/usr/local/php,接下來配置相應的文件:

cp php.ini-development /usr/local/php/lib/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp sapi/fpm/php-fpm /usr/local/bin

然後設置php.ini,使用: vi /usr/local/php/lib/php.ini 打開php配置文件找到cgi.fix_pathinfo配置項,這一項預設被註釋並且值為1,根據官方文檔的說明,這裡為了當文件不存在時,阻止Nginx將請求發送到後端的PHP-FPM模塊,從而避免惡意腳本註入的攻擊,所以此項應該去掉註釋並設置為0

創建web用戶:

groupadd www-data
useradd -g www-data www-data

修改php-fpm.conf添加以上創建的用戶和組,這時候使用 vi /usr/local/etc/php-fpm.conf 打開文件後找到官方所提示的位置:

user  = www-data
group = www-data

執行以下命令啟動php-fpm服務:

php-fpm

啟動完畢之後,php-fpm服務預設使用9000埠,使用 netstat -tln | grep 9000 可以查看埠使用情況。
你也可以使用 ps -ef|grep php 命令查看進程。

停止 php-fpm

killall php-fpm

下載源代碼

如果你想下載一個穩定版本的Polr,你可以查看發佈頁面

$ cd /var/www
$ git clone https://github.com/cydrobolt/polr.git --depth=1
#你也可以下載碼雲中國漢化版
$ git clone https://gitee.com/skywalker512/polr.git
$ chmod -R 755 polr
$ chown -R www-data polr
$ cd polr
$ cp .env.setup .env

Composer 安裝

切換到 polr目錄下

# download composer package
curl -sS https://getcomposer.org/installer | php
# update/install dependencies
php composer.phar install --no-dev -o

如果由於PHP版本的原因,編寫器無法安裝適當的依賴項,請刪除composer.lock 並重新嘗試安裝依賴項。

rm composer.lock
php composer.phar install --no-dev -o

Nginx 安裝

推薦您使用yum安裝以下的開發庫:

yum install readline-devel pcre-devel openssl-devel -y

Docker容器還可能要安裝:

yum install wget perl gcc -y

下載最新版本:

wget https://openresty.org/download/openresty-1.11.2.4.tar.gz

解壓並重命名:

tar -xvf openresty-1.11.2.4.tar.gz
mv openresty-1.11.2.4 openresty

安裝配置:

./configure

您可以使用下麵的命令來編譯安裝:

make && make install

如果您的電腦支持多核 make 工作的特性, 您可以這樣編譯安裝:

make && make install   -j2

為了方便啟動,建立軟連接:

ln -s /usr/local/openresty/nginx/sbin/nginx /usr/sbin/nginx

配置文件

vi /usr/local/openresty/nginx/conf/nginx.conf
server {        
        listen 80; 
        listen 443 ssl;
        server_name polr.52itstyle.com;
        index index.php;
        #證書路徑
        ssl_certificate    /usr/local/openresty/nginx/cert/214545352540632.pem;
        #私鑰路徑
        ssl_certificate_key  /usr/local/openresty/nginx/cert/214545352540632.key;
        #緩存有效期
        ssl_session_timeout 5m;
        #可選的加密演算法,順序很重要,越靠前的優先順序越高.
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        #安全鏈接可選的加密協議
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        root   /var/www/polr/public;
        location / {
            try_files $uri $uri/ /index.php$is_args$args;
        }

        location ~ \.php$ {
            try_files $uri =404;
            include        fastcgi_params;
            fastcgi_pass 127.0.0.1:9000;
            fastcgi_index   index.php;
            fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param   HTTP_HOST       $server_name;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

安裝運行

進入https://polr.52itstyle.com/setup 進行安裝,設置一些相關選項即可

安裝成功,首頁:

後臺管理:

短鏈接演示網址:https://polr.52itstyle.com/

Polr API文檔

API密鑰

要將用戶認證為Polr,您需要提供一個API密鑰以及對Polr API的每個請求,作為GET或POST參數。(例如?key=API_KEY_HERE)

分配API密鑰

要分配API密鑰,請從管理員帳戶登錄,轉到“管理員”選項卡,然後滾動到所需的用戶。從那裡,您可以打開API按鈕下拉菜單來重置,創建或刪除用戶的API密鑰。您還將被提示設置所需的API配額。這被定義為每分鐘的請求。您可以通過使配額成為負數來允許無限制的請求。一旦用戶收到API密鑰,他們將能夠在其用戶面板中看到一個“API”選項卡,該選項卡提供了與API進行交互所需的信息。

操作

操作作為網址中的細分受眾群傳遞。目前有兩項行動得到執行:

  • shorten - 縮短網址
  • lookup - 查找縮短的URL的目的地

演示

碼雲API代碼:https://gitee.com/52itstyle/short_url


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • $("body").on("click", ".submit_btn", function() { if (!$("#tel").val()) { alert("手機號不能為空"); $(this).attr("disabled", true); $(this).css({ background: ...
  • 最近閱讀《高性能JavaScript》時,在書中的“達夫設備“ 。 對此,有些感悟,同時有些疑問,希望看到的朋友,能幫忙解釋下,在此先提前感謝了。 1. 先說自己的理解吧: ”達夫設備“的目的是減少迭代次數,提高迴圈的效率,減少時間,提升性能。 感受:感覺代碼的優化,真的需要用工匠精神來雕琢,代碼的 ...
  • 本文原創 如轉載請註明出處!!! 本博客地址http://www.cnblogs.com/we-jack 本文原創,如果有同樣需求的小伙伴請第一時間聯繫我 或者在留言區留言 上次為大家提供了3D模型的展示之後 發現網上有很多想要計算3D模型錶面積和體積的需求 那麼經過掉了幾百根頭髮的艱辛歷程之後 終 ...
  • 最近使用websocket加ECharts做了一個實時監控的功能,發現了一個比較嚴重的問題,就是瀏覽器運行一段時間就會非常卡,之前在ECharts官網運行官方實例“動態數據 + 時間坐標軸”時,也遇到了同樣的情況,只是當時沒有當回事,現在來看原來是記憶體泄漏的問題。那麼是什麼原因導致的記憶體泄漏呢? 通 ...
  • 前端測試存在的問題 在講Sinon之前,我們得先講一下在學習了Mocha、chai以及enzyme之後,我們的前端測試還存在的一些問題。 比如前臺測試需要與後臺交互,獲取後臺數據後再根據相應數據進行測試。 又比如一個函數測試依賴另一個函數,我們可以根據測試的目的去模擬另一個函數,講兩者的測試分開,從 ...
  • 昨天發了一個面試題: "關於一道面試題【字元串 '1 + (5 2) 3',怎麼算出結果為10,'eval'除外】" ,受到了各位大大的指點,用一個比較簡單的解法就能夠計算出來,因此自己在下班後按照各位的指點又實現了一遍,這裡貼出來供大家參考。 瞭解首碼、中綴、尾碼表達式 關於概念這裡簡單貼一下,想 ...
  • 註:文章內容為摘錄性文字,自己閱讀的一些筆記,方便日後查看。 微服務(Microservices) 在過去的 2016 年和 2017 年,微服務技術迅猛普及,和容器技術一起成為這兩年中最吸引眼球的技術熱點。而以 Spring Cloud 為代表的傳統侵入式開發框架,占據著微服務市場的主流地位。 微 ...
  • 背景 背景 自動化是持續集成生態中必不可少的一環,起到了一個推動力的作用。因此對於自動化用例報表體現錯誤時候,就會有一個十分麻煩的工作“查錯”或者“問題定位”。如果您是業務專家同時又是十分熟悉自動化平臺,那麼憑藉經驗和技術能力也很快能定位出問題。但是對於開發和測試人員只看到“您提交的代碼,導致什麼錯 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...