前言

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

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

世界上最好的语言搭建短链接及统计功能(附API代码)的更多相关文章

  1. 用Visual Studio Code Debug世界上最好的语言

    前言 这阵子因缘巧合接手了一个辣鸡项目,是用世界上最好的拍黄片写的,项目基本是另一个小伙伴在撸码,我就兼职打杂和发布做点运维的工作. 然后昨天项目上了测试版之后,一用起来Error满天飞了.让小伙伴查 ...

  2. 用Visual Studio Code Debug世界上最好的语言(Mac篇)

    用Visual Studio Code Debug世界上最好的语言(Mac篇) 首先,你要有台Macbook Pro,接着才继续看这个教程. PS:Windows用户看这里用Visual Studio ...

  3. 我用爬虫一天时间“偷了”知乎一百万用户,只为证明PHP是世界上最好的语言

    我用爬虫一天时间“偷了”知乎一百万用户,只为证明PHP是世界上最好的语言 2015-08-06 猿圈 我用爬虫一天时间“偷了”知乎一百万用户 只为证明PHP是世界上最好的语言 看了不少朋友圈里推荐的P ...

  4. php果然是世界上最好的语言

    这两天参加Hackathon,作为一个什么都半吊子的家伙,两人小队伍被逼上岗,于是我不得不着手写代码.由此,我体验到了php的魔力-- 首先,我深刻地意识到了更新版本的重要性. 偷懒不想搭Apache ...

  5. 用yourls 搭建短链接地址服务

    最近工作中遇到一个需求,将app下载地址变成短链接进行推广,索性就研究了下yourls . 发现这个玩意功能挺强大的,不但可以批量生成自己的短地址,还可以管理,统计每个短地址点击数量,还可以提供api ...

  6. 使用基于 PHP 的开源软件 YOURLS 搭建短链接地址服务

    使用基于 PHP 的开源软件 YOURLS搭建 系统配置 php7.1+mysql5.7+nginx 下载源代码 git clone https://github.com/YOURLS/YOURLS. ...

  7. 如何看待Java是世界上最好的语言?

    Java出现二十多年以来,一直都是主流的开发语言,Java创建于 1995 年,在 20多年的发展历程中,Java 已经证明自己是用于自定义软件开发的顶级通用编程语言. Java 广泛应用于科学教育. ...

  8. Java才是世界上最好的语言,Java在高频交易中替代C++

    高频交易 高频交易是指从那些人们无法利用的极为短暂的市场变化中寻求获利的计算机化交易,比如,某种证券买入价和卖出价差价的微小变化,或者某只股票在不同交易所之间的微小价差.在高频交易中,自动化应用程序每 ...

  9. JavaScript 是世界上最好的语言?

    2016年1月中旬,Stack Overflow发起本年度的开发者调查,调查结果于近日公布.本文盘点 JS 开发者应该会关心的部分数据. Stack Overflow 技术排行榜: 在2015年6月, ...

随机推荐

  1. 理解Activity.runOnUiThread()

    这是一篇译文(中英对照),原文链接:Understanding Activity.runOnUiThread() When developing Android applications we alw ...

  2. UVA - 10048 Audiophobia Floyd

    思路:套用Floyd算法思想,d(i, j) = min(d(i,j), max(d(i,k), d(k,j)),就能很方便求得任意两点之间的最小噪音路径. AC代码 #include <cst ...

  3. SpringBoot项目在IntelliJ IDEA中实现热部署

    spring-boot-devtools是一个为开发者服务的一个模块,其中最重要的功能就是自动应用代码更改到最新的App上面去.原理是在发现代码有更改之后,重新启动应用,但是速度比手动停止后再启动更快 ...

  4. 为什么说DOM操作很慢

    转自http://www.cnblogs.com/yuzhongwusan/articles/5275933.html   一直都听说DOM很慢,要尽量少的去操作DOM,于是就想进一步去探究下为什么大 ...

  5. hi3531结构: VB_CONF_S

    定义视频缓存池属性结构体. typedef struct hiVB_CONF_S {        HI_U32 u32MaxPoolCnt; /* max count of pools, (0,VB ...

  6. My97 DatePicker图标触发

    My97 DatePicker图标触发 1.设计源码 <%@ page language="java" import="java.util.*" page ...

  7. Error Code: 1054. Unknown column 'age' in 'user'

    1.错误描述 10:28:20 alter table user modify age int(3) after sex Error Code: 1054. Unknown column 'age' ...

  8. raid功能中spanning和striping模式有什么区别?

    RAID 0 又称为Stripe(条带化,串列)或Striping 它代表了所有RAID级别中最高的存储性能.RAID 0提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就可 ...

  9. 在SDL工程中让SDL_ttf渲染汉字

    有时候在关于SDL的博文中看到一些评论,说SDL对中文的支持不佳,因为当程序涉及中文时总是输出乱码. 照我个人观点,这里面很多都是误解.下面就根据我在windows下使用SDL的情况,说说我的观点. ...

  10. meta的各种参数

    <!DOCTYPE html> <!-- 使用 HTML5 doctype,不区分大小写 --> <html lang="zh-cmn-Hans"&g ...