世界上最好的語言搭建短鏈接及統計功能
- 2019 年 12 月 9 日
- 筆記
前言
在這個營銷的時代,短鏈接和二維碼是企業進行營銷中非常重要的工具,不僅僅是縮短了鏈接,而且還可以通過擴展獲得更多的數據,諸如點擊數、下載量、來源以及時間等等。
網上搜尋了一下比較有名有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