搭建你的专属短网址生成系统

php
0 1321

搭建你的专属短网址生成系统前言

玩微博的盆友可能会经常看到一些短网址(类似:http://t.cn/xxx),点一下就跳到另外一个链接,有点重定向的意思,那么要怎么做才能用上这个功能呢?答案就是用YOURLS实现,这是一个用PHP写的开源程序,我们只需把环境搭好,简单配置一下即可。如果你是按照官网或者网上的某些博客来搭建的,那么你未必能够正常运行起来,因为我也是根据官网操作的,但就是死活报错,后来自己研究了一下代码才发现问题。

环境准备

本文不介绍LNMP怎么搭建,不知道怎么搭建的盆友请自行搜素。

注册一个短域名,比如xxoo.com。

操作系统:CentOS 6.9 64位

nginx:1.12.0

php:5.3.3

mysql:5.6

yourls:1.7.2

MySQL相关配置
CREATE DATABASE `yourls`;
GRANT ALL PRIVILEGES ON `yourls`.* TO 'yourls'@'localhost' IDENTIFIED BY 'yourls';
FLUSH PRIVILEGES;

备注:密码可以稍微设置复杂点。

Nginx相关配置
    # YOURLS
    server {
        listen 80;
        listen 443;
        server_name xxoo.com;
        ssl on;
        ssl_certificate cert/214559111930699.pem;
        ssl_certificate_key cert/214559111930699.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 /wwwroot/YOURLS-1.7.2;
        index index.php;
        location / {
            try_files $uri $uri/ /yourls-loader.php;
        }
        location ~ ^(.+?\.php)(/.*)?$ {
            try_files $1 = 404;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$1;
            fastcgi_param PATH_INFO $2;
            fastcgi_param HTTPS on;
            fastcgi_pass 127.0.0.1:9000;
        }
    }
YOURLS相关配置

官网下载源码包,解压到指定位置,将user目录下的config-sample.php复制一份,命名为config.php,找到并修改以下参数:

/** 这个很关键,默认配置文件里没有,需要自己添加。如果不加上这个你访问时会报错:“Incorrect DB config, or could not connect to DB” */
define( 'YOURLS_DB_DRIVER', 'mysqli' );

/** yourls库管理员用户名 */
define( 'YOURLS_DB_USER', 'yourls' );

/** yourls库管理员密码 */
define( 'YOURLS_DB_PASS', 'yourls' );

/** yourls库名,保持默认即可。 */
define( 'YOURLS_DB_NAME', 'yourls' );

/** 数据库主机地址 */
define( 'YOURLS_DB_HOST', 'localhost' );

/** yourls库表名前缀,保持默认即可。 */
define( 'YOURLS_DB_PREFIX', 'yourls_' );

/** 这里填你申请的短域名 */
define( 'YOURLS_SITE', 'http://xxoo.com' );

/** 这里填一个随机值,可以访问http://yourls.org/cookie来获取 */
define( 'YOURLS_COOKIEKEY', 'rXOfxYP]p2f1w%U~Qiy$|VYpIJ@{#$X]KQSW~BJf' );

/** 这里设置网站管理员的账号和密码,可以设置多个。 */
$yourls_user_passwords = array(
	'admin' => 'mypassword',
	// 'username2' => 'password2',
	// You can have one or more 'login'=>'password' lines
	);

/** DEBUG模式,默认是关闭的,当你发现问题时可以打开来看看。 */
define( 'YOURLS_DEBUG', false );

最后,访问你的短网址:http://xxoo.com/admin/,第一次打开会进行初始化操作,输入管理员账号密码登录后如果出现“Could not auto-encrypt passwords. Error was: "cannot write file". ”报错,请将user/config.php文件的权限改为666,然后刷新网页,再把权限改回644,因为你刚才填写密码时用的是明文,这样很危险,所以程序需要对其加密。如此就大功告成了,如需安装中文语言包,请参考https://github.com/shileiye/YOURLS-zh-CN.pot

Source code(zip)Source code(tar.gz)