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 -y

Uma 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.conf

Altere as seguintes linhas:

user = nginx
group = nginx

Salve 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-fpm

Uma 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:

mysql

Uma 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)]> \q

Neste 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.git

Em seguida, renomeie o arquivo de configuração de exemplo com o seguinte comando:

cd YOURLS/user/  
cp config-sample.php config.php

Em seguida, edite o arquivo config.php e defina suas configurações de banco de dados:

nano config.php

Altere 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/.htaccess

Adicione 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/YOURLS

Uma 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.conf

Adicione 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-fpm

Você também pode verificar o status do Nginx com o seguinte comando:

systemctl status nginx

Você 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/YOURLS

Em seguida, permita a porta 80 e 443 através do firewall com o seguinte comando:

firebase-cmd --permanent --add-service=http
firebase-cmd --permanent --add-service=https  
firebase-cmd --reload

Uma 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:

YOURLS

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

Instalador YOURLS

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

Login

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:

Painel de administração do YOURLS

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-auto

Em seguida, obtenha e instale um certificado SSL para o seu site YOURLS com o seguinte comando:

certbot-auto --nginx -d yourls.example.com

O 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.conf

Selecione 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): 2

Digite 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-le

Agora 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.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.