
Polr是一种自托管、开源且免费的URL缩短程序,类似于Bitly或TinyURL。Polr使用户能够将长URL转换为更短的、更易于分享的URL。具有许多定制选项和功能,如自定义短码、公共/私人链接、访客统计等等。
Polr的典型架构包括一个前端界面,用于生成和管理短链接,以及后端API或引擎,用于将长链接转换为短链接。它还支持将运行Polr的服务器部署在不同的Linux操作系统上,例如Ubuntu、Debian、CentOS等。
以下是Polr的一些主要特点:
- 可以部署在自己的服务器上,免费使用且拥有完全控制权。
- 具有可定制的短URL可用性,例如自定义域名和短码前缀。
- 支持区分公共和私人短链接,可以设置过期时间和密码保护。
- 提供了流量分析和统计数据,方便进行转化跟踪和目标测量。
- 提供了RESTful API接口, 与其他应用程序集成。
总之,Polr是一种便捷、灵活和易于管理的URL缩短程序,为广泛的用例提供了解决方案,对开发者和管理人员来说是一个非常有用的工具。
Installation
This installation guide will help you install Polr 2.0, the latest iteration of Polr.
Server Requirements
The following software is required on your server to run Polr 2.0. In the case that you cannot fulfill the following requirements (e.g free shared hosting), you may be interested in looking at a legacy 1.x release of Polr (now unsupported).
- Apache, nginx, IIS, or lighttpd (Apache preferred)
- PHP >= 5.5.9
- MariaDB or MySQL >= 5.5, SQLite alternatively
- composer
- PHP requirements:
- OpenSSL PHP Extension
- PDO PHP Extension
- PDO MySQL Driver (php5-mysql on Debian & Ubuntu, php5x-pdo_mysql on FreeBSD)
- Mbstring PHP Extension
- Tokenizer PHP Extension
- JSON PHP Extension
- PHP curl extension
Download the source code
If you would like to download a stable version of Polr, you may check out the releases page.
$ sudo su
# switch to Polr directory (replace with other directory path if applicable)
$ cd /var/www
# clone Polr
$ git clone https://github.com/cydrobolt/polr.git --depth=1
# set correct permissions
$ chmod -R 755 polr
# if you would like to use a specific release, check out
# the tag associated with the release. see link above.
$ # git checkout <tag>
# run only if on Ubuntu-based systems
$ chown -R www-data polr
# run only if on Fedora-based systems
$ chown -R apache polr
# run only if on recent Fedora, or other system, with SELinux enforcing
$ chcon -R -t httpd_sys_rw_content_t polr/storage polr/.env
Install composer
dependencies
# download composer package
curl -sS https://getcomposer.org/installer | php
# update/install dependencies
php composer.phar install --no-dev -o
If composer fails to install the proper dependencies due to your PHP version, delete composer.lock
and try installing the dependencies again.
rm composer.lock
php composer.phar install --no-dev -o
Running Polr on…
Apache
To run Polr on Apache, you will need to create a new Apache configuration file in your operating system’s Apache configuration folder (e.g /etc/apache2/sites-enabled
or /etc/httpd/sites-enabled
) or add a virtual host to your httpd-vhosts.conf
file like so:
Replace example.com
with your server’s external address and restart Apache when done.
<VirtualHost *:80>
ServerName example.com
ServerAlias example.com
DocumentRoot "/var/www/polr/public"
<Directory "/var/www/polr/public">
Require all granted
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
If mod_rewrite
is not already enabled, you will need to enable it like so:
# enable mod_rewrite
a2enmod rewrite
# restart apache on Ubuntu
# sudo service apache2 restart
# restart apache on Fedora/CentOS
# sudo service httpd restart
nginx
Replace example.com
with your server’s external address. You will need to install php5-fpm
:
$ sudo apt-get install php5-fpm
Useful LEMP installation tutorial by DigitalOcean
# Upstream to abstract backend connection(s) for php
upstream php {
server unix:/var/run/php-fpm.sock;
server 127.0.0.1:9000;
}
# HTTP
server {
listen *:80;
root /var/www/polr/public;
index index.php index.html index.htm;
server_name example.com; # Or whatever you want to use
# return 301 https://$server_name$request_uri; # Forces HTTPS, which enables privacy for login credentials.
# Recommended for public, internet-facing, websites.
location / {
try_files $uri $uri/ /index.php$is_args$args;
# rewrite ^/([a-zA-Z0-9]+)/?$ /index.php?$1;
}
location ~ \.php$ {
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_pass php;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTP_HOST $server_name;
}
}
# HTTPS
#server {
# listen *:443 ssl;
# ssl_certificate /etc/ssl/my.crt;
# ssl_certificate_key /etc/ssl/private/my.key;
# root /var/www/polr/public;
# index index.php index.html index.htm;
# server_name example.com;
#
# location / {
# try_files $uri $uri/ /index.php$is_args$args;
# # rewrite ^/([a-zA-Z0-9]+)/?$ /index.php?$1;
# }
#
# location ~ \.php$ {
# try_files $uri =404;
# include /etc/nginx/fastcgi_params;
#
# fastcgi_pass php;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
# fastcgi_param HTTP_HOST $server_name;
# }
#}
Shared hosting/other
To run Polr on another HTTP server or on shared hosting, you will need to set the home directory to /PATH_TO_POLR/public
, not the root Polr folder.
Create the database
MySQL
You must create a database for Polr to use before you can complete the setup script. To create a database for Polr, you can log onto your mysql
shell and run the following command:
CREATE DATABASE polrdatabasename;
Remember this database name, as you will need to provide it to Polr during setup. Additionally, if you wish to create a new user with access to solely this database, please look into MySQL’s GRANT directive.
SQLite
You may also use SQLite in place of MySQL for Polr. However, SQLite is not recommended for use with Polr.
Option 1: Run the automatic setup script
Once your server is properly set up, you will need to configure Polr and enable it to access the database.
Copy the .env.setup
file to .env
in your website’s root directory.
$ cp .env.setup .env
Then, head over to your new Polr instance, at the path /setup/
to configure your instance with the correct information. (e.g example.com/setup)
This will automatically create the necessary tables and write a new configuration file to disk, .env
. You may make changes to your configuration later by editing this file.
Once the setup script is completed, Polr is ready to go. You may go back to your Polr homepage and log in to perform any other actions.
Option 2: Write the configuration file and create the tables manually
If you wish to configure and initialize Polr manually, you may do so through command line, although it is not recommended.
Copy resources/views/env.blade.php
to .env
at the root directory and update the values appropriately. Do not leave any curly braces in your new .env
. You may leave certain sections blank or commented-out to use the defaults.
You may then run the following artisan
command to create the necessary tables:
php artisan migrate --force
php artisan geoip:update
You will also need to insert a admin user into the users
table through mysql
or a graphical SQL interface.
文档参考:http://docs.polrproject.org/en/latest/user-guide/installation/ https://www.daniao.org/16266.html https://github.com/cydrobolt/polr
评论(0)