网上其实有各式各样的网址缩短工具,有收费的有免费,为什么我还要搭建一个呢,无他,一是为了装装逼,二是自己需要的功能刚好可以实现,就动手做了一个了,不难,不懂代码的都可以搭建,下面分享一下搭建过程。
前期准备:
- 一台服务器;
- 一个短一点的域名;
说一下我用的配置,服务器是腾讯的香港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
文件夹中的文件信息。