<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>linux &#8211; danisanchez.net</title>
	<atom:link href="https://danisanchez.net/tag/linux/feed/" rel="self" type="application/rss+xml" />
	<link>https://danisanchez.net</link>
	<description></description>
	<lastBuildDate>Mon, 13 Apr 2026 21:00:56 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://danisanchez.net/wp-content/uploads/2026/07/cropped-favicon-32x32.png</url>
	<title>linux &#8211; danisanchez.net</title>
	<link>https://danisanchez.net</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Instalar LAMP (Apache, PHP, MariaDB y phpMyAdmin) en openSUSE Leap 16.0</title>
		<link>https://danisanchez.net/instalar-lamp-apache-php-mariadb-y-phpmyadmin-en-opensuse-leap-16-0/</link>
					<comments>https://danisanchez.net/instalar-lamp-apache-php-mariadb-y-phpmyadmin-en-opensuse-leap-16-0/#respond</comments>
		
		<dc:creator><![CDATA[dani.sanchez]]></dc:creator>
		<pubDate>Mon, 13 Apr 2026 21:00:56 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[opensuse]]></category>
		<guid isPermaLink="false">https://danisanchez.net/?p=15555</guid>

					<description><![CDATA[Recientemente he migrado mi entorno de trabajo de Debian 13 Gnome a openSUSE Leap 16 KDE Plasma. Hacía tiempo que buscaba cambiar un poco de aires y salir de mi zona de confort basada en .deb para explorar más a fondo el mundo .rpm, y qué mejor que pasar de una distro super estable, aburrida [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Recientemente he migrado mi entorno de trabajo de Debian 13 Gnome a openSUSE Leap 16 KDE Plasma.</p>



<p class="wp-block-paragraph">Hacía tiempo que buscaba cambiar un poco de aires y salir de mi zona de confort basada en .deb para explorar más a fondo el mundo .rpm, y qué mejor que pasar de una distro super estable, aburrida y segura como Debian a otra distro super estable, segura y probablemente más aburrida como la rama Leap de openSUSE, la cual ha estrenado su versión 16 después de 8 años que se ha mantenido la 15 (y la cual aún cuenta con bastante tiempo de soporte).</p>



<p class="wp-block-paragraph">En esta entrada vamos a seguir los pasos para instalar el stack de servidor web para pruebas y desarrollos en local (no vamos a abrir el servidor al exterior, solamente funcionará en nuestro entorno <em>localhost</em>).</p>



<h2 class="wp-block-heading"><strong>Instalar Apache2 en openSUSE Leap 16.0</strong></h2>



<p class="wp-block-paragraph">Primero instalamos el servidor web:</p>



<pre class="wp-block-code"><code>sudo zypper in apache2</code></pre>



<p class="wp-block-paragraph">Una vez instalado, lo habilitamos con el comando:</p>



<pre class="wp-block-code"><code>sudo systemctl enable apache2</code></pre>



<p class="wp-block-paragraph">Y seguidamente lo iniciamos con:</p>



<pre class="wp-block-code"><code>sudo systemctl start apache2</code></pre>



<p class="wp-block-paragraph">Otros comandos básicos de Apache son <em>stop</em> para detenerlo y <em>restart</em> para reiniciarlo, en caso de que hayamos hecho algún cambio en la configuración.</p>



<p class="wp-block-paragraph">El directorio de trabajo donde alojaremos los proyectos es <strong>/srv/www/htdocs</strong>/</p>



<p class="wp-block-paragraph"><strong>Configuración de Apache</strong></p>



<p class="wp-block-paragraph">Dentro del archivo de configuración de Apache, concretamente al principio, en el apartado «&lt;Directory «/srv/www/htdocs»&gt;», necesitamos añadir o descomentar estas líneas:</p>



<pre class="wp-block-code"><code>sudo nano /etc/apache2/default-server.conf</code></pre>



<pre class="wp-block-code"><code>Options Indexed FollowSymLinks
AllowOverride All
Require all granted</code></pre>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="740" src="https://danisanchez.net/wp-content/uploads/2026/03/imagen-2-1024x740.webp" alt="" class="wp-image-15580" srcset="https://danisanchez.net/wp-content/uploads/2026/03/imagen-2-1024x740.webp 1024w, https://danisanchez.net/wp-content/uploads/2026/03/imagen-2-300x217.webp 300w, https://danisanchez.net/wp-content/uploads/2026/03/imagen-2-768x555.webp 768w, https://danisanchez.net/wp-content/uploads/2026/03/imagen-2.webp 1123w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Comprobar que <strong>no haya</strong> una linea que diga <strong>AllowOverride None</strong> (en tal caso, quitarla o comentarla)</p>



<p class="wp-block-paragraph"><strong>Reiniciamos Apache:</strong></p>



<pre class="wp-block-code"><code>sudo systemctl restart apache2</code></pre>



<p class="wp-block-paragraph">Para comprobar que nuestro servidor está en funcionamiento, podemos crear un sencillo archivo index.html en la ruta anterior:</p>



<pre class="wp-block-code"><code>sudo nano /srv/www/htdocs/index.html</code></pre>



<pre class="wp-block-code"><code>&lt;html&gt;
    &lt;body&gt;&lt;h1&gt;Bienvenido a Localhost!&lt;/body&gt;
&lt;/html&gt;</code></pre>



<p class="wp-block-paragraph">Abrimos un navegador web y vamos a la dirección http://localhost/</p>



<p class="wp-block-paragraph">Deberemos ver nuestro mensaje de bienvenida:</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="819" src="https://danisanchez.net/wp-content/uploads/2026/03/imagen-1024x819.webp" alt="" class="wp-image-15556" srcset="https://danisanchez.net/wp-content/uploads/2026/03/imagen-1024x819.webp 1024w, https://danisanchez.net/wp-content/uploads/2026/03/imagen-300x240.webp 300w, https://danisanchez.net/wp-content/uploads/2026/03/imagen-768x614.webp 768w, https://danisanchez.net/wp-content/uploads/2026/03/imagen.webp 1189w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading"><strong>Instalar MariaDB en openSUSE Leap 16.0</strong></h2>



<p class="wp-block-paragraph">A continuación vamos a instalar el gestor de bases de datos MariaDB:</p>



<pre class="wp-block-code"><code>sudo zypper in mariadb</code></pre>



<p class="wp-block-paragraph">Al igual que con Apache, debemos ejecutar los comandos para habilitar el servicio e iniciarlo:</p>



<pre class="wp-block-code"><code>sudo systemctl enable mysql
sudo systemctl start mysql</code></pre>



<p class="wp-block-paragraph">Y si necesitamos detener o reiniciar el servicio:</p>



<pre class="wp-block-code"><code>sudo systemctl stop mysql
sudo systemctl restart mysql</code></pre>



<h3 class="wp-block-heading">Establecer contraseña de root para MariaDB</h3>



<p class="wp-block-paragraph">Por defecto, el servicio mysql (mariadb) viene sin contraseña de root. Para asignarla ejecutamos el comando:</p>



<pre class="wp-block-code"><code>sudo mysql_secure_installation</code></pre>



<p class="wp-block-paragraph">Al preguntarnos si queremos asignar una contraseña de roor, decimos que si (y):</p>



<pre class="wp-block-code"><code>Set root password? &#91;Y/n] y
New password: *******
Re-enter new password: ****** 
Password updated successfully!</code></pre>



<p class="wp-block-paragraph">Después nos hará una serie de preguntas, como si deseamos eliminar usuarios anónimos, borrar tablas de test, etc. En mi caso le doy que sí a todo:</p>



<pre class="wp-block-code"><code>Remove anonymous users? &#91;Y/n] y
 ... Success!
 
 Disallow root login remotely? &#91;Y/n] y
 ... Success!
 
 Remove test database and access to it? &#91;Y/n] y
 - Dropping test database...
 ... Success!
 
 - Removing privileges on test database...
 ... Success!
 
 Reload privilege tables now? &#91;Y/n] y
 ... Success!</code></pre>



<h3 class="wp-block-heading">Crear usuario de MySQL</h3>



<p class="wp-block-paragraph">Lo normal es trabajar con un usuario personalizado en lugar de trabajar directamente con root. Para crear un usuario, entramos en la consola de MySQL:</p>



<pre class="wp-block-code"><code>sudo mysql -u root</code></pre>



<p class="wp-block-paragraph">Y creamos el nuevo usuario:</p>



<pre class="wp-block-code"><code>CREATE USER tu_usuario IDENTIFIED BY 'tu_password';</code></pre>



<h2 class="wp-block-heading"><strong>Instalar PHP en openSUSE Leap 16.0</strong></h2>



<p class="wp-block-paragraph">En el momento de escribir este artículo, la versión disponible para openSUSE Leap 16.0 es la 8.4.16. Una versión bastante reciente para una distro con enfoque conservador. Veremos cómo se va actualizando a lo largo de su ciclo de vida :</p>



<pre class="wp-block-code"><code>php --version
PHP 8.4.16 (cli) (built: Dec 19 2025 07:51:15) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.4.16, Copyright (c) Zend Technologies</code></pre>



<p class="wp-block-paragraph">Para instalar PHP en nuestro entorno LAMP, necesitamos el paquete php general, el paquete conector con Apache y el paquete conector con MySQL:</p>



<pre class="wp-block-code"><code>sudo zyyper in php8 php8-mysql apache2-mod_php8</code></pre>



<p class="wp-block-paragraph">Una vez instalado, descomentamos o añadimos esta línea en al archivo de configuración /etc/apache2/mod_mime-defaults.conf</p>



<p class="wp-block-paragraph">En mi caso la línea no venía comentada y la tuve que añadir.</p>



<pre class="wp-block-code"><code>sudo nano /etc/apache2/mod_mime-defaults.conf</code></pre>



<pre class="wp-block-code"><code>AddType application/x-httpd-php .php</code></pre>



<figure class="wp-block-image size-full"><img decoding="async" width="943" height="812" src="https://danisanchez.net/wp-content/uploads/2026/03/imagen-1.webp" alt="" class="wp-image-15579" srcset="https://danisanchez.net/wp-content/uploads/2026/03/imagen-1.webp 943w, https://danisanchez.net/wp-content/uploads/2026/03/imagen-1-300x258.webp 300w, https://danisanchez.net/wp-content/uploads/2026/03/imagen-1-768x661.webp 768w" sizes="(max-width: 943px) 100vw, 943px" /></figure>



<p class="wp-block-paragraph">Esto hará que Apache interprete los archivos .php como scripts de servidor, en lugar de archivos descargables o de texto plano.</p>



<p class="wp-block-paragraph"><strong>Habilitamos el módulo de php en Apache</strong></p>



<pre class="wp-block-code"><code>sudo a2enmod php8</code></pre>



<p class="wp-block-paragraph"><strong>Habilitamos el módulo rewrite, esencial para manejar URLs amigables en WordPress y otros CMS</strong></p>



<pre class="wp-block-code"><code>sudo a2enmod rewrite</code></pre>



<p class="wp-block-paragraph"><strong>Ampliamos parámetros en php.ini</strong></p>



<p class="wp-block-paragraph">Por defecto, php viene configurado con unos parámetros mínimos que pueden quedarse cortos a la hora de trabajar, como el caso de la subida de archivos al servidor (limitada a 2MB), o el limite de memoria (128M).</p>



<p class="wp-block-paragraph">El archivo a editar se encuentra en /etc/php8/apache2/php.ini</p>



<p class="wp-block-paragraph">Si vas a trabajar con WordPress u otros CMS, a mí me gusta ampliar estos parámetros:</p>



<pre class="wp-block-code"><code>sudo nano /etc/php8/apache2/php.ini</code></pre>



<pre class="wp-block-code"><code>memory_limit = 512M
post_max_size = 64M
max_execution_time = 180
upload_max_filesize = 64M
max_input_time = 180
max_input_vars = 10000</code></pre>



<p class="wp-block-paragraph">Ahora reiniciamos Apache para que surtan efecto todos los cambios anteriores:</p>



<pre class="wp-block-code"><code>sudo systemctl restart apache2</code></pre>



<h2 class="wp-block-heading"><strong>Instalar phpMyAdmin en openSUSE Leap 16.0</strong></h2>



<p class="wp-block-paragraph">phpMyAdmin viene de serie en los repositorios de openSUSE, por lo que la instalación es de lo más sencillo, sin necesidad de descargar de sitios externos ni de editar archivos de configuración.</p>



<pre class="wp-block-code"><code>sudo zypper in phpMyAdmin</code></pre>



<p class="wp-block-paragraph">Para abrirlo accedemos desde el navegador a la ruta: http://localhost/phpMyAdmin </p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="958" height="701" src="https://danisanchez.net/wp-content/uploads/2026/03/imagen-4.webp" alt="" class="wp-image-15582" srcset="https://danisanchez.net/wp-content/uploads/2026/03/imagen-4.webp 958w, https://danisanchez.net/wp-content/uploads/2026/03/imagen-4-300x220.webp 300w, https://danisanchez.net/wp-content/uploads/2026/03/imagen-4-768x562.webp 768w" sizes="auto, (max-width: 958px) 100vw, 958px" /></figure>



<p class="wp-block-paragraph">(<strong>Muy importante respetar las mayúsculas y minúsculas</strong> de phpMyAdmin, de lo contrario os dirá que la ruta no existe:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="958" height="496" src="https://danisanchez.net/wp-content/uploads/2026/03/imagen-3.webp" alt="" class="wp-image-15581" srcset="https://danisanchez.net/wp-content/uploads/2026/03/imagen-3.webp 958w, https://danisanchez.net/wp-content/uploads/2026/03/imagen-3-300x155.webp 300w, https://danisanchez.net/wp-content/uploads/2026/03/imagen-3-768x398.webp 768w" sizes="auto, (max-width: 958px) 100vw, 958px" /></figure>



<h2 class="wp-block-heading"><strong>Relajar la seguridad de SELinux</strong></h2>



<p class="wp-block-paragraph">Por último, si trabajas con WordPress o similares y tienes problemas de conexión (por ejemplo, no descarga ni instala plugins), puedes cambiar el nivel de protección de SELinux de estricto a permisivo:</p>



<pre class="wp-block-code"><code>sudo nano /etc/selinux/config</code></pre>



<p class="wp-block-paragraph">Y cambiamos el parámetro SELINUX=permissive</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="741" src="https://danisanchez.net/wp-content/uploads/2026/03/imagen-5-1024x741.webp" alt="" class="wp-image-15583" srcset="https://danisanchez.net/wp-content/uploads/2026/03/imagen-5-1024x741.webp 1024w, https://danisanchez.net/wp-content/uploads/2026/03/imagen-5-300x217.webp 300w, https://danisanchez.net/wp-content/uploads/2026/03/imagen-5-768x556.webp 768w, https://danisanchez.net/wp-content/uploads/2026/03/imagen-5.webp 1122w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Reiniciamos el equipo, y ya tendremos todo el stack LAMP listo para desarrollo en local <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://danisanchez.net/instalar-lamp-apache-php-mariadb-y-phpmyadmin-en-opensuse-leap-16-0/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Configurar correctamente los permisos de WordPress en Apache (Debian/Ubuntu)</title>
		<link>https://danisanchez.net/configurar-correctamente-los-permisos-de-wordpress-en-apache-debian-ubuntu/</link>
					<comments>https://danisanchez.net/configurar-correctamente-los-permisos-de-wordpress-en-apache-debian-ubuntu/#respond</comments>
		
		<dc:creator><![CDATA[dani.sanchez]]></dc:creator>
		<pubDate>Tue, 17 Feb 2026 20:07:59 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://danisanchez.net/?p=15470</guid>

					<description><![CDATA[Para configurar correctamente los permisos de WordPress con Apache (www-data) en Linux (Debian/Ubuntu), asignamos al usuario www-data la propiedad de los archivos y establecemos permisos 755 para directorios y 644 para archivos. Añadimos nuestro usuario al grupo www-data si necesitamos hacer operaciones en los directorios:]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Para configurar correctamente los permisos de WordPress con Apache (www-data) en Linux (Debian/Ubuntu), asignamos al usuario www-data la propiedad de los archivos y establecemos permisos 755 para directorios y 644 para archivos. </p>



<ul class="wp-block-list">
<li><strong>Cambiar propietario</strong> (ejecutar dentro de /var/www/html o la raíz de tu sitio):</li>
</ul>



<pre class="wp-block-code"><code>sudo chown -R www-data:www-data /var/www/html</code></pre>



<ul class="wp-block-list">
<li><strong>Establecer permisos</strong> para directorios (755):</li>
</ul>



<pre class="wp-block-code"><code>sudo find /var/www/html -type d -exec chmod 755 {} \;</code></pre>



<ul class="wp-block-list">
<li><strong>Establecer permisos</strong> para archivos (644):</li>
</ul>



<pre class="wp-block-code"><code>sudo find /var/www/html -type f -exec chmod 644 {} \;</code></pre>



<p class="wp-block-paragraph">Añadimos nuestro usuario al grupo www-data si necesitamos hacer operaciones en los directorios:</p>



<pre class="wp-block-code"><code>sudo usermod -a -G www-data $USER</code></pre>
]]></content:encoded>
					
					<wfw:commentRss>https://danisanchez.net/configurar-correctamente-los-permisos-de-wordpress-en-apache-debian-ubuntu/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Utilizar sudo con tu usuario personal en Debian</title>
		<link>https://danisanchez.net/utilizar-sudo-con-tu-usuario-personal-en-debian/</link>
					<comments>https://danisanchez.net/utilizar-sudo-con-tu-usuario-personal-en-debian/#respond</comments>
		
		<dc:creator><![CDATA[dani.sanchez]]></dc:creator>
		<pubDate>Mon, 09 Feb 2026 20:48:38 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[linux]]></category>
		<guid isPermaLink="false">https://danisanchez.net/?p=15463</guid>

					<description><![CDATA[Para poder utilizar el comando sudo con tu usuario normal (no root), editar el archivo: Localizar la parte: Añadir tu usuario: Guardar y reiniciar.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Para poder utilizar el comando sudo con tu usuario normal (no root), editar el archivo:</p>



<pre class="wp-block-code"><code>sudo /etc/sudoers</code></pre>



<p class="wp-block-paragraph">Localizar la parte:</p>



<pre class="wp-block-code"><code># User privilege specification
root       ALL=(ALL:ALL) ALL</code></pre>



<p class="wp-block-paragraph">Añadir tu usuario:</p>



<pre class="wp-block-code"><code># User privilege specification
root       ALL=(ALL:ALL) ALL
usuario    ALL=(ALL:ALL) ALL</code></pre>



<p class="wp-block-paragraph">Guardar y reiniciar.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://danisanchez.net/utilizar-sudo-con-tu-usuario-personal-en-debian/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cómo optimizo imágenes sin usar editores de imágenes</title>
		<link>https://danisanchez.net/como-optimizo-imagenes-sin-usar-editores-de-imagenes/</link>
					<comments>https://danisanchez.net/como-optimizo-imagenes-sin-usar-editores-de-imagenes/#respond</comments>
		
		<dc:creator><![CDATA[dani.sanchez]]></dc:creator>
		<pubDate>Fri, 29 Aug 2025 18:44:45 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[tutoriales]]></category>
		<guid isPermaLink="false">https://danisanchez.net/?p=15093</guid>

					<description><![CDATA[Lo primero que hago cuando voy a empezar un nuevo montaje o maquetación web es preparar las imágenes. Las descargo de Figma, Adobe XD&#8230; o cualquiera que sea la fuente que me proporcionan. Una vez descargadas las organizo en carpetas con el nombre de la página, post o producto al que pertenezcan. Al principio las [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Lo primero que hago cuando voy a empezar un nuevo montaje o maquetación web es preparar las imágenes. Las descargo de Figma, Adobe XD&#8230; o cualquiera que sea la fuente que me proporcionan.</p>



<p class="wp-block-paragraph">Una vez descargadas las organizo en carpetas con el nombre de la página, post o producto al que pertenezcan.</p>



<p class="wp-block-paragraph">Al principio las optimizaba una a una con <a href="https://www.gimp.org/" target="_blank" rel="noreferrer noopener">GIMP</a>. Escalar y exportar a webp con compresión del 85% . También aprovechaba en la exportacion para limpiar el nombre del archivo (quitar tildes, «eñes», caracteres especiales&#8230;</p>



<p class="wp-block-paragraph">En proyectos con varias decenas de imágenes es una tarea que lleva más del tiempo del necesario. </p>



<p class="wp-block-paragraph">Desde hace tiempo ya no uso GIMP para optimizar las imagenes, sino <a href="https://imagemagick.org/" target="_blank" rel="noreferrer noopener">ImageMagick</a>, un conjunto de comandos que permite convertir formatos, reescalar, comprimir (y más cosas) en lotes desde el terminal de Linux.</p>



<p class="wp-block-paragraph">Lo primero que hago es situarme en el directorio y convertir a webp:</p>



<pre class="wp-block-code"><code>mogrify -format webp *.jpg
mogrify -format webp *.png</code></pre>



<p class="wp-block-paragraph">Elimino los archivos JPG o PNG:</p>



<pre class="wp-block-code"><code>rm *.jpg
rm *.png</code></pre>



<p class="wp-block-paragraph">Si algunas imágenes son demasiado grandes para web, las separo y las reescalo a un ancho máximo (en WordPress 2560px):</p>



<pre class="wp-block-code"><code>mogrify -resize 2560 *.webp</code></pre>



<p class="wp-block-paragraph">Por último aplico la compresión:</p>



<pre class="wp-block-code"><code>mogrify -quality 85 *.webp</code></pre>



<p class="wp-block-paragraph">Y nada más, en menos de un minuto he convertido, reescalado y comprimido todas las imágenes de un directorio.</p>



<p class="wp-block-paragraph">Ahora solo faltaba limpiar el nombre, esto aún lo seguía haciendo a mano, hasta hoy&#8230;</p>



<p class="wp-block-paragraph">Ya que uso Linux me pregunto, ¿y si creo un script en BASH que limpie los nombres de archivo de un directorio completo?</p>



<p class="wp-block-paragraph">Aquí me ayudó DeepSeek, empezó generando un pequeño script en BASH para quitar las tildes de los nombres de archivo.</p>



<p class="wp-block-paragraph">Pero seguí añadiendo cosas y al final tengo un script que limpia los nombres con todo lo que necesito:</p>



<ul class="wp-block-list">
<li>Elimina tildes.</li>



<li>Cambia <em>eñes</em> por <em>enes</em>.</li>



<li>Elimina cualquier caracter especial.</li>



<li>Sustituye los espacios por guiones bajos.</li>
</ul>



<p class="wp-block-paragraph">Y este es el script completo:</p>



<pre class="wp-block-code"><code>limpiar-nombres() {
    local DIRECTORIO="${1:-.}"
    
    if &#91; ! -d "$DIRECTORIO" ]; then
        echo "&#x274c; Error: El directorio '$DIRECTORIO' no existe."
        return 1
    fi
    
    echo "&#x1f504; Limpiando nombres de archivos en: $DIRECTORIO"
    echo "&#x1f4dd; Caracteres que se eliminarán/reemplazarán:"
    echo "   - Tildes (á, é, í, ó, ú, ñ)"
    echo "   - Caracteres especiales (@, #, $, %, &amp;, *, !, ¿, ?, ¡)"
    echo "   - Espacios (reemplazados por _)"
    echo "   - Paréntesis, corchetes, llaves"
    echo "   - Comillas y apóstrofes"
    local contador=0
    
    # Usar find para manejar mejor archivos con espacios
    find "$DIRECTORIO" -maxdepth 1 -type f -print0 | while IFS= read -r -d '' archivo; do
        local nombre_original=$(basename "$archivo")
        local directorio=$(dirname "$archivo")
        
        local nuevo_nombre=$(echo "$nombre_original" | sed -e '
            # Reemplazar tildes y ñ
            y/áàäâÁÀÄÂ/aaaaAAAA/
            y/éèëêÉÈËÊ/eeeeEEEE/
            y/íìïîÍÌÏÎ/iiiiIIII/
            y/óòöôÓÒÖÔ/ooooOOOO/
            y/úùüûÚÙÜÛ/uuuuUUUU/
            y/ñÑ/nN/
            
            # Eliminar caracteres especiales
            s/&#91;@#%&amp;*¿?¡!$]//g
            
            # Eliminar paréntesis, corchetes, llaves
            s/&#91;()\&#91;\]{}]//g
            
            # Eliminar comillas y apóstrofes
            s/&#91;'\''"`]//g
            
            # Reemplazar espacios por guiones bajos
            s/ /_/g
            
            # Reemplazar múltiples guiones bajos por uno solo
            s/__+/_/g
            
            # Eliminar guiones bajos al inicio y final
            s/^_//
            s/_$//
        ')
        
        if &#91; "$nombre_original" != "$nuevo_nombre" ]; then
            echo "&#x1f4c1; Renombrando: \"$nombre_original\" -> \"$nuevo_nombre\""
            mv -- "$archivo" "$directorio/$nuevo_nombre"
            ((contador++))
        fi
    done
    
    echo "&#x2705; Proceso completado. Se renombraron $contador archivos."
    
    if &#91; $contador -eq 0 ]; then
        echo "&#x1f4a1; No se encontraron archivos que necesiten renombrarse."
    fi
}

# Alias para uso rápido
alias lnombres='limpiar-nombres'
alias limpiar-archivos='limpiar-nombres'</code></pre>



<p class="wp-block-paragraph">Añadiendo el script al archivo ~/.bashrc o ~/.zshrc (en mi caso uso ZSH) podremos usarlo en cualquier directorio sin necesidad de tener el script.sh dentro.</p>



<pre class="wp-block-code"><code>/home/user/Descargas/Fotos/limpiar-nombres</code></pre>



<p class="wp-block-paragraph">Ahora que se habla tanto de productividad, tanto Linux como la terminal, cada día mejoran la mía.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://danisanchez.net/como-optimizo-imagenes-sin-usar-editores-de-imagenes/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Iniciar sesión en nuestros VPS mediante SSH Keys</title>
		<link>https://danisanchez.net/iniciar-sesion-en-nuestros-vps-mediante-ssh-keys/</link>
					<comments>https://danisanchez.net/iniciar-sesion-en-nuestros-vps-mediante-ssh-keys/#respond</comments>
		
		<dc:creator><![CDATA[dani.sanchez]]></dc:creator>
		<pubDate>Sun, 04 May 2025 12:50:59 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[vps]]></category>
		<guid isPermaLink="false">https://danisanchez.net/?p=14880</guid>

					<description><![CDATA[Hace tiempo que intento mejorar la seguridad de los accesos SSH a mis servidores virtuales, pues creo que la configuración por defecto basada en usuario (root) y contraseña, no es suficiente y el acceso queda expuesto a ataques por fuerza bruta o simples robos de contraseña. Hasta ahora venía usando un doble factor de autenticación [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Hace tiempo que intento mejorar la seguridad de los accesos SSH a mis servidores virtuales, pues creo que la configuración por defecto basada en usuario (root) y contraseña, no es suficiente y el acceso queda expuesto a ataques por fuerza bruta o simples robos de contraseña.</p>



<p class="wp-block-paragraph">Hasta ahora venía usando un doble factor de autenticación basado en Google Authenticator. Aunque el sistema es efectivo, proceso que ya expliqué hace un tiempo en <a href="https://danisanchez.net/anade-doble-factor-de-autenticacion-en-conexiones-ssh-ubuntu-y-derivados/">este artículo</a>, no me gusta la idea de depender de un servicio como Google Authenticator, o de que mi servidor mantenga el paquete google-authenticator en futuras versiones, así que me he pasado al método de acceso por <strong>SSH Keys</strong>. Un método muy seguro basado en el sistema llave pública &#8211; llave secreta, utilizado en infinidad de aplicaciones.</p>



<h2 class="wp-block-heading">Crear las SSH Keys</h2>



<p class="wp-block-paragraph">Crearemos las SSH Keys en nuestra máquina local (yo uso GNU/Linux y lo voy a explicar en base a estos sistemas, si usas otro tipo de sistema operativo, busca información adicional sobre cómo generar SSH Keys) abriendo un terminal y ejecutando el siguiente comando:</p>



<pre class="wp-block-code"><code>ssh-keygen</code></pre>



<p class="wp-block-paragraph">Nos preguntará si deseamos darle un nombre (es conveniente usar un nombre que nos de una pista sobre dónde la vamos a usar), por ejemplo «<strong>keyservidorclientes</strong>«.</p>



<p class="wp-block-paragraph">Si no indicamos ningún nombre, se asignará por defecto: id_rda.</p>



<p class="wp-block-paragraph">La segunda pregunta nos ofrece crear una frase de contraseña para nuestra llave secreta. Es opcional, pero si alguien accede a nuestra máquina local, podría acceder automáticamente a nuestros servidores sin mayor problema. La frase de llave secreta añade un factor de seguridad más para estos casos.</p>



<p class="wp-block-paragraph">Tras asignar el nombre y frase se crearán dos ficheros dentro de /home/user/.ssh/</p>



<ul class="wp-block-list">
<li>keyservidorclientes.pub</li>



<li>keyservidorclientes</li>
</ul>



<p class="wp-block-paragraph">o si no le hemos asignado un nombre al momento de crearlas:</p>



<ul class="wp-block-list">
<li>id_rda.pub</li>



<li>id_rda </li>
</ul>



<p class="wp-block-paragraph">El primer fichero con extensión .pub contiene nuestra llave pública y el fichero sin extensión, nuestra llave secreta.</p>



<h2 class="wp-block-heading">Organizar nuestras SSH Keys</h2>



<p class="wp-block-paragraph">Si vamos a generar muchos SSH Keys para diferentes servidores, una buena práctica es guardar cada par de llaves en directorios diferentes, por ejemplo:</p>



<pre class="wp-block-code"><code>.ssh/servidordesarrollo/keyservidordesarrollo.pub
.ssh/servidordesarrollo/keyservidordesarrollo

.ssh/servidorclientes/keyservidorclientes.pub
.ssh/servidorclientes/keyservidorclientes

.ssh/servidorbackups/keyservidorbackups.pub
.ssh/servidorbackups/keyservidorbackups</code></pre>



<p class="wp-block-paragraph">Después creamos (si no existe) un fichero de configuración donde asociamos cada acceso con la ubicación de sus SSH Keys. Este fichero se llama <strong>config</strong> y debemos ubicarlo en el directorio principal /home/user/.ssh/ </p>



<p class="wp-block-paragraph">Dentro referenciamos cada servidor con la ubicación de sus SSH Keys:</p>



<pre class="wp-block-code"><code>Host servidordesarrollo
	HostName IP o dominio del tu servidor
	User root
	IdentityFile ~/.ssh/servidordesarrollo/keyservidordesarrollo
	
Host servidorclientes
	HostName IP o dominio de tu servidor
	User root
	IdentityFile ~/.ssh/servidorclientes/keyservidorclientes
	
Host servidorbackpus
	HostName IP o dominio de tu servidor
	User root
	IdentityFile ~/.ssh/servidorbackups/keyservidorbackups

...</code></pre>



<p class="wp-block-paragraph">Ahora para conectar con nuestro servidor virtual de clientes solo tenemos que ejecutar:</p>



<pre class="wp-block-code"><code>ssh root@servidorclientes</code></pre>



<p class="wp-block-paragraph">Y para conectar con nuestro servidor de backups sería:</p>



<pre class="wp-block-code"><code>ssh root@servidorbackups</code></pre>



<h2 class="wp-block-heading">Copiar las llaves públicas en nuestros servidores virtuales</h2>



<p class="wp-block-paragraph">Una vez generadas las SSH Keys en nuestra máquina local, tenemos que añadir la llave pública al servidor virtual.</p>



<p class="wp-block-paragraph">Existen herramientas dentro de OpenSSH, que permiten copiar fácilmente nuestra llave pública a nuestro servidor virtual. Pero básicamente lo que hacen es leer nuestro fichero .pub  y copiar su contenido al fichero authorized_keys de nuestro servidor virtual. A mí me gusta hacer este proceso manualmente y asegurarme de que todo se ha llevado a cabo correctamente.</p>



<p class="wp-block-paragraph">Para ello abrimos nuestra llave pública (fichero.pub) con un editor de textos (o desde terminal con cat fichero.pub) y copiamos su contenido.</p>



<p class="wp-block-paragraph">Nos conectamos a nuestro servidor virtual por el método normal SSH por contraseña y editamos con nano (o tu editor preferido), el archivo <strong>/home/user/.ssh/authorized_keys</strong> añadiendo el contenido copiado de nuestra llave pública. (Si queremos añadir otra clave pública, podemos hacerlo a continuación, en una nueva línea. <strong>Cuidado con no soobreesribir otras claves que ha hubiera en el archivo</strong>).</p>



<p class="wp-block-paragraph">A partir de ahora podremos conectar vía SSH con nuestra SSH Key, utilizando la frase de nuestra clave privada en vez de la contraseña de root de nuestro servidor.</p>



<p class="wp-block-paragraph">Esto hace que solo podamos acceder vía SSH desde nuestra máquina local y si conocemos la frase de nuestra clave secreta.</p>



<h2 class="wp-block-heading">Deshabilitar el acceso normal por contraseña</h2>



<p class="wp-block-paragraph">Ahora hay que deshabilitar el acceso normal por contraseña, pues lo que queremos es mejorar la seguridad, de forma que solo se pueda acceder al servidor con la SSH Key.</p>



<p class="wp-block-paragraph">El archivo que tenemos que editar se encuentra en <strong>/etc/ssh/sshd_config</strong>, así que con nano o el editor de terminal que prefieras localizamos la línea:</p>



<pre class="wp-block-code"><code>#PasswordAuthentication yes</code></pre>



<p class="wp-block-paragraph">Descomentamos quitando # y cambiamos a PasswordAuthentication no</p>



<pre class="wp-block-code"><code>PasswordAuthentication no</code></pre>



<p class="wp-block-paragraph">Adicionalmente comprobamos que esta línea está descomentada y en yes:</p>



<pre class="wp-block-code"><code>PubkeyAuthentication yes</code></pre>



<p class="wp-block-paragraph">Y reiniciamos el servicio SSH, en servidores Debian/Ubuntu es:</p>



<pre class="wp-block-code"><code>sudo systemctl restart ssh</code></pre>



<p class="wp-block-paragraph">Antes de cerrar sesión, por precaución, abre un segundo terminal y asegúrate de que puedes iniciar sesión con tu SSH Key. En caso de que no puedas, revierte los cambios anteriores y vuelve a reiniciar el servicio SSH.</p>



<p class="wp-block-paragraph">Si todo ha ido bien, al intentar iniciar sesión mediante contraseña normal, aparecerá el error <strong>permiso denegado</strong>.</p>



<h2 class="wp-block-heading">Posibles problemas con proveedores VPS/Cloud tipo AWS, IONOS, DigitalOceans&#8230;</h2>



<p class="wp-block-paragraph">Si hemos seguido los pasos anteriores y aún así podemos acceder mediante contraseña normal, es posible que nuestro proveedor VPS añada configuraciones adicionales durante el arranque que prevalezcan sobre nuestros cambios.</p>



<p class="wp-block-paragraph">Por ejemplo, los servidores IONOS utilizan <strong>cloud-init</strong>, que añade configuraciones personalizadas durante el arranque que pueden anular nuestras propias modificaciones.</p>



<p class="wp-block-paragraph">Para solucionarlo, vamos hasta el directorio <strong>/etc/cloud/cloud.cfg.d/</strong>.</p>



<p class="wp-block-paragraph">Examinamos si existen archivos de configuración (con extensión .cfg) por si en alguno de ellos estuviese habilitada la opción <strong>PasswordAuthentication yes</strong>. De ser así, lo modificamos a <strong>PasswordAuthentication no</strong>.</p>



<p class="wp-block-paragraph">Reiniciamos el servicio sshd y probamos a conectar vía SSH por el método normal a ver si ahora obtenemos el permiso denegado.</p>



<p class="wp-block-paragraph">Una vez comprobamos cual es el archivo que bloquea nuestra configuración, podemos configurarlo como archivo inmutable, pues en el próximo reinicio del servidor, seguramente se vuelva regenerar con la configuración por defecto.</p>



<p class="wp-block-paragraph">Para ello aplicamos chattr +i sobre el archivo de configuración en cuestión:</p>



<pre class="wp-block-code"><code>sudo chattr +i /etc/ssh/sshd_config.d/archivo.conf </code></pre>



<p class="wp-block-paragraph">Esto hace al archivo inmutable incluso para root.</p>



<p class="wp-block-paragraph">Si tras reiniciar el servidor aún vuelve a habilitarse el acceso SSH por contraseña normal, podríamos como último recurso deshabilitar completamente el cloud-init.</p>



<pre class="wp-block-code"><code>sudo touch /etc/cloud/cloud-init.disabled</code></pre>



<p class="wp-block-paragraph">Y reniciar el servidor.</p>



<p class="wp-block-paragraph"><strong>Aviso: Procede con precaución con esta opción, pues deshabilitar cloud-init, podría romper configuraciones importantes de tu proveedor VPS que provoquen errores futuros en el servidor.</strong></p>



<p class="wp-block-paragraph">Y hasta aquí el tutorial. Espero que como a mí, te sirva de mucha utilidad y securices al máximo tus VPS. Nos vemos en el siguiente post <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://danisanchez.net/iniciar-sesion-en-nuestros-vps-mediante-ssh-keys/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Habilitar el soporte de Wayland en Firefox</title>
		<link>https://danisanchez.net/habilitar-el-soporte-de-wayland-en-firefox/</link>
					<comments>https://danisanchez.net/habilitar-el-soporte-de-wayland-en-firefox/#respond</comments>
		
		<dc:creator><![CDATA[dani.sanchez]]></dc:creator>
		<pubDate>Thu, 03 Nov 2022 19:27:07 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[wayland]]></category>
		<guid isPermaLink="false">https://danisanchez.net/?p=13516</guid>

					<description><![CDATA[Como ya he comentado en varias ocasiones, soy usuario linuxero y mi navegador principal, tanto de trabajo como de uso personal es Firefox. Mi distribución principal es Ubuntu 22.04 LTS y uso la versión snap de Firefox, solo que hasta ahora había trabajado con el servidor gráfico X11, en lugar de Wayland. Tras decidir dar [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Como ya he comentado en varias ocasiones, soy usuario linuxero y mi navegador principal, tanto de trabajo como de uso personal es <strong>Firefox</strong>.</p>



<p class="wp-block-paragraph">Mi distribución principal es Ubuntu 22.04 LTS y uso la versión snap de Firefox, solo que hasta ahora había trabajado con el servidor gráfico X11, en lugar de <strong>Wayland</strong>.</p>



<p class="wp-block-paragraph">Tras decidir dar el salto definitivo a Wayland, comencé a experimentar algunos problemas navegando con Firefox. Problemas como que <strong>el cursor no detecta enlaces </strong>tras un tiempo de uso (no cambia el icono del cursor manteniéndose siempre en flecha), <strong>problemas al subrayar texto</strong> (no aparece el subrayado hasta que no sueltas el click&#8230;), etc.</p>



<p class="wp-block-paragraph">Parece ser que, al menos en Ubuntu, el soporte para Wayland no está al 100% habilitado para Firefox y hay que activarlo a consciencia.</p>



<p class="wp-block-paragraph">Para ello solo tenemos que editar el archivo /etc/environment:</p>



<pre class="wp-block-code"><code>sudo nano /etc/environment</code></pre>



<p class="wp-block-paragraph">Y añadir al final la línea:</p>



<pre class="wp-block-code"><code>MOZ_ENABLE_WAYLAND=1</code></pre>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="786" height="533" src="https://danisanchez.net/wp-content/uploads/2022/11/imagen.png" alt="" class="wp-image-13517" srcset="https://danisanchez.net/wp-content/uploads/2022/11/imagen.png 786w, https://danisanchez.net/wp-content/uploads/2022/11/imagen-300x203.png 300w, https://danisanchez.net/wp-content/uploads/2022/11/imagen-768x521.png 768w" sizes="auto, (max-width: 786px) 100vw, 786px" /></figure>



<p class="wp-block-paragraph">Y eso es todo. Esperemos que en próximas actualizaciones de Ubuntu, esto venga ya configurado por defecto, pues en la última versión 22.04 LTS ya se ha optado por usar Wayland de forma predeterminada y esto puede lastrar el uso de algo tan importante como el navegador principal.</p>



<p class="wp-block-paragraph">Espero que este post te haya servido de utilidad, y nos vemos en próximos <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://danisanchez.net/habilitar-el-soporte-de-wayland-en-firefox/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Instalar LAMP en Manjaro (Linux, Apache, MySQL y PHP)</title>
		<link>https://danisanchez.net/instalar-lamp-en-manjaro-linux-apache-mysql-y-php/</link>
					<comments>https://danisanchez.net/instalar-lamp-en-manjaro-linux-apache-mysql-y-php/#comments</comments>
		
		<dc:creator><![CDATA[dani.sanchez]]></dc:creator>
		<pubDate>Tue, 07 Dec 2021 08:54:12 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[manjaro]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[phpmyadmin]]></category>
		<guid isPermaLink="false">https://www.gestionatuweb.net/?p=11987</guid>

					<description><![CDATA[Introducción Como ya he comentado en algún post, Manjaro es una de mis distros favoritas. Una Arch Rolling con un entorno de escritorio a prueba de bombas (XFCE). Sin embargo siempre me muevo en la rama Debian-Ubuntu estable. Uno de los principales motivos es el Stack LAMP (Linux Apache MySQL PHP). Trabajo a menudo con [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Introducción</h2>



<p class="wp-block-paragraph">Como ya he comentado en algún post, Manjaro es una de mis distros favoritas. Una<em> Arch Rolling</em> con un entorno de escritorio a prueba de bombas (XFCE). </p>



<p class="wp-block-paragraph">Sin embargo siempre me muevo en la rama Debian-Ubuntu estable. Uno de los principales motivos es el Stack LAMP (Linux Apache MySQL PHP). Trabajo a menudo con proyectos web en local, casi siempre webs con problemas que tengo que analizar y reparar antes de aplicar los cambios en producción.</p>



<p class="wp-block-paragraph">La instalación del Stack LAMP en Debian-Ubuntu es bastante sencilla, aquí puedes ver un artículo que escribí hace un par de años y que a día de hoy sigue vigente (lo único que cambia es la versión de PHP).</p>



<figure class="wp-block-embed aligncenter is-type-wp-embed is-provider-danisanchez-net wp-block-embed-danisanchez-net"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="GBrrs0dMcJ"><a href="https://danisanchez.net/instalar-lamp-linux-apache-mysql-y-php-en-gnu-linux-ubuntu-y-derivadas/">Instalar LAMP (Linux, Apache, MySQL y PHP) en GNU/Linux (Ubuntu y derivadas)</a></blockquote><iframe loading="lazy" class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="«Instalar LAMP (Linux, Apache, MySQL y PHP) en GNU/Linux (Ubuntu y derivadas)» — Dani Sánchez" src="https://danisanchez.net/instalar-lamp-linux-apache-mysql-y-php-en-gnu-linux-ubuntu-y-derivadas/embed/#?secret=ckfyQVqgUp#?secret=GBrrs0dMcJ" data-secret="GBrrs0dMcJ" width="500" height="282" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>



<p class="wp-block-paragraph">Pero siempre que he intentado instalar LAMP en otras ramas, como RPM o ARCH, he tenido diversos problemas para hacerlo funcionar, desistiendo y volviendo a mi zona de confort.</p>



<p class="wp-block-paragraph">Hace poco me lié la manda a la cabeza para instalarlo en Fedora, con excelente resultado (puedes ver el artículo completo).</p>



<figure class="wp-block-embed aligncenter is-type-wp-embed is-provider-danisanchez-net wp-block-embed-danisanchez-net"><div class="wp-block-embed__wrapper">
https://danisanchez.net/instalar-lamp-linux-apache-mysql-y-php-en-fedora-34/
</div></figure>



<p class="wp-block-paragraph">Pero en Manjaro, aunque tiene algunas similitudes con Fedora, hay que dar algunos pasos más, sobre todo en lo que a configuración de archivos se refiere. </p>



<p class="wp-block-paragraph">Como siempre, este artículo no solo está hecho para quien lo necesite, si no para mí mismo, tenerlo como referencia para cuando necesite volver a realizar una instalación, sin tener que buscar en varios posts por la Red. Vamos al lío&#8230;</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Artículo disponible en vídeo</p></blockquote>



<iframe loading="lazy" width="100%" height="400" src="https://www.youtube-nocookie.com/embed/0Dk1cNf4qaw" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Instalar el servidor web Apache</h2>



<p class="wp-block-paragraph">Abrimos un terminal e instalamos el paquete <strong>apache</strong>.</p>



<pre class="wp-block-code"><code>sudo pacman -S apache</code></pre>



<p class="wp-block-paragraph">Una vez instalado, vamos a revisar el archivo de configuración de Apache para comprobar que el módulo <em>unique_id_module</em> está comentado:</p>



<p class="wp-block-paragraph">Para ello desde el terminal abrimos con el editor nano el archivo:</p>



<pre class="wp-block-code"><code>sudo nano /etc/httpd/conf/httpd.conf</code></pre>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="736" height="364" src="https://danisanchez.net/wp-content/uploads/2021/12/01-manjaro-en-linux.jpg" alt="" class="wp-image-11993" srcset="https://danisanchez.net/wp-content/uploads/2021/12/01-manjaro-en-linux.jpg 736w, https://danisanchez.net/wp-content/uploads/2021/12/01-manjaro-en-linux-300x148.jpg 300w" sizes="auto, (max-width: 736px) 100vw, 736px" /></figure>



<p class="wp-block-paragraph">Para buscar en nano puedes usar la combinación Ctrl+W y escribir el texto a buscar:</p>



<p class="wp-block-paragraph">Esta es la línea que tenemos que mantener comentada (anteponiéndole un #)</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="757" height="535" src="https://danisanchez.net/wp-content/uploads/2021/12/02-manjaro-en-linux-1.jpg" alt="" class="wp-image-11995" srcset="https://danisanchez.net/wp-content/uploads/2021/12/02-manjaro-en-linux-1.jpg 757w, https://danisanchez.net/wp-content/uploads/2021/12/02-manjaro-en-linux-1-300x212.jpg 300w" sizes="auto, (max-width: 757px) 100vw, 757px" /></figure>



<p class="wp-block-paragraph">Si ya estaba comentada, simplemente podemos salir pulsando Ctrl+X. Para guardar pulsa Ctrl+O.</p>



<p class="wp-block-paragraph">Ahora podemos habilitar el servicio de apache con el comando:</p>



<pre class="wp-block-code"><code>sudo systemctl enable httpd</code></pre>



<p class="wp-block-paragraph">E iniciarlo con el comando:</p>



<pre class="wp-block-code"><code>sudo systemctl start httpd</code></pre>



<p class="wp-block-paragraph">Si necesitamos reiniciar apache porque hayamos hecho algún cambio en la configuración, usamos el comando:</p>



<pre class="wp-block-code"><code>sudo systemctl restart httpd</code></pre>



<p class="wp-block-paragraph">No obstante, si queremos detener el servicio tecleamos el comando:</p>



<pre class="wp-block-code"><code>sudo systemctl stop httpd</code></pre>



<p class="wp-block-paragraph">Para comprobar que apache está corriendo, usa el comando:</p>



<pre class="wp-block-code"><code>sudo systemctl status httpd</code></pre>



<p class="wp-block-paragraph">Debería aparecer <strong>active (running)</strong>:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="755" height="531" src="https://danisanchez.net/wp-content/uploads/2021/12/03-manjaro-en-linux.jpg" alt="" class="wp-image-11997" srcset="https://danisanchez.net/wp-content/uploads/2021/12/03-manjaro-en-linux.jpg 755w, https://danisanchez.net/wp-content/uploads/2021/12/03-manjaro-en-linux-300x211.jpg 300w" sizes="auto, (max-width: 755px) 100vw, 755px" /></figure>



<p class="wp-block-paragraph">Para salir del monitor de estado de apache puedes detener con Ctrl+Z.</p>



<p class="wp-block-paragraph">También podemos abrir un navegador web y dirigirnos a la ruta http://localhost Debería aparecer el índice de apache (que en estos momentos estará vacío):</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="330" height="143" src="https://danisanchez.net/wp-content/uploads/2021/12/04-manjaro-en-linux-1.jpg" alt="" class="wp-image-11999" srcset="https://danisanchez.net/wp-content/uploads/2021/12/04-manjaro-en-linux-1.jpg 330w, https://danisanchez.net/wp-content/uploads/2021/12/04-manjaro-en-linux-1-300x130.jpg 300w" sizes="auto, (max-width: 330px) 100vw, 330px" /></figure>



<p class="wp-block-paragraph">Hemos terminado con apache, ahora instalaremos el gestor de bases de datos MySQL:</p>



<h2 class="wp-block-heading">Instalar MySQL (MariaDB)</h2>



<p class="wp-block-paragraph">Nos dirigimos al terminal e instalamos el paquete <strong>mysql</strong>:</p>



<pre class="wp-block-code"><code>sudo pacman -S mysql</code></pre>



<p class="wp-block-paragraph">Nos avisará de que existen dos proveedores disponibles para instalar mysql. Vamos a elegir la opción 1) mariadb:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="758" height="305" src="https://danisanchez.net/wp-content/uploads/2021/12/05-manjaro-en-linux.jpg" alt="" class="wp-image-12000" srcset="https://danisanchez.net/wp-content/uploads/2021/12/05-manjaro-en-linux.jpg 758w, https://danisanchez.net/wp-content/uploads/2021/12/05-manjaro-en-linux-300x121.jpg 300w" sizes="auto, (max-width: 758px) 100vw, 758px" /></figure>



<p class="wp-block-paragraph"><strong>IMPORTANTE</strong>: Antes de habilitar el servicio de mysql tenemos que inicializar el directorio de datos de MariaDB. Este paso no es necesario en otras ramas como Debian-Ubuntu o Fedora, pero en Manjaro (o la rama Arch en general) si.</p>



<p class="wp-block-paragraph">Para ello copiamos/pegamos el siguiente comando:</p>



<pre class="wp-block-code"><code>sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql</code></pre>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="759" height="721" src="https://danisanchez.net/wp-content/uploads/2021/12/06-manjaro-en-linux.jpg" alt="" class="wp-image-12001" srcset="https://danisanchez.net/wp-content/uploads/2021/12/06-manjaro-en-linux.jpg 759w, https://danisanchez.net/wp-content/uploads/2021/12/06-manjaro-en-linux-300x285.jpg 300w" sizes="auto, (max-width: 759px) 100vw, 759px" /></figure>



<p class="wp-block-paragraph">Ahora podemos habilitar e iniciar mysql:</p>



<pre class="wp-block-code"><code>sudo systemctl enable mysql</code></pre>



<pre class="wp-block-code"><code>sudo systemctl start mysql</code></pre>



<p class="wp-block-paragraph">Igual que con apache, tenemos los comandos <strong>restart</strong> y <strong>stop</strong> para reiniciar o detener mysql.</p>



<p class="wp-block-paragraph">Vamos a comprobar el estado de mysql con el comando:</p>



<pre class="wp-block-code"><code>sudo systemctl status mysql</code></pre>



<p class="wp-block-paragraph">Al igual que con apache, debería aparecer <strong>Active: active (running)</strong>:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="757" height="592" src="https://danisanchez.net/wp-content/uploads/2021/12/07-manjaro-en-linux.jpg" alt="" class="wp-image-12007" srcset="https://danisanchez.net/wp-content/uploads/2021/12/07-manjaro-en-linux.jpg 757w, https://danisanchez.net/wp-content/uploads/2021/12/07-manjaro-en-linux-300x235.jpg 300w" sizes="auto, (max-width: 757px) 100vw, 757px" /></figure>



<p class="wp-block-paragraph">Detenemos el monitor de estado de mysql con Ctrl+Z.</p>



<p class="wp-block-paragraph">Ahora toca securizar mysql ya que por defecto únicamente viene con el usuario root sin contraseña:</p>



<pre class="wp-block-code"><code>sudo mysql_secure_installation</code></pre>



<p class="wp-block-paragraph">Nos pedirá nuestra contraseña de root (de sistema):</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="757" height="337" src="https://danisanchez.net/wp-content/uploads/2021/12/08-manjaro-en-linux.jpg" alt="" class="wp-image-12008" srcset="https://danisanchez.net/wp-content/uploads/2021/12/08-manjaro-en-linux.jpg 757w, https://danisanchez.net/wp-content/uploads/2021/12/08-manjaro-en-linux-300x134.jpg 300w" sizes="auto, (max-width: 757px) 100vw, 757px" /></figure>



<p class="wp-block-paragraph">Ahora nos pregunta si queremos darle una contraseña a la cuenta root de mysql, respondemos que si (Y):</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="759" height="345" src="https://danisanchez.net/wp-content/uploads/2021/12/09-manjaro-en-linux.jpg" alt="" class="wp-image-12009" srcset="https://danisanchez.net/wp-content/uploads/2021/12/09-manjaro-en-linux.jpg 759w, https://danisanchez.net/wp-content/uploads/2021/12/09-manjaro-en-linux-300x136.jpg 300w" sizes="auto, (max-width: 759px) 100vw, 759px" /></figure>



<pre class="wp-block-code"><code>Change the root password? &#91;Y/n] Y</code></pre>



<p class="wp-block-paragraph">Respondemos que si (Y).</p>



<pre class="wp-block-code"><code>New password: **********
Re-enter new password: **********</code></pre>



<p class="wp-block-paragraph">Al resto de preguntas podemos responder que si:</p>



<pre class="wp-block-code"><code>Remove anonymous users? &#91;Y/n] Y</code></pre>



<pre class="wp-block-code"><code>Disallow root login remotely? &#91;Y/n] Y</code></pre>



<pre class="wp-block-code"><code>Remove test database and access to it? &#91;Y/n] Y</code></pre>



<pre class="wp-block-code"><code>Reload privilege tables now? &#91;Y/n] Y</code></pre>



<pre class="wp-block-code"><code>Thanks por using MariaDB!</code></pre>



<p class="wp-block-paragraph">Entramos en MySQL:</p>



<pre class="wp-block-code"><code>sudo mysql -u root</code></pre>



<p class="wp-block-paragraph">Vamos a crear un nuevo usuario distinto al de root que será el que asignemos a las bases de datos que creemos posteriormente:</p>



<pre class="wp-block-code"><code>CREATE USER mi_usuario IDENTIFIED BY 'contraseña';</code></pre>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="818" height="381" src="https://danisanchez.net/wp-content/uploads/2021/12/10-manjaro-en-linux.jpg" alt="" class="wp-image-12012" srcset="https://danisanchez.net/wp-content/uploads/2021/12/10-manjaro-en-linux.jpg 818w, https://danisanchez.net/wp-content/uploads/2021/12/10-manjaro-en-linux-300x140.jpg 300w, https://danisanchez.net/wp-content/uploads/2021/12/10-manjaro-en-linux-768x358.jpg 768w" sizes="auto, (max-width: 818px) 100vw, 818px" /></figure>



<p class="wp-block-paragraph">Podemos salir de MySQL con el comando exit:</p>



<pre class="wp-block-code"><code>MariaDB &#91;(none)]&gt; exit;
<strong>Bye</strong></code></pre>



<h2 class="wp-block-heading">Instalación y configuración de PHP</h2>



<p class="wp-block-paragraph">Desde el terminal instalamos la paquetería php y php-apache</p>



<pre class="wp-block-code"><code>sudo pacman -S php php-apache php-gd php-imagick</code></pre>



<p class="wp-block-paragraph"><strong>php-gd y php-imagick</strong> son opcionales, pero los necesitaremos para poder manipular imágenes en WordPress.</p>



<p class="wp-block-paragraph">Como Manjaro es una versión contínua (rolling-release), la versión de PHP será la que haya disponible en el momento que realices la intalación.</p>



<p class="wp-block-paragraph">A la hora de escribir este artículo, la versión instalada es la 8.0.12.</p>



<p class="wp-block-paragraph">Puedes comprobar la versión instalada con el comando php -v:</p>



<pre class="wp-block-code"><code><strong>&#91;dani@ThinkPad-T540p ~]$</strong> php -v
PHP 8.0.12 (cli) (built: Oct 20 2021 16:06:03) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.12, Copyright (c) Zend Technologies</code></pre>



<p class="wp-block-paragraph">Es necesario habilitar y deshabilitar algunos módulos de apache para que PHP8 funcione correctamente en Manjaro:</p>



<ul class="wp-block-list"><li><strong>LoadModule mpm_event_module modules/mod_mpm_event.so (DESHABILITADO).</strong></li><li><strong>LoadModule mpm_prefork_module modules/mod_mpm_prefork.so (HABILITADO).</strong></li></ul>



<p class="wp-block-paragraph">Para ello vamos al archivo de configuración de apache:</p>



<pre class="wp-block-code"><code>sudo nano /etc/httpd/conf/httpd.conf</code></pre>



<p class="wp-block-paragraph">Y localizamos los dos módulos anteriores, comentando el primero y descomentando (o añadiendo si no está) el segundo.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="818" height="515" src="https://danisanchez.net/wp-content/uploads/2021/12/12-manjaro-en-linux.jpg" alt="" class="wp-image-12018" srcset="https://danisanchez.net/wp-content/uploads/2021/12/12-manjaro-en-linux.jpg 818w, https://danisanchez.net/wp-content/uploads/2021/12/12-manjaro-en-linux-300x189.jpg 300w, https://danisanchez.net/wp-content/uploads/2021/12/12-manjaro-en-linux-768x484.jpg 768w" sizes="auto, (max-width: 818px) 100vw, 818px" /></figure>



<p class="wp-block-paragraph">Ahora añadimos al final del archivo las siguientes líneas:</p>



<pre class="wp-block-code"><code>LoadModule php_module modules/libphp.so
AddHandler php-script php
Include conf/extra/php_module.conf</code></pre>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="818" height="515" src="https://danisanchez.net/wp-content/uploads/2021/12/13-manjaro-en-linux.jpg" alt="" class="wp-image-12019" srcset="https://danisanchez.net/wp-content/uploads/2021/12/13-manjaro-en-linux.jpg 818w, https://danisanchez.net/wp-content/uploads/2021/12/13-manjaro-en-linux-300x189.jpg 300w, https://danisanchez.net/wp-content/uploads/2021/12/13-manjaro-en-linux-768x484.jpg 768w" sizes="auto, (max-width: 818px) 100vw, 818px" /></figure>



<p class="wp-block-paragraph">Guardamos con Ctrl+O y salimos con Ctrl+X.</p>



<p class="wp-block-paragraph">Reiniciamos apache para que se apliquen los cambios.</p>



<pre class="wp-block-code"><code>sudo systemctl restart httpd</code></pre>



<p class="wp-block-paragraph">Vamos a probar que PHP funciona correctamente. Para ello vamos a crear un archivo info.php dentro de la carpeta raíz de proyectos de Apache que en Manjaro se encuentra en la ruta <strong>/srv/http</strong>:</p>



<pre class="wp-block-code"><code>sudo nano /srv/http/info.php</code></pre>



<p class="wp-block-paragraph">Y dentro llamamos a la función phpinfo();</p>



<pre class="wp-block-code"><code>&lt;?php
    phpinfo();
?&gt;</code></pre>



<p class="wp-block-paragraph">Guardamos, salimos de nano y nos dirigimos al navegador web, hacia la dirección http://localhost/info.php, donde tendrá que aparecer una pantalla como esta:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="952" height="867" src="https://danisanchez.net/wp-content/uploads/2021/12/14-manjaro-en-linux.jpg" alt="" class="wp-image-12021" srcset="https://danisanchez.net/wp-content/uploads/2021/12/14-manjaro-en-linux.jpg 952w, https://danisanchez.net/wp-content/uploads/2021/12/14-manjaro-en-linux-300x273.jpg 300w, https://danisanchez.net/wp-content/uploads/2021/12/14-manjaro-en-linux-768x699.jpg 768w" sizes="auto, (max-width: 952px) 100vw, 952px" /></figure>



<p class="wp-block-paragraph">Esto significa que tanto Apache como PHP están corriendo correctamente.</p>



<p class="wp-block-paragraph">Ahora, para gestionar las bases de datos de forma más cómoda, vamos a instalar y configurar <strong>phpMyAdmin</strong>, que en Manjaro también requiere de algunas configuraciones adicionales.</p>



<h2 class="wp-block-heading">Instalar y configurar phpMyAdmin</h2>



<p class="wp-block-paragraph">Instalamos el paquete desde un terminal:</p>



<pre class="wp-block-code"><code>sudo pacman -S phpmyadmin</code></pre>



<p class="wp-block-paragraph">Antes de ejecutarlo necesitamos hacer algunas configuraciones en el archivo php.ini situado en la ruta /etc/php/php.ini:</p>



<pre class="wp-block-code"><code>sudo nano /etc/php/php.ini</code></pre>



<p class="wp-block-paragraph">Y descomentamos las siguientes líneas (eliminando el # o el ; del inicio):</p>



<pre class="wp-block-code"><code>extension=bz2
extension=gd
extension=mysqli
extension=iconv
extension=pdo_mysql</code></pre>



<p class="wp-block-paragraph">Ya que estamos, podemos aprovechar y modificar algunos parámetros para mejorar la experiencia con WordPress o cualquier otro CMS. Los parámetros mínimos aconsejables serían:</p>



<pre class="wp-block-code"><code>memory_limit = 128M
post_max_size = 64M
max_execution_time = 180
upload_max_filesize = 64M
max_input_time = 180
max_input_vars = 3000</code></pre>



<p class="wp-block-paragraph">Los localizamos con Ctrl+W y los modificamos uno a uno.</p>



<p class="wp-block-paragraph">Tras finalizar, guardamos con Ctrl+O y salimos con Ctrl+X.</p>



<p class="wp-block-paragraph">Y reiniciamos apache ara que se aplique los cambios:</p>



<pre class="wp-block-code"><code>sudo systemctl restart httpd</code></pre>



<p class="wp-block-paragraph">Ahora necesitamos crear un archivo de configuración para phpMyAdmin que situaremos en la ruta:</p>



<pre class="wp-block-code"><code>sudo nano /etc/httpd/conf/extra/phpmyadmin.conf</code></pre>



<p class="wp-block-paragraph">Y dentro insertamos las siguientes líneas:</p>



<pre class="wp-block-code"><code>Alias /phpmyadmin "/usr/share/webapps/phpMyAdmin"
&lt;Directory "/usr/share/webapps/phpMyAdmin"&gt;
DirectoryIndex index.php
AllowOverride All
Options FollowSymlinks
Require all granted
&lt;/Directory&gt;</code></pre>



<p class="wp-block-paragraph">Guardamos y salimos.</p>



<p class="wp-block-paragraph">Volvemos al archivo de configuración de Apache:</p>



<pre class="wp-block-code"><code>sudo nano /etc/httpd/conf/httpd.conf</code></pre>



<p class="wp-block-paragraph">Y al final del archivo añadimos la siguiente línea:</p>



<pre class="wp-block-code"><code>Include conf/extra/phpmyadmin.conf</code></pre>



<p class="wp-block-paragraph">Ya estaríamos listos para inciar phpMyAdmin, pero para evitar que aparezcan algunos mensajes de error, configuraremos la frase secreta del panel editando:</p>



<pre class="wp-block-code"><code>sudo nano /etc/webapps/phpmyadmin/config.inc.php</code></pre>



<p class="wp-block-paragraph">Y localizamos la línea:</p>



<pre class="wp-block-code"><code>$cfg&#91;'blowfish_secret'] = 'ESCRIBE_UNA_CLAVE_LARGA_Y_COMPLEJA'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH!$ /**</code></pre>



<p class="wp-block-paragraph">Y al final del archivo añadimos:</p>



<pre class="wp-block-code"><code>$cfg&#91;'TempDir'] = '/tmp/phpmyadmin';</code></pre>



<p class="wp-block-paragraph">Reiniciamos Apache.</p>



<p class="wp-block-paragraph">Abrimos el navegador y nos dirigimos a http://localhost/phpmyadmin, donde deberíamos ver la pantalla de login:</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="390" height="437" src="https://danisanchez.net/wp-content/uploads/2021/12/15-manjaro-en-linux.jpg" alt="" class="wp-image-12026" srcset="https://danisanchez.net/wp-content/uploads/2021/12/15-manjaro-en-linux.jpg 390w, https://danisanchez.net/wp-content/uploads/2021/12/15-manjaro-en-linux-268x300.jpg 268w" sizes="auto, (max-width: 390px) 100vw, 390px" /></figure>
</div>


<p class="wp-block-paragraph">Por último vamos a habilitar el modulo ReWrite en Apache para que  podamos habilitar las URLs amigables en WordPress (en los enlaces permanentes).</p>



<h2 class="wp-block-heading">Habilitar mod_rewrite para URLs amigables en WordPress</h2>



<p class="wp-block-paragraph">Nos dirimos al archivo de configuración de Apache:</p>



<pre class="wp-block-code"><code>sudo nano /etc/httpd/conf/httpd.conf</code></pre>



<p class="wp-block-paragraph"> Y localizamos la parte de código donde empieza <strong>&lt;Directory «/srv/http»&gt;</strong></p>



<p class="wp-block-paragraph">Un poco mas abajo modificamos la línea:</p>



<p class="wp-block-paragraph">AllowOverride None por <strong>AllowOverride All</strong></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="815" height="627" src="https://danisanchez.net/wp-content/uploads/2021/12/16-manjaro-en-linux.jpg" alt="" class="wp-image-12028" srcset="https://danisanchez.net/wp-content/uploads/2021/12/16-manjaro-en-linux.jpg 815w, https://danisanchez.net/wp-content/uploads/2021/12/16-manjaro-en-linux-300x231.jpg 300w, https://danisanchez.net/wp-content/uploads/2021/12/16-manjaro-en-linux-768x591.jpg 768w" sizes="auto, (max-width: 815px) 100vw, 815px" /></figure>



<p class="wp-block-paragraph">Y localizamos y descomentamos la línea:</p>



<pre class="wp-block-code"><code>LoadModule rewrite_module modules/mod_rewrite.so</code></pre>



<p class="wp-block-paragraph">Reiniciamos Apache y ya tendríamos listo el Stack LAMP para Manjaro y optimizado para WordPress.</p>



<p class="wp-block-paragraph">Espero que este artículo te haya servido y lo compartas si ha sido así. Nos vemos en el siguiente post <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://danisanchez.net/instalar-lamp-en-manjaro-linux-apache-mysql-y-php/feed/</wfw:commentRss>
			<slash:comments>13</slash:comments>
		
		
			</item>
		<item>
		<title>Instalar fuentes en Debian, Ubuntu y derivados desde el terminal</title>
		<link>https://danisanchez.net/instalar-fuentes-en-debian-ubuntu-y-derivados-desde-el-terminal/</link>
					<comments>https://danisanchez.net/instalar-fuentes-en-debian-ubuntu-y-derivados-desde-el-terminal/#respond</comments>
		
		<dc:creator><![CDATA[dani.sanchez]]></dc:creator>
		<pubDate>Fri, 24 Sep 2021 11:11:45 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>
		<guid isPermaLink="false">https://www.gestionatuweb.net/?p=11821</guid>

					<description><![CDATA[Tip rápido para añadir nuevas fuentes en Debian, Ubuntu y derivados por terminal. Descarga el paquete de fuentes y descromprímelo en un nuevo directorio, llamado a ser posible como el nombre de la fuente, ejemplo: source-sans-pro Abre un terminal y copia el directorio con las fuentes al directorio de fuentes de tu distro, que normalmente [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Tip rápido para añadir nuevas fuentes en Debian, Ubuntu y derivados por terminal.</p>



<p class="wp-block-paragraph">Descarga el paquete de fuentes y descromprímelo en un nuevo directorio, llamado a ser posible como el nombre de la fuente, ejemplo: <strong>source-sans-pro</strong></p>



<p class="wp-block-paragraph">Abre un terminal y copia el directorio con las fuentes al directorio de fuentes de tu distro, que normalmente se encontrará en <em>/usr/share/fonts/truetype</em></p>



<pre class="wp-block-code"><code>$ cp -R source-sans-pro /usr/share/fonts/truetype</code></pre>



<p class="wp-block-paragraph">Actualiza la caché de fuentes:</p>



<pre class="wp-block-code"><code>$ fc-cache -f -v</code></pre>



<p class="wp-block-paragraph">Listo. Ya podrás usar las nuevas fuentes en tus aplicaciones.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://danisanchez.net/instalar-fuentes-en-debian-ubuntu-y-derivados-desde-el-terminal/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Android Studio en Debian 10 Buster y derivadas (no snap ni flatpak)</title>
		<link>https://danisanchez.net/android-studio-en-debian-10-buster-y-derivadas-no-snap-ni-flatpak/</link>
					<comments>https://danisanchez.net/android-studio-en-debian-10-buster-y-derivadas-no-snap-ni-flatpak/#comments</comments>
		
		<dc:creator><![CDATA[dani.sanchez]]></dc:creator>
		<pubDate>Wed, 08 Apr 2020 07:17:57 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Publicaciones]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[linux]]></category>
		<guid isPermaLink="false">https://www.gestionatuweb.net/?p=6568</guid>

					<description><![CDATA[Android Studio está disponible en las principales distribuciones GNU/Linux como paquete snap y flatpak. Esta paquetería ya integra todas las librerías necesarias para que Android Studio se ejecute y funcione. No obstante, es posible realizar la instalación del paquete oficial para aquellos a los que no acaba de convencerles este tipo de paquetería. En este [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Android Studio</strong> está disponible en las principales distribuciones GNU/Linux como paquete snap y flatpak. Esta paquetería ya integra todas las librerías necesarias para que Android Studio se ejecute y funcione.</p>



<p class="wp-block-paragraph">No obstante, es posible realizar la instalación del paquete oficial para aquellos a los que no acaba de convencerles este tipo de paquetería.</p>



<p class="wp-block-paragraph">En este artículo veremos cómo hacer la instalación en <strong>Debian 10 Buster</strong>, aunque seguramente funcionará en todas sus distros «hijas» (Ubuntu, Mint&#8230;).</p>



<p class="wp-block-paragraph">Primero vamos a preparar el sistema con todo lo necesario para que Android Studio funcione.</p>



<h3 class="wp-block-heading">Instalar Java en su última versión</h3>



<pre class="wp-block-code"><code>sudo apt install openjdk-11-jre</code></pre>



<h3 class="wp-block-heading">Habilitar la arquitectura 32 bits para sistemas de 64 bits</h3>



<pre class="wp-block-code"><code>sudo dpkg --add-architecture i386
apt update</code></pre>



<h3 class="wp-block-heading">Instalar las siguientes librerías para sistemas de 64 bits</h3>



<pre class="wp-block-code"><code>sudo apt install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 libbz2-1.0:i386</code></pre>



<h3 class="wp-block-heading">Descargar Android Studio</h3>



<p class="wp-block-paragraph">Desde la web oficial, descargamos la última versión de Android Studio:</p>



<p class="wp-block-paragraph"><a href="https://developer.android.com/studio?hl=es-419" target="_blank" rel="noreferrer noopener">https://developer.android.com/studio?hl=es-419</a></p>



<p class="wp-block-paragraph"> Una vez descargada la descomprimimos y movemos al directorio <strong>/opt</strong></p>



<pre class="wp-block-code"><code>sudo cp -R android-studio /opt</code></pre>



<h3 class="wp-block-heading">Ejecutar la instalación</h3>



<p class="wp-block-paragraph">Navega hasta la ruta:</p>



<pre class="wp-block-code"><code>cd /opt/android-studio/bin/</code></pre>



<p class="wp-block-paragraph">Y ejecuta el instalador</p>



<pre class="wp-block-code"><code>sudo ./studio.sh</code></pre>



<p class="wp-block-paragraph">Y seguir las instrucciones (instalación guiada).</p>



<h3 class="wp-block-heading">Crear un lanzador en nuestro menú de aplicaciones</h3>



<p class="wp-block-paragraph">Podemos lanzar cómodamente Android Studio desde nuestro menú de aplicaciones, creando el lanzador desde la pantalla de inicio, haciendo clic en <strong>Configure</strong> y <strong>Create Desktop Entry</strong>.</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://danisanchez.net/wp-content/uploads/2020/04/01-crear-lanzador-1-1024x800.jpg" alt="" class="wp-image-6569"/></figure>



<p class="wp-block-paragraph">Así ya estará disponible desde nuestro menú de aplicaciones o lanzador habitual:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="567" height="438" src="https://danisanchez.net/wp-content/uploads/2020/04/02-lanzador-en-menu.jpg" alt="" class="wp-image-6570" srcset="https://danisanchez.net/wp-content/uploads/2020/04/02-lanzador-en-menu.jpg 567w, https://danisanchez.net/wp-content/uploads/2020/04/02-lanzador-en-menu-300x232.jpg 300w" sizes="auto, (max-width: 567px) 100vw, 567px" /></figure>



<p class="wp-block-paragraph">Y a disfrutar. Nos vemos en el siguiente post <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://danisanchez.net/android-studio-en-debian-10-buster-y-derivadas-no-snap-ni-flatpak/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>Instalar LAMP y phpMyAdmin en MX Linux 19</title>
		<link>https://danisanchez.net/instalar-lamp-y-phpmyadmin-en-mx-linux-19/</link>
					<comments>https://danisanchez.net/instalar-lamp-y-phpmyadmin-en-mx-linux-19/#comments</comments>
		
		<dc:creator><![CDATA[dani.sanchez]]></dc:creator>
		<pubDate>Wed, 08 Jan 2020 09:28:48 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Publicaciones]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mx linux]]></category>
		<category><![CDATA[phpmyadmin]]></category>
		<guid isPermaLink="false">https://www.gestionatuweb.net/?p=6403</guid>

					<description><![CDATA[Hace unos días publicábamos un post sobre la instalación del conjunto de herramientas para servidor web LAMP (Linux, Apache, MySQL, PHP) en distribuciones Ubuntu y derivadas. En este artículo veremos cómo hacerlo en una distro muy especial, que ha conseguido en los últimos meses una gran popularidad manteniéndose en el primer puesto en Distrowatch con [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Hace unos días publicábamos un <a href="https://danisanchez.net/instalar-lamp-linux-apache-mysql-y-php-en-gnu-linux-ubuntu-y-derivadas/" target="_blank" rel="noreferrer noopener" aria-label="post (opens in a new tab)"><strong>post</strong></a> sobre la instalación del conjunto de herramientas para servidor web LAMP (Linux, Apache, MySQL, PHP) en distribuciones Ubuntu y derivadas.</p>



<p class="wp-block-paragraph">En este artículo veremos cómo hacerlo en una distro muy especial, que ha conseguido en los últimos meses una gran popularidad manteniéndose en el primer puesto en <a rel="noreferrer noopener" aria-label="Distrowatch (opens in a new tab)" href="https://distrowatch.com/?language=ES" target="_blank">Distrowatch</a> con diferencia, <a href="https://www.google.com/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=1&amp;cad=rja&amp;uact=8&amp;ved=2ahUKEwjD04z51fPmAhWQxIUKHWNiBmwQFjAAegQIBRAB&amp;url=https%3A%2F%2Fmxlinux.org%2F&amp;usg=AOvVaw0CzywJHWlYIWxCmVSTRStQ" target="_blank" rel="noreferrer noopener" aria-label="MX Linux (opens in a new tab)"><strong>MX Linux</strong></a>.</p>



<p class="wp-block-paragraph">Además, phpMyAdmin no se encuentra en los repositorios oficiales de Debian, por lo que la instalación y configuración debe hacerse manualmente.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Artículo disponible en vídeo</p></blockquote>



<iframe loading="lazy" width="100%" height="315" src="https://www.youtube-nocookie.com/embed/BJtW3b_IBeI" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="wp-block-paragraph">Empezamos&#8230;</p>



<h2 class="wp-block-heading">Paso 1. Instalar Apache</h2>



<pre class="wp-block-code"><code>sudo apt install apache2</code></pre>



<h4 class="wp-block-heading">Comandos básicos para Apache</h4>



<pre class="wp-block-code"><code>sudo service apache2 start
sudo service apache2 restart
sudo service apache2 reload
sudo service apache2 stop</code></pre>



<p class="wp-block-paragraph">Una vez instalado e iniciado (normalmente se inicia junto al sistema), comprobar en la dirección http://localhost/ del navegador:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="962" height="818" src="https://danisanchez.net/wp-content/uploads/2020/01/01-apache-localhost.jpg" alt="" class="wp-image-6405" srcset="https://danisanchez.net/wp-content/uploads/2020/01/01-apache-localhost.jpg 962w, https://danisanchez.net/wp-content/uploads/2020/01/01-apache-localhost-300x255.jpg 300w, https://danisanchez.net/wp-content/uploads/2020/01/01-apache-localhost-768x653.jpg 768w" sizes="auto, (max-width: 962px) 100vw, 962px" /></figure>



<h2 class="wp-block-heading">Paso 2. Instalar MariaDB</h2>



<pre class="wp-block-code"><code>sudo apt install mariadb-server
sudo apt install mariadb-client</code></pre>



<h4 class="wp-block-heading">Comandos básicos para MariaDB</h4>



<pre class="wp-block-code"><code>sudo service mysql start
sudo service mysql restart
sudo service mysql stop
sudo service mysql status</code></pre>



<h4 class="wp-block-heading">Securizar la instalación de MySQL</h4>



<pre class="wp-block-code"><code>sudo mysql_secure_installation</code></pre>



<p class="wp-block-paragraph">Nos preguntará si queremos cambiar la constraseña de root, en caso afirmativo, introducirla 2 veces.</p>



<h4 class="wp-block-heading">Iniciar consola MySQL</h4>



<pre class="wp-block-code"><code>sudo mysql -u root -p</code></pre>



<h4 class="wp-block-heading">Crear usuario de MySQL</h4>



<p class="wp-block-paragraph">Dentro del prompt de MySQL ejecutar la orden:</p>



<pre class="wp-block-code"><code>CREATE USER nombre_usuario IDENTIFIED BY 'clave_usuario';</code></pre>



<h4 class="wp-block-heading">Crear nueva base de datos</h4>



<pre class="wp-block-code"><code>CREATE DATABASE nombre_bbdd;</code></pre>



<h4 class="wp-block-heading">Asignar usuario MySQL con privilegios a una base de datos</h4>



<pre class="wp-block-code"><code>GRANT ALL PRIVILEGES ON nombre_bbdd.* TO nombre_usuario;
FLUSH PRIVILEGES;</code></pre>



<h2 class="wp-block-heading">Paso 3. Instalar PHP</h2>



<p class="wp-block-paragraph">Estos comandos pueden variar dependiendo de la versión de PHP disponible en los respositorios (7.2, 7.3, 7.4&#8230;)</p>



<pre class="wp-block-code"><code>sudo apt install php7.3 php7.3-fpm php7.3-gd php7.3-curl php7.3-mysql libapache2-mod-php7.3

sudo service apache2 restart</code></pre>



<h4 class="wp-block-heading">Comprobar si PHP se ha instalado correctamente</h4>



<pre class="wp-block-code"><code>Creamos un archivo info.php con el editor nano dentro del directorio de proyectos de Apache (var/www/html)</code></pre>



<pre class="wp-block-code"><code>sudo nano /var/www/html/info.php</code></pre>



<p class="wp-block-paragraph">Escribimos:</p>



<pre class="wp-block-code"><code>&lt;?php echo phpinfo(); ?></code></pre>



<p class="wp-block-paragraph">Guardamos con Ctrl+O y salimos con Ctrl+X</p>



<p class="wp-block-paragraph">En el navegador nos dirigimos a http://localhost/info.php donde debe aparecer una pantalla similar a:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="962" height="818" src="https://danisanchez.net/wp-content/uploads/2020/01/02-phpinfo.jpg" alt="" class="wp-image-6407" srcset="https://danisanchez.net/wp-content/uploads/2020/01/02-phpinfo.jpg 962w, https://danisanchez.net/wp-content/uploads/2020/01/02-phpinfo-300x255.jpg 300w, https://danisanchez.net/wp-content/uploads/2020/01/02-phpinfo-768x653.jpg 768w" sizes="auto, (max-width: 962px) 100vw, 962px" /></figure>



<h2 class="wp-block-heading">Paso 4. Configuraciones óptimas para WordPress (y otros CMS)</h2>



<h4 class="wp-block-heading">Activar el módulo REWRITE</h4>



<p class="wp-block-paragraph">Imprescindible para que funcionen los enlaces permanentes (slugs) de WordPress.</p>



<pre class="wp-block-code"><code>sudo a2enmod rewrite
sudo service apache2 restart</code></pre>



<p class="wp-block-paragraph">Editar el archivo de configuración con nano:</p>



<pre class="wp-block-code"><code>sudo nano /etc/apache2/sites-available/000-default.conf</code></pre>



<p class="wp-block-paragraph">Sobre la parte final del archivo, incluir:</p>



<pre class="wp-block-code"><code>&lt;Directory "/var/www/html">
    AllowOverride All
&lt;/Directory></code></pre>



<pre class="wp-block-code"><code>sudo service apache2 restart</code></pre>



<h4 class="wp-block-heading">Ajustes óptimos en el archivo php.ini</h4>



<p class="wp-block-paragraph">Abrimos el archivo con nano:</p>



<pre class="wp-block-code"><code>sudo nano /etc/php/7.3/apache2/php.ini</code></pre>



<p class="wp-block-paragraph">Cambiamos los valores de los siguientes parámetros:</p>



<pre class="wp-block-code"><code>memory_limit = 128M
post_max_size = 64M
max_execution_time = 180
upload_max_filesize = 64M
max_input_time = 180
max_input_vars = 3000</code></pre>



<h2 class="wp-block-heading">Paso 5. Instalar phpMyAdmin</h2>



<p class="wp-block-paragraph">Instalar los siguientes complementos de PHP (siempre sustituyendo el número de versión de PHP por el disponible en los repositorios):</p>



<pre class="wp-block-code"><code>sudo apt install php-imagick php-phpseclib php-gettext php7.3-imap php7.3-zip php7.3-xml php7.3-mbstring php7.3-bz2 php7.3-intl 

sudo service apache2 restart</code></pre>



<h4 class="wp-block-heading">Descarga la última versión estable de phpMyAdmin</h4>



<p class="wp-block-paragraph"><a href="https://www.phpmyadmin.net/downloads/">https://www.phpmyadmin.net/downloads/</a></p>



<p class="wp-block-paragraph">Podemos descargar directamente desde el terminal (asegúrate de cambiar el número de versión si es distinto).</p>



<pre class="wp-block-code"><code>wget https://files.phpmyadmin.net/phpMyAdmin/4.9.3/phpMyAdmin-4.9.3-all-languages.zip</code></pre>



<p class="wp-block-paragraph">Descomprimir con unzip (si no lo tenemos instalado ejecutamos antes)</p>



<pre class="wp-block-code"><code>sudo apt install unzip
unzip phpMyAdmin-4.9.3-all-languages.zip</code></pre>



<p class="wp-block-paragraph">Mover el directorio descomprimido a /usr/share/phpmyadmin</p>



<pre class="wp-block-code"><code>sudo mv phpMyAdmin-4.9.3-all-languages /usr/share/phpmyadmin</code></pre>



<p class="wp-block-paragraph">Hacer que el usuario del servidor web (www-data) sea propietario del directorio:</p>



<pre class="wp-block-code"><code>sudo chown -R www-data:www-data /usr/share/phpmyadmin</code></pre>



<h4 class="wp-block-heading">Crear la base de datos de phpMyAdmin y asignarla a nuestro usuario</h4>



<pre class="wp-block-code"><code>sudo mysql -u root -p
CREATE DATABASE phpmyadmin;
GRANT ALL PRIVILEGES ON phpmyadmin.* TO nombre_usuario;
FLUSH PRIVILEGES;</code></pre>



<h4 class="wp-block-heading">Crear el archivo de configuración de phpMyAdmin para Apache</h4>



<pre class="wp-block-code"><code>sudo nano /etc/apache2/conf-available/phpmyadmin.conf</code></pre>



<p class="wp-block-paragraph">Insertar el código:</p>



<pre class="wp-block-code"><code># phpMyAdmin default Apache configuration

Alias /phpmyadmin /usr/share/phpmyadmin

&lt;Directory /usr/share/phpmyadmin>
    Options SymLinksIfOwnerMatch
    DirectoryIndex index.php

    &lt;IfModule mod_php5.c>
        &lt;IfModule mod_mime.c>
            AddType application/x-httpd-php .php
        &lt;/IfModule>
        &lt;FilesMatch ".+\.php$">
            SetHandler application/x-httpd-php
        &lt;/FilesMatch>

        php_value include_path .
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
        php_admin_value mbstring.func_overload 0
    &lt;/IfModule>
    &lt;IfModule mod_php.c>
        &lt;IfModule mod_mime.c>
            AddType application/x-httpd-php .php
        &lt;/IfModule>
        &lt;FilesMatch ".+\.php$">
            SetHandler application/x-httpd-php
        &lt;/FilesMatch>

        php_value include_path .
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
        php_admin_value mbstring.func_overload 0
    &lt;/IfModule>

&lt;/Directory>

# Disallow web access to directories that don't need it
&lt;Directory /usr/share/phpmyadmin/templates>
    Require all denied
&lt;/Directory>
&lt;Directory /usr/share/phpmyadmin/libraries>
    Require all denied
&lt;/Directory>
&lt;Directory /usr/share/phpmyadmin/setup/lib>
    Require all denied
&lt;/Directory></code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Fuente del código:</p><cite><a href="https://www.linuxbabe.com/debian/install-phpmyadmin-apache-lamp-debian-10-buster" target="_blank" rel="noreferrer noopener" aria-label="https://www.linuxbabe.com/debian/install-phpmyadmin-apache-lamp-debian-10-buster (opens in a new tab)">https://www.linuxbabe.com/debian/install-phpmyadmin-apache-lamp-debian-10-buster</a></cite></blockquote>



<p class="wp-block-paragraph">Habilitar el snippet para la configuración:</p>



<pre class="wp-block-code"><code>sudo a2enconf phpmyadmin.conf</code></pre>



<h4 class="wp-block-heading">Crear el directorio temporal de phpMyAdmin</h4>



<pre class="wp-block-code"><code>sudo mkdir -p /var/lib/phpmyadmin/tmp</code></pre>



<p class="wp-block-paragraph">Hacer que el usuario del servidor web (www-data) sea propietario del directorio:</p>



<pre class="wp-block-code"><code>sudo chown www-data:www-data /var/lib/phpmyadmin/tmp</code></pre>



<pre class="wp-block-code"><code>sudo service apache2 reload</code></pre>



<p class="wp-block-paragraph">Iniciar phpMyAdmin en la ruta http://localhost/phpmyadmin</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="962" height="818" src="https://danisanchez.net/wp-content/uploads/2020/01/03-phpmyadmin.jpg" alt="" class="wp-image-6409" srcset="https://danisanchez.net/wp-content/uploads/2020/01/03-phpmyadmin.jpg 962w, https://danisanchez.net/wp-content/uploads/2020/01/03-phpmyadmin-300x255.jpg 300w, https://danisanchez.net/wp-content/uploads/2020/01/03-phpmyadmin-768x653.jpg 768w" sizes="auto, (max-width: 962px) 100vw, 962px" /></figure>



<p class="wp-block-paragraph">Si tienes algún problema, no dudes en dejarlo en los comentarios. Espero que te haya servido el artículo y disfrutes de tu MX Linux.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://danisanchez.net/instalar-lamp-y-phpmyadmin-en-mx-linux-19/feed/</wfw:commentRss>
			<slash:comments>9</slash:comments>
		
		
			</item>
	</channel>
</rss>
