玩微博的盆友可能会经常看到一些短网址(类似: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)