网上其实有各式各样的网址缩短工具,有收费的有免费,为什么我还要搭建一个呢,无他,一是为了装装逼,二是自己需要的功能刚好可以实现,就动手做了一个了,不难,不懂代码的都可以搭建,下面分享一下搭建过程。

前期准备:

  1. 一台服务器;
  2. 一个短一点的域名;

说一下我用的配置,服务器是腾讯的香港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 文件夹中的文件信息。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

18 + 2 =