世界上最好的语言搭建短链接及统计功能

307 阅读5分钟
原文链接: mp.weixin.qq.com

前言

在这个营销的时代,短链接和二维码是企业进行营销中非常重要的工具,不仅仅是缩短了链接,而且还可以通过扩展获得更多的数据,诸如点击数、下载量、来源以及时间等等。

网上搜寻了一下比较有名有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

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

安装libxml2和libxml2-devel

  1. yum -y install libxml2

  2. yum -y install libxml2-devel

因为不同的操作系统环境,系统安装开发环境包的完整程度也不相同,所以建议安装操作系统的时候做必要选择,也可以统一执行一遍所有的命令,将没有安装的组件安装好,如果已经安装了可能会进行升级,版本完全一致则不会进行任何操作,命令除上面2个之外,汇总如下:

  1. yum -y install libxml2

  2. yum -y install libxml2-devel

  3. yum -y install openssl

  4. yum -y install openssl-devel

  5. yum -y install curl

  6. yum -y install curl-devel

  7. yum -y install libjpeg

  8. yum -y install libjpeg-devel

  9. yum -y install libpng

  10. yum -y install libpng-devel

  11. yum -y install freetype

  12. yum -y install freetype-devel

  13. yum -y install pcre

  14. yum -y install pcre-devel

  15. yum -y install libxslt

  16. yum -y install libxslt-devel

  17. yum -y install bzip2

  18. yum -y install bzip2-devel

  19. yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel  mysql pcre-devel

安装完成之后,执行配置:

  1. ./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

然后执行编译:

  1. make

编译时间可能会有点长,编译完成之后,执行安装:

  1. make install

php的默认安装位置上面已经指定为/usr/local/php,接下来配置相应的文件:

  1. cp php.ini-development /usr/local/php/lib/php.ini

  2. cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

  3. 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用户:

  1. groupadd www-data

  2. useradd -g www-data www-data

修改php-fpm.conf添加以上创建的用户和组,这时候使用 vi /usr/local/etc/php-fpm.conf 打开文件后找到官方所提示的位置:

  1. user  = www-data

  2. group = www-data

执行以下命令启动php-fpm服务:

  1. php-fpm

启动完毕之后,php-fpm服务默认使用9000端口,使用 netstat -tln | grep 9000 可以查看端口使用情况。 你也可以使用 ps -ef|grep php 命令查看进程。

停止 php-fpm

  1. killall php-fpm

下载源代码

如果你想下载一个稳定版本的Polr,你可以查看发布页面。

  1. $ cd /var/www

  2. $ git clone https://github.com/cydrobolt/polr.git --depth=1

  3. #你也可以下载码云中国汉化版

  4. $ git clone https://gitee.com/skywalker512/polr.git

  5. $ chmod -R 755 polr

  6. $ chown -R www-data polr

  7. $ cd polr

  8. $ cp .env.setup .env

Composer 安装

切换到 polr目录下

  1. # download composer package

  2. curl -sS https://getcomposer.org/installer | php

  3. # update/install dependencies

  4. php composer.phar install --no-dev -o

如果由于PHP版本的原因,编写器无法安装适当的依赖项,请删除composer.lock 并重新尝试安装依赖项。

  1. rm composer.lock

  2. php composer.phar install --no-dev -o

Nginx 安装

推荐您使用yum安装以下的开发库:

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

Docker容器还可能要安装:

  1. yum install wget perl gcc -y

下载最新版本:

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

解压并重命名:

  1. tar -xvf openresty-1.11.2.4.tar.gz

  2. mv openresty-1.11.2.4 openresty

安装配置:

  1. ./configure

您可以使用下面的命令来编译安装:

  1. make && make install

如果您的电脑支持多核 make 工作的特性, 您可以这样编译安装:

  1. make && make install   -j2

为了方便启动,建立软连接:

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

配置文件

  1. vi /usr/local/openresty/nginx/conf/nginx.conf

  1. server {        

  2.        listen 80;

  3.        listen 443 ssl;

  4.        server_name polr.52itstyle.com;

  5.        index index.php;

  6.        #证书路径

  7.        ssl_certificate    /usr/local/openresty/nginx/cert/214545352540632.pem;

  8.        #私钥路径

  9.        ssl_certificate_key  /usr/local/openresty/nginx/cert/214545352540632.key;

  10.        #缓存有效期

  11.        ssl_session_timeout 5m;

  12.        #可选的加密算法,顺序很重要,越靠前的优先级越高.

  13.        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;

  14.        #安全链接可选的加密协议

  15.        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

  16.        ssl_prefer_server_ciphers on;

  17.        root   /var/www/polr/public;

  18.        location / {

  19.            try_files $uri $uri/ /index.php$is_args$args;

  20.        }

  21.        location ~ \.php$ {

  22.            try_files $uri =404;

  23.            include        fastcgi_params;

  24.            fastcgi_pass 127.0.0.1:9000;

  25.            fastcgi_index   index.php;

  26.            fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;

  27.            fastcgi_param   HTTP_HOST       $server_name;

  28.        }

  29.        error_page   500 502 503 504  /50x.html;

  30.        location = /50x.html {

  31.            root   html;

  32.        }

  33.    }

安装运行

进入https://polr.52itstyle.com/setup 进行安装,设置一些相关选项即可

安装成功,首页:

后台管理:

短链接演示网址(阅读原文):

https://polr.52itstyle.com/

Polr API文档

API密钥

要将用户认证为Polr,您需要提供一个API密钥以及对Polr API的每个请求,作为GET或POST参数。(例如?key=APIKEYHERE)

分配API密钥

要分配API密钥,请从管理员帐户登录,转到“管理员”选项卡,然后滚动到所需的用户。从那里,您可以打开API按钮下拉菜单来重置,创建或删除用户的API密钥。您还将被提示设置所需的API配额。这被定义为每分钟的请求。您可以通过使配额成为负数来允许无限制的请求。一旦用户收到API密钥,他们将能够在其用户面板中看到一个“API”选项卡,该选项卡提供了与API进行交互所需的信息。

操作

操作作为网址中的细分受众群传递。目前有两项行动得到执行:

  • shorten - 缩短网址

  • lookup - 查找缩短的URL的目的地

演示

码云API代码:

https://gitee.com/52itstyle/short_url

点击图片查看更多推荐内容

↓↓↓

ELK日志监控平台告警升级(邮件+钉钉)

程序员的3年之痒改变的不止薪水

从京东618秒杀聊聊秒杀限流的多种实现

记一次真实的网站被黑经历

一个有温度的微信公众号

      期待与你共同进步,分享美文

  分享各种Java学习资源

▲长按图片识别二维码关注

阅读原文体验短链接 功能(一个有温度的微信公众号,期待与你共同进步,分享美文,分享各种Java学习资源)。