Instalação YOURLS · 9 min read · Nov 29, 2025
Como Instalar o encurtador de URL YOURLS auto-hospedado no CentOS 8

YOURLS é um encurtador de URL gratuito, de código aberto e auto-hospedado escrito em PHP. É muito semelhante ao TinyURL ou Bitly e permite que você execute seu próprio serviço de encurtamento de URL. Ele também permite que você adicione branding às suas URLs curtas. Oferece um rico conjunto de recursos, incluindo, link privado e público, palavras-chave de URL personalizadas, relatórios de cliques históricos, interface Ajaxed, suporte Jsonp e muito mais.
Neste tutorial, mostraremos como instalar o YOURLS no CentOS 8 com SSL Let’s Encrypt.
Pré-requisitos
- Um servidor rodando CentOS 8.
- Um nome de domínio válido apontado para o IP do seu servidor.
- Uma senha de root configurada no servidor.
Instalar Servidor LEMP
Primeiro, você precisará instalar Nginx, MariaDB, PHP e as extensões PHP necessárias no seu servidor. Você pode instalar todos eles com o seguinte comando:
dnf install nginx mariadb-server php php-fpm php-json php-common php-mysqlnd php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath git unzip wget -yUma vez que todos os pacotes estejam instalados, edite o arquivo de configuração do PHP-FPM /etc/php-fpm.d/www.conf e mude o usuário de apache para nginx:
nano /etc/php-fpm.d/www.confAltere as seguintes linhas:
user = nginx
group = nginxSalve e feche o arquivo, então inicie o Nginx, o serviço MariaDB, o serviço PHP-FPM e habilite-os para iniciar na reinicialização do sistema com o seguinte comando:
systemctl start nginx
systemctl enable nginx
systemctl start mariadb
systemctl enable mariadb
systemctl start php-fpm
systemctl enable php-fpmUma vez que você tenha terminado, pode prosseguir para o próximo passo.
Criar um Banco de Dados Para YOURLS
Em seguida, você precisará criar um banco de dados e um usuário para o YOURLS. Primeiro, faça login no MariaDB com o seguinte comando:
mysqlUma vez logado, crie um banco de dados e um usuário com o seguinte comando:
MariaDB [(none)]> CREATE DATABASE yourlsdb;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON yourlsdb.* TO 'yourlsuser'@'localhost' IDENTIFIED BY 'password';Em seguida, limpe os privilégios e saia do MariaDB com o seguinte comando:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> \qNeste ponto, o MariaDB está instalado e configurado.
Instalar YOURLS
Primeiro, mude o diretório para a raiz da web do Nginx e baixe a versão mais recente do YOURLS com o seguinte comando:
cd /var/www/html
git clone https://github.com/YOURLS/YOURLS.gitEm seguida, renomeie o arquivo de configuração de exemplo com o seguinte comando:
cd YOURLS/user/
cp config-sample.php config.phpEm seguida, edite o arquivo config.php e defina suas configurações de banco de dados:
nano config.phpAltere as seguintes linhas:
/** Nome de usuário do banco de dados MySQL */
define( 'YOURLS_DB_USER', 'yourlsuser' );
/** Senha do banco de dados MySQL */
define( 'YOURLS_DB_PASS', 'password' );
/ O nome do banco de dados para YOURLS
Use letras minúsculas [a-z], dígitos [0-9] e sublinhados [_] apenas */
define( 'YOURLS_DB_NAME', 'yourlsdb' );
/ Nome do host MySQL.
Se usar uma porta não padrão, especifique-a como 'hostname:port', ex. 'localhost:9999' ou '127.0.0.1:666' */
define( 'YOURLS_DB_HOST', 'localhost' );
/ Prefixo das tabelas MySQL
YOURLS criará tabelas usando este prefixo (ex. `yourls_url`, `yourls_options`, ...)
** Use letras minúsculas [a-z], dígitos [0-9] e sublinhados [_] apenas */
define( 'YOURLS_DB_PREFIX', 'yourls_' );
define( 'YOURLS_SITE', 'http://yourls.example.com' );
$yourls_user_passwords = array(
'admin' => 'yourpassword',Salve e feche o arquivo quando terminar. Em seguida, crie um arquivo .htaccess com o seguinte comando:
nano /var/www/html/YOURLS/.htaccessAdicione as seguintes linhas:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /yourls-loader.php [L]
Salve e feche o arquivo, então dê as permissões e propriedade adequadas com o seguinte comando:
chown -R nginx:nginx /var/www/html/YOURLS
chmod -R 775 /var/www/html/YOURLSUma vez que você tenha terminado, pode prosseguir para o próximo passo.
Configurar Nginx para YOURLS
Em seguida, crie um novo arquivo de configuração de host virtual do Nginx para o YOURLS:
nano /etc/nginx/conf.d/yourls.confAdicione as seguintes linhas:
server {
listen 80;
server_name yourls.example.com;
root /var/www/html/YOURLS;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /yourls-loader.php$is_args$args;
}
location ~ \.php$ {
include fastcgi.conf;
fastcgi_index index.php;
fastcgi_pass unix:/run/php-fpm/www.sock;
}
}Salve e feche o arquivo, então reinicie o serviço Nginx e PHP-FPM com o seguinte comando:
systemctl restart nginx
systemctl restart php-fpmVocê também pode verificar o status do Nginx com o seguinte comando:
systemctl status nginxVocê deve obter a seguinte saída:
? nginx.service - O servidor HTTP e proxy reverso nginx
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
Drop-In: /usr/lib/systemd/system/nginx.service.d
??php-fpm.conf
Active: active (running) since Tue 2020-10-20 09:37:40 EDT; 5min ago
Process: 12864 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 12862 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Process: 12860 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
Main PID: 12871 (nginx)
Tasks: 3 (limit: 12523)
Memory: 5.5M
CGroup: /system.slice/nginx.service
??12871 nginx: master process /usr/sbin/nginx
??12872 nginx: worker process
??12873 nginx: worker process
Oct 20 09:37:40 centos systemd[1]: Stopped O servidor HTTP e proxy reverso nginx.
Oct 20 09:37:40 centos systemd[1]: Starting O servidor HTTP e proxy reverso nginx...
Oct 20 09:37:40 centos nginx[12862]: nginx: o arquivo de configuração /etc/nginx/nginx.conf a sintaxe está ok
Oct 20 09:37:40 centos nginx[12862]: nginx: arquivo de configuração /etc/nginx/nginx.conf teste é bem-sucedido
Oct 20 09:37:40 centos systemd[1]: Started O servidor HTTP e proxy reverso nginx.Configurar SELinux e Firewall
Por padrão, o SELinux está habilitado no CentOS 8. Portanto, você precisará configurá-lo para o seu site YOURLS.
Você pode configurar o SELinux com o seguinte comando:
setsebool httpd_can_network_connect on -P
chcon -R -u system_u -t httpd_sys_rw_content_t -r object_r /var/www/html/YOURLSEm seguida, permita a porta 80 e 443 através do firewall com o seguinte comando:
firebase-cmd --permanent --add-service=httpfirebase-cmd --permanent --add-service=https
firebase-cmd --reloadUma vez que você tenha terminado, pode prosseguir para o próximo passo.
Acessar YOURLS
Agora, abra seu navegador da web e acesse o YOURLS usando a URL http://yourls.example.com/admin. Você deve ver a seguinte página:

