Cómo instalar el acortador de URL autohospedado YOURLS en CentOS 8

SUYO

YOURLS es un acortador de URL gratuito, de c√≥digo abierto y autohospedado escrito en PHP. Es muy similar a TinyURL o Bitly y te permite ejecutar tu propio servicio de acortamiento de URL. Tambi√©n le permite agregar una marca a sus URL cortas. Ofrece un amplio conjunto de caracter√≠sticas que incluyen, enlace privado y p√ļblico, palabras clave de URL personalizadas, informes de clics hist√≥ricos, interfaz Ajaxed, compatibilidad con Jsonp y muchas m√°s.

En este tutorial, le mostraremos c√≥mo instalar YOURLS en CentOS 8 con Let’s Encrypt SSL.

requisitos previos

  • Un servidor que ejecuta CentOS 8.
  • Un nombre de dominio v√°lido apuntado con la IP de su servidor.
  • Se configura una contrase√Īa de root en el servidor.

Instalar servidor LEMP

Primero, deber√° instalar Nginx, MariaDB, PHP y las extensiones PHP requeridas en su servidor. Puede instalarlos todos con el siguiente 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

Una vez que todos los paquetes estén instalados, edite el archivo de configuración de PHP-FPM /etc/php-fpm.d/www.conf y cambie el usuario de apache a nginx:

nano /etc/php-fpm.d/www.conf

Cambia las siguientes líneas:

user = nginx
group = nginx

Guarde y cierre el archivo, luego inicie el servicio Nginx, MariaDB, PHP-FPM y permita que se inicien al reiniciar el sistema con el siguiente comando:

systemctl start nginx
systemctl enable nginx
systemctl start mariadb
systemctl enable mariadb
systemctl start php-fpm
systemctl enable php-fpm

Una vez que haya terminado, puede continuar con el siguiente paso.

Crear una base de datos para YOURLS

A continuación, deberá crear una base de datos y un usuario para YOURLS. Primero, inicie sesión en MariaDB con el siguiente comando:

mysql

Una vez que inicie sesión, cree una base de datos y un usuario con el siguiente comando:

MariaDB [(none)]> CREATE DATABASE yourlsdb;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON yourlsdb.* TO 'yourlsuser'@'localhost' IDENTIFIED BY 'password';

A continuación, elimine los privilegios y salga de MariaDB con el siguiente comando:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> \q

En este punto, MariaDB est√° instalado y configurado.

Instalar YOURLS

Primero, cambie el directorio a Nginx web root y descargue la √ļltima versi√≥n de YOURLS con el siguiente comando:

cd /var/www/html
git clone https://github.com/YOURLS/YOURLS.git

A continuación, cambie el nombre del archivo de configuración de muestra con el siguiente comando:

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

A continuación, edite el archivo config.php y defina la configuración de su base de datos:

nano config.php

Cambia las siguientes líneas:

/** MySQL database username */
define( 'YOURLS_DB_USER', 'yourlsuser' );
 
/** MySQL database password */
define( 'YOURLS_DB_PASS', 'password' );
 
/** The name of the database for YOURLS
 ** Use lower case letters [a-z], digits [0-9] and underscores [_] only */
define( 'YOURLS_DB_NAME', 'yourlsdb' );
 
/** MySQL hostname.
 ** If using a non standard port, specify it like 'hostname:port', eg. 'localhost:9999' or '127.0.0.1:666' */
define( 'YOURLS_DB_HOST', 'localhost' );
 
/** MySQL tables prefix
 ** YOURLS will create tables using this prefix (eg `yourls_url`, `yourls_options`, ...)
 ** Use lower case letters [a-z], digits [0-9] and underscores [_] only */
define( 'YOURLS_DB_PREFIX', 'yourls_' );
 
