本文介绍在Ubuntu 18.04服务器上安装和配置Shlink(URL缩短器)的步骤,展示如何在具有Apache或Nginx Web服务器的Ubuntu 18.04上安装Shlink。Shlink是一个开放源代码的自托管URL缩短器,它允许你缩短URL并在你自己的短域名下提供它们,使用你自己的URL缩短服务而不是第三方服务可以提高品牌知名度。Shlink用PHP编写,并且依赖于MySQL/MariaDB或PostgreSQL数据库服务器,因此你需要设置LAMP堆栈或LEMP堆栈。如果你更喜欢Apache Web服务器,请设置LAMP堆栈,参考在Ubuntu 18.04 Server中安装LAMP的方法[Apache、MariaDB、PHP7.2]一文。如果你喜欢Nginx Web服务器,则设置LEMP堆栈,参考在Ubuntu 18.04 Server中安装LEMP的方法[Nginx、MariaDB、PHP7.2]一文。同时,你还需要一个域名。
步骤1:将Shlink下载到Ubuntu 18.04服务器上 转到Shlink Github页面(地址:https://github.com/shlinkio/shlink/releases/)以查看最新的稳定版本,你可以下载shlink_1.18.1_dist.zip文件。 该文件将另存为shlink_1.18.1_dist.zip,使用unzip命令将其解压缩到/var/www/目录。 sudo apt install unzip sudo unzip shlink_1.18.1_dist.zip -d /var/www/ 现在,文件存储在/var/www/shlink_1.18.1_dist/下,我们将其重命名: sudo mv /var/www/shlink_1.18.1_dist /var/www/shlink 然后使Web服务器用户(www-data)成为该目录的所有者: sudo chown -R www-data:www-data /var/www/shlink/
步骤2:为Shlink创建MariaDB数据库和用户 现在,我们需要登录MariaDB控制台并为Shlink创建数据库和用户,默认情况下,Ubuntu上的MaraiDB软件包使用unix_socket来验证用户登录名,这基本上意味着你可以使用操作系统的用户名和密码登录MariaDB控制台,因此,你可以运行以下命令来登录,而无需提供MariaDB根密码: sudo mysql -u root 接下来,使用以下命令为Shlink创建一个新数据库,本文将其命名为shlink,你可以为数据库使用任何喜欢的名称: CREATE DATABASE shlink; 以下命令将创建数据库用户和密码,并同时将新数据库的所有权限授予新用户,以便以后在Shlink上可以写入数据库,请用你喜欢的数据库名称、用户名和密码替换shlink和password: GRANT ALL ON shlink.* TO 'shlink'@'localhost' IDENTIFIED BY 'password'; 刷新特权表并退出MariaDB控制台: FLUSH PRIVILEGES; EXIT;
步骤3:运行Shlink安装脚本 转到/var/www/shlink/bin/目录: cd /var/www/shlink/bin/ 有一个名为install的PHP脚本,我们以www-data用户身份运行该脚本: sudo -u www-data php ./install 然后,安装向导将要求你输入数据库详细信息,因此,我选择MySQL作为数据库类型,然后输入数据库名称、用户名和密码,主机是localhost,端口是3306:
接下来,为你的URL缩写选择方案类型(https)和主机名:
然后选择语言并配置应用程序,我只需按Enter键即可使用默认设置:
步骤4:为Shlink创建Apache虚拟主机或Nginx配置文件 1、Apache 如果使用Apache Web服务器,请为Shlink创建虚拟主机: sudo nano /etc/apache2/sites-available/shlink.conf 将以下文本放入文件中,将lnux.be替换为你的真实域名,不要忘记为其设置DNS A记录。 <VirtualHost *:80> ServerName lnux.be DocumentRoot /var/www/shlink/public ErrorLog ${APACHE_LOG_DIR}/shlink_error.log CustomLog ${APACHE_LOG_DIR}/shlink_access.log combined <Directory /var/www/shlink/public> Options FollowSymLinks Includes ExecCGI AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost> 保存并关闭文件,然后通过以下方式启用此虚拟主机: sudo a2ensite shlink.conf 重新加载Apache以使更改生效: sudo systemctl reload apache2 2、Nginx 如果你使用Nginx Web服务器,请为Shlink创建一个虚拟主机: sudo nano /etc/nginx/conf.d/shlink.conf 将以下文本放入文件中,将lnux.be替换为你的真实域名,不要忘记为其设置DNS A记录: server { listen 80; listen [::]:80; server_name lnux.be; root /var/www/shlink/public; error_log /var/log/nginx/shlink.error; access_log /var/log/nginx/shlink.access; index index.php index.html index.htm index.nginx-debian.html; location / { # try to serve file directly, fallback to app.php try_files $uri /index.php$is_args$args; } # redirect some entire folders rewrite ^/(vendor|translations|build)/.* /index.php break; location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } 保存并关闭文件,然后测试Nginx配置: sudo nginx -t 如果测试成功,请重新加载Nginx以使更改生效: sudo systemctl reload nginx
步骤5:安装必需和推荐的PHP模块,及启用HTTPS 运行以下命令以安装Shlink所需或推荐的PHP模块: sudo apt install php-apcu php7.2-common php7.2-gd php7.2-json php7.2-curl php7.2-intl 然后重新启动Apache(如果使用Nginx,则无需重新启动Nginx): sudo systemctl restart apache2 如果你需要启用HTTPS,则启用HTTPS,安装certbot来完成即可,参考使用Certbot:在Linux上安装letsencrypt的最简单方法,成功如下图所示:
步骤6:创建短链接 首先,你需要使用以下命令创建API密钥: sudo -u www-data php /var/www/shlink/bin/cli api-key:generate 然后转到https://app.shlink.io/添加服务器:
添加服务器后,你可以创建短链接:
请注意,这只是一个Web客户端,短网址存储在你自己的服务器上。 还可以从服务器上的命令行生成简短的URL: sudo -u www-data /var/www/shlink/bin/cli short-url:generate 列出简短的URL: sudo -u www-data /var/www/shlink/bin/cli short-url:list 运行以下命令以查看帮助消息: sudo -u www-data php /var/www/shlink/bin/cli 至此,创建短链接完成。这意味着,在Ubuntu 18.04服务器上安装Shlink并配置Shlink的操作已全部完成。
相关主题 |