Clique no botão Instalar YOURLS. Você deve ver a seguinte página:

Clique na “ Página de Administração do YOURLS ”. Você deve ver a página de login do YOURLS:

Forneça seu nome de usuário e senha de administrador que você definiu no config.php e clique no botão Login. Você deve ver o painel do YOURLS na seguinte página:

Proteger YOURLS com SSL Let’s Encrypt
Em seguida, você precisará instalar o utilitário Certbot em seu sistema para baixar e instalar o SSL Let’s Encrypt para o seu site YOURLS.
Você pode instalar o cliente Certbot com o seguinte comando:
wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-autoEm seguida, obtenha e instale um certificado SSL para o seu site YOURLS com o seguinte comando:
certbot-auto --nginx -d yourls.example.comO comando acima instalará primeiro todas as dependências necessárias em seu servidor. Uma vez instalado, você será solicitado a fornecer um endereço de e-mail e aceitar os termos de serviço, conforme mostrado abaixo:
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for yourls.example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/yourls.confSelecione se deseja redirecionar o tráfego HTTP para HTTPS ou não, conforme mostrado abaixo:
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2Digite 2 e pressione Enter para continuar. Uma vez que a instalação tenha sido concluída com sucesso, você deve obter a seguinte saída:
Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/yourls.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://yourls.example.com
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=yourls.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/yourls.example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/yourls.example.com/privkey.pem
Your cert will expire on 2020-06-11. To obtain a new or tweaked
version of this certificate in the future, simply run certbot-auto
again with the "certonly" option. To non-interactively renew *all*
of your certificates, run "certbot-auto renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-leAgora você pode acessar o site YOURLS com segurança usando a URL https://yourls.example.com.
Conclusão
Parabéns! você instalou com sucesso o YOURLS com Nginx e SSL Let’s Encrypt no CentOS 8. Agora você pode hospedar seu próprio encurtador de URL facilmente com o YOURLS. Sinta-se à vontade para me perguntar se você tiver alguma dúvida.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.