define( 'YOURLS_SITE', 'http://yourls.example.com' );
$yourls_user_passwords = array(
        'admin' => 'yourpassword',

Guarde y cierre el archivo cuando haya terminado. A continuación, cree un archivo .htaccess con el siguiente comando:

nano /var/www/html/YOURLS/.htaccess

Agregue las siguientes líneas:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /yourls-loader.php [L]
</IfModule>

Guarde y cierre el archivo, luego otorgue los permisos y la propiedad adecuados con el siguiente comando:

chown -R nginx:nginx /var/www/html/YOURLS
chmod -R 775 /var/www/html/YOURLS

Una vez que haya terminado, puede continuar con el siguiente paso.

Configurar Nginx para YOURLS

A continuación, cree un nuevo archivo de configuración de host virtual Nginx para YOURLS:

nano /etc/nginx/conf.d/yourls.conf

Agregue las siguientes líneas:

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;
  }
}

Guarde y cierre el archivo, luego reinicie el servicio Nginx y PHP-FPM con el siguiente comando:

systemctl restart nginx
systemctl restart php-fpm

También puede verificar el estado de Nginx con el siguiente comando:

systemctl status nginx

Deberías obtener el siguiente resultado:

? nginx.service - The nginx HTTP and reverse proxy server
   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 The nginx HTTP and reverse proxy server.
Oct 20 09:37:40 centos systemd[1]: Starting The nginx HTTP and reverse proxy server...
Oct 20 09:37:40 centos nginx[12862]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Oct 20 09:37:40 centos nginx[12862]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Oct 20 09:37:40 centos systemd[1]: Started The nginx HTTP and reverse proxy server.

Configurar SELinux y Firewall

De manera predeterminada, SELinux est√° habilitado en CentOS 8. Por lo tanto, deber√° configurarlo para su sitio web YOURLS.

Puede configurar SELinux con el siguiente 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

Luego, permita el puerto 80 y 443 a través del firewall con el siguiente comando:

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

Una vez que haya terminado, puede continuar con el siguiente paso.

Accede a los tuyos

Ahora, abra su navegador web y acceda a YOURLS usando la URL http://yourls.example.com/admin. Deberías ver la siguiente página:

SUYO

Haga clic en el Instalar YOURLS botón. Deberías ver la siguiente página:

Instalador tuyo

lamer en el ¬ęP√°gina de administraci√≥n de YOURLS‚ÄĚ. Deber√≠a ver la p√°gina de inicio de sesi√≥n de YOURLS:

Acceso

Proporcione su nombre de usuario y contrase√Īa de administrador que ha definido en config.php y luego haga clic en el Acceso bot√≥n. Deber√≠a ver el tablero de YOURLS en la siguiente p√°gina:

Panel de administración de YOURLS

Asegure YOURLS con Let’s Encrypt SSL

A continuaci√≥n, deber√° instalar la utilidad Certbot en su sistema para descargar e instalar Let’s Encrypt SSL para su sitio web YOURLS.

Puede instalar el cliente de Certbot con el siguiente 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

A continuación, obtenga e instale un certificado SSL para su sitio web YOURLS con el siguiente comando:

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

El comando anterior instalará primero todas las dependencias requeridas en su servidor. Una vez instalado, se le pedirá que proporcione una dirección de correo electrónico y acepte el término del servicio como se muestra a continuación:

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

Seleccione si desea redirigir el tráfico HTTP a HTTPS o no, como se muestra a continuación:

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

Escriba 2 y presione Entrar para continuar. Una vez que la instalación se haya completado con éxito, debería obtener el siguiente resultado:

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

Ahora puede acceder al sitio web de YOURLS de forma segura utilizando la URL https://yourls.example.com.

Conclusión

¬°Felicidades! ha instalado con √©xito YOURLS con Nginx y Let’s Encrypt SSL en CentOS 8. Ahora puede alojar f√°cilmente su propio acortador de URL con YOURLS. No dude en preguntarme si tiene alguna pregunta.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *