Os sistemas encurtadores de URL (Uniform Resource Locator – Localizador Uniforme de Recursos) se tornaram bastante populares para, não somente deixar aqueles gigantes endereços (links), como de notícias ou de arquivos compartilhados, menores / mais curtos, mas, também para criar algum tipo de gerenciamento sobre o acesso realizado ao link de destino.
Lá em 2018, com o anúncio de que o URL Shortener do Google seria encerrado, fui até a comunidade de software livre e encontrei o YoURLS (dica do pessoal da KingHost), um sistema gratuito, de código aberto (open source), francês, escrito em PHP, com estatísticas, plugins e API. Mais um daqueles softwares livres que você nem acredita que é gratuito.
Neste artigo, faremos a instalação e configuração do YoURLS, em sua versão 1.8.1, em um servidor Linux Ubuntu 18 LTS Server. Como dito em artigos anteriores, a instalação em outras versões do Ubuntu ou no Debian é muito semelhante, variando apenas as versões (e nomes) de determinados pacotes.
Informações do ambiente
Considerando que o Linux Ubuntu, incluindo os pacotes LAMP Server (Linux, Apache, MySQL / MariaDB e PHP), já esteja instalado em seu ambiente, vamos à instalação e verificação dos pacotes adicionais.
Para verificar as versões dos pacotes, como do PHP e MySQL use os comandos php --version
e mysql --version
. Caso deseje atualizar todo o sistema operacional, incluindo os pacotes previamente instalados, use o tradicional apt-get update && apt-get upgrade
Caso estes pacotes não estejam instalados, use o comando abaixo para instalar manualmente o Apache (2.4), PHP (7.2) e o MySQL (5.7). Se quiser usar o MariaDB (versão “fork” – opensource – do MySQL) como sistema gerenciador de banco de dados, no lugar do MySQL, altere o “mysql-server” por ” mariadb-server”, no comando abaixo:
apt-get install apache2 php mysql-server
Para a completa configuração do MySQL ou MariaDB, recomenda-se executar o script de segurança padrão, para configurações como de restringir o acesso ao servidor:
mysql_secure_installation
,
Pacotes necessários para o YoURLS
PHP + Módulos
Use o comando abaixo para instalar os módulos adicionais do PHP necessários para o correto funcionamento do YoURLS:
apt install php-fpm php-cli php-json php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath wget
Fique atento com as informações exibidas pelo sistema, como de pacotes já instalados ou não encontrados. É comum variar o nome / versão dos pacotes, de acordo com o sistema operacional e de sua versão (repositório).
Baixando o YoURLS e seu instalador
Para baixar o YoURLS, diretamente do seu repositório oficial, use o comando abaixo:
wget https://github.com/YOURLS/YOURLS/archive/refs/tags/1.8.1.tar.gz
tar -xzvf 1.8.1.tar.gz
mv YOURLS-1.8.1 yourls
mv yourls /var/www/html/
Ajustes para a instalação do YoURLS
Permissão de diretórios:
Use os comandos abaixo para ajustar a permissão de acesso aos arquivos e diretórios do YoURLS:
sudo chown -R www-data:www-data /var/www/html/yourls/
sudo chmod -R 755 /var/www/html/yourls
Criação da base de dados
Use os comandos baixo para se conectar ao MySQL e então criar uma base de dados para o YoURLS (o procedimento é semelhante caso tenha optado pelo MariaDB):
mysql -u root -p
create database yourls;
GRANT ALL PRIVILEGES ON yourls.* TO yourls@localhost IDENTIFIED BY "Senha-Forte";
flush privileges;
exit;
Configuração do sistema
As configurações do YoURLS de acesso ao banco de dados, URL padrão, credencias de acesso e outras, precisam ser realizadas através da edição do arquivo yourls/user/config.php. Para tanto, execute os comandos abaixo para copiar um arquivo padrão de exemplo e então editá-lo:
cp /var/www/html/yourls/user/config-sample.php /var/www/html/yourls/user/config.php
nano /var/www/html/yourls/user/config.php
Edite os parâmetros de conexão a base de dados e a URL padrão:
define( ‘YOURLS_DB_USER’, ‘yourls’ );
/** MySQL database password */
define( ‘YOURLS_DB_PASS’, ‘Senha-Forte’ );
/** The name of the database for YOURLS
define( ‘YOURLS_DB_NAME’, ‘yourls’ );
/** MySQL hostname.
define( ‘YOURLS_DB_HOST’, ‘localhost’ );
/** YOURLS installation URL
define( ‘YOURLS_SITE’, ‘http://yourls.scota.local’ );
/** Username(s) and password(s) allowed to access the site.
$yourls_user_passwords = [
‘admin’ => ‘insira-uma-senha-aqui,
‘user1’ => ‘insira-uma-senha-aqui’,
];
Sobre a URL de Instalação
Na configuração acima, usei um domínio local (http://yourls.scota.local), já que estamos em um ambiente de testes. Você também poderia usar o endereço IP do seu servidor + o diretório de instalação do YoURLS, como http://192.168.0.1/yourls.
Num ambiente de produção, este endereço será um domínio público, como https://yourls.seudominio.com.br. Usando domínio, você precisa configurar seu servidor de DNS (entrada A), para vincular o domínio ou subdomínio utilizado a um endereço IP, no caso do servidor do YoURLS. Além disso, você precisará criar um virtual host no Apache ou Nginx para responder à solicitação recebida.
Outro ponto bem importante é o de habilitar o SSL no acesso ao sistema. Neste caso, a sugestão é de usar o Let’s Encrypt. Você pode usar como referência o ambiente usado neste post.