<?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/category/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>Instalar LAMP (Linux, Apache, MySQL, PHP) en Opensuse Tumbleweed</title>
		<link>https://danisanchez.net/instalar-lamp-linux-apache-mysql-php-en-opensuse-tumbleweed/</link>
					<comments>https://danisanchez.net/instalar-lamp-linux-apache-mysql-php-en-opensuse-tumbleweed/#respond</comments>
		
		<dc:creator><![CDATA[dani.sanchez]]></dc:creator>
		<pubDate>Mon, 09 Jan 2023 12:55:56 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[opensuse]]></category>
		<guid isPermaLink="false">https://danisanchez.net/?p=13640</guid>

					<description><![CDATA[En este artículo vamos a ver cómo: Guía disponible en vídeo Instalar el servidor web Apache en Opensuse Tumbleweed Nos dirigimos a un terminal y escribimos: Comandos básicos para gestionar el servidor Habilitar el servidor Apache: Iniciar el servidor Apache: Detener el servidor Apache: Reiniciar el servidor Apache: Vamos a probar que el servidor está [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">En este artículo vamos a ver cómo:</p>



<ul class="wp-block-list">
<li>Instalar el <strong>servidor web</strong> (<strong>Apache</strong>).</li>



<li>Instalar el <strong>gestor de bases de datos MariaDB</strong>.</li>



<li>Instalar <strong>PHP</strong>.</li>



<li>Configurar <strong>php.ini</strong> con los valores óptimos para WordPress.</li>



<li>Instalar <strong>phpMyAdmin</strong> para gestionar las bases de datos visualmente.</li>



<li><strong>Habilitar las URLs amigables</strong> (mod rewrite).</li>
</ul>



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



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



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



<p class="wp-block-paragraph">Nos dirigimos a un terminal y escribimos:</p>



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



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



<p class="wp-block-paragraph"><strong>Habilitar el servidor Apache:</strong></p>



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



<p class="wp-block-paragraph"><strong>Iniciar el servidor Apache:</strong></p>



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



<p class="wp-block-paragraph"><strong>Detener el servidor Apache:</strong></p>



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



<p class="wp-block-paragraph"><strong>Reiniciar el servidor Apache:</strong></p>



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



<p class="wp-block-paragraph">Vamos a probar que el servidor está activo y funciona, para ello crearemos un archivo <em>index.html</em> dentro del directorio web, que en Opensuse se encuentra en <em>/srv/www/htdocs/</em></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 mi sitio web!&lt;/h1&gt;&lt;/body&gt;
&lt;/html&gt;</code></pre>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="816" height="558" src="https://danisanchez.net/wp-content/uploads/2023/01/01-lamp-en-opensuse.webp" alt="LAMP en Opensuse" class="wp-image-13642" srcset="https://danisanchez.net/wp-content/uploads/2023/01/01-lamp-en-opensuse.webp 816w, https://danisanchez.net/wp-content/uploads/2023/01/01-lamp-en-opensuse-300x205.webp 300w, https://danisanchez.net/wp-content/uploads/2023/01/01-lamp-en-opensuse-768x525.webp 768w" sizes="auto, (max-width: 816px) 100vw, 816px" /></figure>



<p class="wp-block-paragraph">Nos dirigimos al navegador web hacia la dirección <em>http://localhost</em> y veremos una pantalla como esta:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="990" height="718" src="https://danisanchez.net/wp-content/uploads/2023/01/02-lamp-en-opensuse.webp" alt="" class="wp-image-13643" srcset="https://danisanchez.net/wp-content/uploads/2023/01/02-lamp-en-opensuse.webp 990w, https://danisanchez.net/wp-content/uploads/2023/01/02-lamp-en-opensuse-300x218.webp 300w, https://danisanchez.net/wp-content/uploads/2023/01/02-lamp-en-opensuse-768x557.webp 768w" sizes="auto, (max-width: 990px) 100vw, 990px" /></figure>



<h2 class="wp-block-heading">Instalar MariaDB en Opensuse Tumbleweed</h2>



<p class="wp-block-paragraph">Nos dirigimos a un terminal e instalamos los siguientes paquetes:</p>



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



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



<p class="wp-block-paragraph"><strong>Habilitar el servidor MariaDB:</strong></p>



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



<p class="wp-block-paragraph"><strong>Iniciar el servidor MariaDB:</strong></p>



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



<p class="wp-block-paragraph"><strong>Parar el servidor MariaDB:</strong></p>



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



<p class="wp-block-paragraph"><strong>Reiniciar el servidor MariaDB:</strong></p>



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



<h3 class="wp-block-heading">Securizar MariaDB</h3>



<p class="wp-block-paragraph">Por defecto, el gestor de bases de datos viene con el usuario root sin contraseña. Vamos a asignar una contraseña ejecutando:</p>



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



<p class="wp-block-paragraph">Nos preguntará si queremos asignar una contraseña al usuario root, contestamos que si:</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">Nos hará una serie de preguntas sobre si queremos eliminar usuarios anónimos, borrar las tablas de test, etc. Podemos contestar afimartívamente 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>



<p class="wp-block-paragraph">Ahora entraremos en mysql:</p>



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



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



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



<p class="wp-block-paragraph">Creamos una nueva base de datos:</p>



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



<p class="wp-block-paragraph">Y asignamos nuestro usuario anterior a la nueva base de datos con todos los privilegios:</p>



<pre class="wp-block-code"><code>GRANT ALL PRIVILEGES ON mibase.* TO mi_usuario;</code></pre>



<p class="wp-block-paragraph">Para nuevas bases de datos el proceso sería el mismo: Crear la base de datos y asignar nuestro usuario con todos los privilegios.</p>



<p class="wp-block-paragraph">Tras la asignación de nuestro usuario a la nueva base de datos no está de más hacer una limpieza de la caché almacenada con:</p>



<pre class="wp-block-code"><code>FLUSH PRIVILEGES;</code></pre>



<h2 class="wp-block-heading">Instalar PHP en Opensuse Tumbleweed</h2>



<p class="wp-block-paragraph">Como estamos en una distro <em>rolling-release</em>, las versiones PHP se van actualizando sobre la marcha, por lo que es posible que la versión de este tutorial ya sea más antigua que la que hay actualmente en los repositorios. Para ello podríamos comprobar qué versión existe actualmente en los repositorios, abriendo <em>YaST Software</em> y localizando los paquetes <em>php</em>:</p>



<figure class="wp-block-image size-large"><a href="https://danisanchez.net/wp-content/uploads/2023/01/04-lamp-en-opensuse.webp" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="1024" height="636" src="https://danisanchez.net/wp-content/uploads/2023/01/04-lamp-en-opensuse-1024x636.webp" alt="" class="wp-image-13648" srcset="https://danisanchez.net/wp-content/uploads/2023/01/04-lamp-en-opensuse-1024x636.webp 1024w, https://danisanchez.net/wp-content/uploads/2023/01/04-lamp-en-opensuse-300x186.webp 300w, https://danisanchez.net/wp-content/uploads/2023/01/04-lamp-en-opensuse-768x477.webp 768w, https://danisanchez.net/wp-content/uploads/2023/01/04-lamp-en-opensuse.webp 1474w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Click para ampliar</figcaption></figure>



<p class="wp-block-paragraph">En este momento la versión de php en los repositorios de Opensuse Tumbleweed es la 8, por lo que instalamos los paquetes corrrespondientes a esta versión:</p>



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



<p class="wp-block-paragraph">Y añadimos la siguiente línea al archivo de configuración /etc/apache2/mod_mime-defaults.conf</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 loading="lazy" decoding="async" width="816" height="558" src="https://danisanchez.net/wp-content/uploads/2023/01/03-lamp-en-opensuse.webp" alt="" class="wp-image-13649" srcset="https://danisanchez.net/wp-content/uploads/2023/01/03-lamp-en-opensuse.webp 816w, https://danisanchez.net/wp-content/uploads/2023/01/03-lamp-en-opensuse-300x205.webp 300w, https://danisanchez.net/wp-content/uploads/2023/01/03-lamp-en-opensuse-768x525.webp 768w" sizes="auto, (max-width: 816px) 100vw, 816px" /></figure>



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



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



<p class="wp-block-paragraph">Habilitamos <em>mod-php</em> con el comando:</p>



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



<p class="wp-block-paragraph">Y volvemos a reiniciar Apache:</p>



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



<p class="wp-block-paragraph">Para comprobar si PHP se está ejecutando correctamente crearemos un archivo en el directorio web /<em>srv/www/htdocs/info.php</em> con esta línea:</p>



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



<p class="wp-block-paragraph">Si nos dirigimos a la dirección <em>http://localhost/info.php</em> deberemos ver una página similar a esta con toda la información sobre PHP:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="751" src="https://danisanchez.net/wp-content/uploads/2023/01/05-lamp-en-opensuse-1024x751.webp" alt="" class="wp-image-13650" srcset="https://danisanchez.net/wp-content/uploads/2023/01/05-lamp-en-opensuse-1024x751.webp 1024w, https://danisanchez.net/wp-content/uploads/2023/01/05-lamp-en-opensuse-300x220.webp 300w, https://danisanchez.net/wp-content/uploads/2023/01/05-lamp-en-opensuse-768x563.webp 768w, https://danisanchez.net/wp-content/uploads/2023/01/05-lamp-en-opensuse.webp 1057w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h4 class="wp-block-heading">Ampliar los parámetros en php.ini</h4>



<p class="wp-block-paragraph">Vamos a cambiar algunos parámetros de PHP editando su archivo de configuración (<em>php.ini</em>) para optimizarlo para WordPress. Para ello editamos el archivo:</p>



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



<p class="wp-block-paragraph">Y ampliamos 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 = 5000</code></pre>



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



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



<h2 class="wp-block-heading">Instalar phpMyAdmin en Opensuse Tumbleweed</h2>



<p class="wp-block-paragraph">Por último vamos a instalar el gestor visual de bases de datos <em>phpMyAdmin</em> escribiendo en el terminal:</p>



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



<p class="wp-block-paragraph">Una vez instalado nos dirigimos a la dirección <em>http://localhost/phpMyAdmin</em> (importante respetar las mayúsculas y minúsculas para no tener problemas de acceso):</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="751" src="https://danisanchez.net/wp-content/uploads/2023/01/06-lamp-en-opensuse-1024x751.webp" alt="" class="wp-image-13651" srcset="https://danisanchez.net/wp-content/uploads/2023/01/06-lamp-en-opensuse-1024x751.webp 1024w, https://danisanchez.net/wp-content/uploads/2023/01/06-lamp-en-opensuse-300x220.webp 300w, https://danisanchez.net/wp-content/uploads/2023/01/06-lamp-en-opensuse-768x563.webp 768w, https://danisanchez.net/wp-content/uploads/2023/01/06-lamp-en-opensuse.webp 1057w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Para acceder podemos usar el usuario y contraseña de MariaDB que creamos anteriormente.</p>



<h2 class="wp-block-heading">Habilitar las URLs amigables mod_rewrite en Opensuse Tumbleweed</h2>



<p class="wp-block-paragraph">Habilitamos el módulo mod_rewrite:</p>



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



<p class="wp-block-paragraph">Editamos el archivo de configuración de Apache situado en <em>/etc/apache2/default-server.conf</em>:</p>



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



<p class="wp-block-paragraph">Dentro del apartado &lt;Directory «/srv/www/htdocs»&gt; comentamos las líneas:</p>



<pre class="wp-block-code"><code>#Options
#AllowOverride None</code></pre>



<p class="wp-block-paragraph">Y añadimos estas:</p>



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



<figure class="wp-block-image size-large"><a href="https://danisanchez.net/wp-content/uploads/2023/01/07-lamp-en-opensuse.webp" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="1024" height="888" src="https://danisanchez.net/wp-content/uploads/2023/01/07-lamp-en-opensuse-1024x888.webp" alt="" class="wp-image-13660" srcset="https://danisanchez.net/wp-content/uploads/2023/01/07-lamp-en-opensuse-1024x888.webp 1024w, https://danisanchez.net/wp-content/uploads/2023/01/07-lamp-en-opensuse-300x260.webp 300w, https://danisanchez.net/wp-content/uploads/2023/01/07-lamp-en-opensuse-768x666.webp 768w, https://danisanchez.net/wp-content/uploads/2023/01/07-lamp-en-opensuse.webp 1156w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a><figcaption class="wp-element-caption">Click para ampliar</figcaption></figure>



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



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



<p class="wp-block-paragraph">Y eso es todo, ya puedes disfrutar de tu servidor LAMP en Opensuse Tumbleweed. 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"><em>Gran parte de la información ha sido consultada en <a href="https://es.opensuse.org/SDB:Instalar_un_servidor_LAMP" target="_blank" rel="noreferrer noopener">https://es.opensuse.org/SDB:Instalar_un_servidor_LAMP</a></em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://danisanchez.net/instalar-lamp-linux-apache-mysql-php-en-opensuse-tumbleweed/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 LAMP (Linux, Apache, MySQL y PHP) en Fedora</title>
		<link>https://danisanchez.net/instalar-lamp-linux-apache-mysql-y-php-en-fedora/</link>
					<comments>https://danisanchez.net/instalar-lamp-linux-apache-mysql-y-php-en-fedora/#comments</comments>
		
		<dc:creator><![CDATA[dani.sanchez]]></dc:creator>
		<pubDate>Thu, 28 Oct 2021 15:22:54 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Publicaciones]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[phpmyadmin]]></category>
		<guid isPermaLink="false">https://www.gestionatuweb.net/?p=11928</guid>

					<description><![CDATA[Probado hasta Fedora 39!! Actualmente estoy probando Fedora como distro principal y tenía la necesidad de configurar mi entorno LAMP tal y como lo tenía en Ubuntu. En Fedora la paquetería difiere un poco, así como algunas configuraciones. En este artículo vamos a ver cómo: Instalar el servidor web Apache Nos dirigimos a un terminal [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="has-white-color has-text-color has-background wp-block-paragraph" style="background-color:#17a2b8"><strong>Probado hasta Fedora 39!!</strong></p>



<p class="wp-block-paragraph">Actualmente estoy probando Fedora como distro principal y tenía la necesidad de configurar mi entorno LAMP tal y como lo tenía en Ubuntu.</p>



<p class="wp-block-paragraph">En Fedora la paquetería difiere un poco, así como algunas configuraciones.</p>



<p class="wp-block-paragraph">En este artículo vamos a ver cómo:</p>



<ul class="wp-block-list">
<li>Instalar el <strong>servidor web</strong> (<strong>Apache</strong>).</li>



<li>Instalar el <strong>gestor de bases de datos MariaDB</strong>.</li>



<li>Instalar <strong>PHP</strong>.</li>



<li>Configurar <strong>php.ini</strong> con los valores óptimos para WordPress.</li>



<li>Instalar <strong>phpMyAdmin</strong> para gestionar las bases de datos visualmente.</li>



<li>Activar el módulo <strong>MOD REWRITE</strong> para que funcionen las URLs «amigables» en WordPress.</li>
</ul>



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



<p class="wp-block-paragraph">Nos dirigimos a un terminal y escribimos:</p>



<pre class="wp-block-code"><code>sudo dnf -y install httpd</code></pre>



<p class="wp-block-paragraph">Los comandos básicos para gestionar el servidor son:</p>



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



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



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



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



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



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



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



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



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



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



<p class="wp-block-paragraph">Una vez instalado, ejecutamos los comandos de <strong>habilitar</strong> e <strong>iniciar:</strong></p>



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



<p class="wp-block-paragraph">Nos dirigimos a un navegador web y entramos en http://localhost</p>



<p class="wp-block-paragraph">Deberíamos ver una pantalla como esta:</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1000" height="546" src="https://danisanchez.net/wp-content/uploads/2021/10/01-lamp-fedora.jpg" alt="" class="wp-image-11929" srcset="https://danisanchez.net/wp-content/uploads/2021/10/01-lamp-fedora.jpg 1000w, https://danisanchez.net/wp-content/uploads/2021/10/01-lamp-fedora-300x164.jpg 300w, https://danisanchez.net/wp-content/uploads/2021/10/01-lamp-fedora-768x419.jpg 768w" sizes="auto, (max-width: 1000px) 100vw, 1000px" /></figure>



<p class="wp-block-paragraph">En mi caso, una vez que se habilita e inicia el servidor por primera vez, ya no es necesario hacerlo en cada sesión.</p>



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



<p class="wp-block-paragraph">De vuelta al terminal ejecutamos:</p>



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



<p class="wp-block-paragraph">Los comandos para gestionar el servicio son muy similares a Apache.</p>



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



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



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



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



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



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



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



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



<p class="wp-block-paragraph">Al igual que con Apache, en mi caso no es necesario habilitar e iniciar el servicio en cada sesión.</p>



<h3 class="wp-block-heading">Securizar MySQL</h3>



<p class="wp-block-paragraph">Por defecto, el gestor de bases de datos viene con el usuario root sin contraseña. Vamos a asignar una contraseña ejecutando:</p>



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



<p class="wp-block-paragraph">Nos preguntará si queremos asignar una contraseña al usuario root, contestamos que si:</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">Nos hará una serie de preguntas sobre si queremos eliminar usuarios anónimos, borrar las tablas de test, etc. Podemos contestar afimartívamente 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>



<p class="wp-block-paragraph">Ahora entraremos en mysql:</p>



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



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



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



<p class="wp-block-paragraph">Creamos una nueva base de datos:</p>



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



<p class="wp-block-paragraph">Y asignamos nuestro usuario anterior a la nueva base de datos con todos los privilegios:</p>



<pre class="wp-block-code"><code>GRANT ALL PRIVILEGES ON mibase.* TO mi_usuario;</code></pre>



<p class="wp-block-paragraph">Para nuevas bases de datos el proceso sería el mismo: Crear la base de datos y asignar nuestro usuario con todos los privilegios.</p>



<p class="wp-block-paragraph">Tras la asignación de nuestro usuario a la nueva base de datos no está de más hacer una limpieza de la caché almacenada con:</p>



<pre class="wp-block-code"><code>FLUSH PRIVILEGES;</code></pre>



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



<p class="wp-block-paragraph">Vamos a instalar los siguientes paquetes para PHP:</p>



<pre class="wp-block-code"><code>sudo dnf -y install php php-cli php-php-gettext php-mbstring php-mcrypt php-mysqlnd php-pear php-curl php-gd php-xml php-bcmath php-zip</code></pre>



<p class="wp-block-paragraph">Tras la instalación vamos a comprobar la versión de PHP con el comando:</p>



<pre class="wp-block-code"><code>php -v</code></pre>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="738" height="214" src="https://danisanchez.net/wp-content/uploads/2021/10/02-lamp-fedora-php-versioin.jpg" alt="" class="wp-image-11936" srcset="https://danisanchez.net/wp-content/uploads/2021/10/02-lamp-fedora-php-versioin.jpg 738w, https://danisanchez.net/wp-content/uploads/2021/10/02-lamp-fedora-php-versioin-300x87.jpg 300w" sizes="auto, (max-width: 738px) 100vw, 738px" /></figure>



<p class="wp-block-paragraph">En el momento de hacer este artículo, la versión que se instala con Fedora 34 es la 7.4.24.</p>



<p class="wp-block-paragraph">Crearemos un archivo test.php para comprobar que PHP se ejecuta correctamente bajo Apache.</p>



<p class="wp-block-paragraph">A mí me gusta usar <em>nano</em> para configurar archivos sencillos mediante la terminal, nos dirigimos a:</p>



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



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



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



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



<p class="wp-block-paragraph">Volvemos al navegador web a la dirección http://localhost/test.php</p>



<p class="wp-block-paragraph">Debería ejecutarse el script de información de PHP:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="559" src="https://danisanchez.net/wp-content/uploads/2021/10/03-lamp-fedora-php-test-1024x559.jpg" alt="" class="wp-image-11937" srcset="https://danisanchez.net/wp-content/uploads/2021/10/03-lamp-fedora-php-test-1024x559.jpg 1024w, https://danisanchez.net/wp-content/uploads/2021/10/03-lamp-fedora-php-test-300x164.jpg 300w, https://danisanchez.net/wp-content/uploads/2021/10/03-lamp-fedora-php-test-768x419.jpg 768w, https://danisanchez.net/wp-content/uploads/2021/10/03-lamp-fedora-php-test-1536x838.jpg 1536w, https://danisanchez.net/wp-content/uploads/2021/10/03-lamp-fedora-php-test.jpg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Vamos a cambiar algunos parámetros de PHP editando su archivo de configuración (php.ini) para optimizarlo para WordPress.</p>



<p class="wp-block-paragraph">La ubicación está en /etc/php.ini, por lo que de nuevo con <em>nano</em>, nos dirigimos a:</p>



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



<p class="wp-block-paragraph">Y editamos los siguiente 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>



<p class="wp-block-paragraph">Tras la edición debemos reiniciar Apache para que los cambios surjan efecto. <strong>En mi caso tuve que reiniciar el PC por completo para que se aplicaran</strong>. </p>



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



<p class="wp-block-paragraph">Volvemos al terminal y ejecutamos:</p>



<pre class="wp-block-code"><code>sudo dnf install phpmyadmin</code></pre>



<p class="wp-block-paragraph">Tras la instalación veremos que si accedemos a http://localhost/phpmyadmin nos saldrá un mensaje de error indicando que la ubicación no existe. </p>



<p class="wp-block-paragraph">Tenemos que editar el archivo de configuración de phpMyAdmin de nuevo con <em>nano</em>:</p>



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



<p class="wp-block-paragraph">Hacia la parte final del archivo, añadimos las siguientes líneas:</p>



<pre class="wp-block-code"><code>&lt;Directory /usr/share/phpMyAdmin&gt;
    AddDefaultCharset UTF-8
    Require all granted
&lt;/Directory&gt;</code></pre>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img loading="lazy" decoding="async" width="810" height="592" src="https://danisanchez.net/wp-content/uploads/2021/10/04-lamp-fedora-configurar-phpmyadmin.jpg" alt="" class="wp-image-11938" srcset="https://danisanchez.net/wp-content/uploads/2021/10/04-lamp-fedora-configurar-phpmyadmin.jpg 810w, https://danisanchez.net/wp-content/uploads/2021/10/04-lamp-fedora-configurar-phpmyadmin-300x219.jpg 300w, https://danisanchez.net/wp-content/uploads/2021/10/04-lamp-fedora-configurar-phpmyadmin-768x561.jpg 768w" sizes="auto, (max-width: 810px) 100vw, 810px" /></figure>
</div>


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



<p class="wp-block-paragraph">Reiniciamos el servidor con:</p>



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



<p class="wp-block-paragraph">O reiniciamos el equipo si no surje efecto. Ahora podemos acceder a http://localhost/phpmyadmin</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="559" src="https://danisanchez.net/wp-content/uploads/2021/10/05-lamp-fedora-iniciar-phpmyadmin-1024x559.jpg" alt="" class="wp-image-11940" srcset="https://danisanchez.net/wp-content/uploads/2021/10/05-lamp-fedora-iniciar-phpmyadmin-1024x559.jpg 1024w, https://danisanchez.net/wp-content/uploads/2021/10/05-lamp-fedora-iniciar-phpmyadmin-300x164.jpg 300w, https://danisanchez.net/wp-content/uploads/2021/10/05-lamp-fedora-iniciar-phpmyadmin-768x419.jpg 768w, https://danisanchez.net/wp-content/uploads/2021/10/05-lamp-fedora-iniciar-phpmyadmin-1536x838.jpg 1536w, https://danisanchez.net/wp-content/uploads/2021/10/05-lamp-fedora-iniciar-phpmyadmin.jpg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Por último vamos a activar el módulo de Apache <strong>MOD REWRITE</strong> para habilitar las URLs amigables de WordPress que configuramos en los ajustes de <em>Enlaces Permanentes</em>.</p>



<p class="wp-block-paragraph">Para ello nos dirigimos con nano a:</p>



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



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



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



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



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="811" height="648" src="https://danisanchez.net/wp-content/uploads/2021/10/05-lamp-fedora-configurar-modrewrite.jpg" alt="" class="wp-image-11941" srcset="https://danisanchez.net/wp-content/uploads/2021/10/05-lamp-fedora-configurar-modrewrite.jpg 811w, https://danisanchez.net/wp-content/uploads/2021/10/05-lamp-fedora-configurar-modrewrite-300x240.jpg 300w, https://danisanchez.net/wp-content/uploads/2021/10/05-lamp-fedora-configurar-modrewrite-768x614.jpg 768w" sizes="auto, (max-width: 811px) 100vw, 811px" /></figure>



<p class="wp-block-paragraph">De nuevo, reinicia Apache o directamente el PC.</p>



<h2 class="wp-block-heading">Nota final</h2>



<p class="wp-block-paragraph">Si al descargar algún tema/plugin o actualización tienes un error de:</p>



<pre class="wp-block-code"><code>Descarga fallida: cURL error 7</code></pre>



<p class="wp-block-paragraph">Necesitamos configurar SElinux en modo permisivo. Para ello editamos el siguiente archivo:</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>



<pre class="wp-block-code"><code># This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing - SELinux security policy is enforced.
#       permissive - SELinux prints warnings instead of enforcing.
#       disabled - No SELinux policy is loaded.
<strong>SELINUX=permissive</strong>
# SELINUXTYPE= can take one of these two values:
#       targeted - Targeted processes are protected,
#       mls - Multi Level Security protection.
SELINUXTYPE=targeted</code></pre>



<p class="wp-block-paragraph"> Reiniciamos el equipo y eso es todo <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-linux-apache-mysql-y-php-en-fedora/feed/</wfw:commentRss>
			<slash:comments>3</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>
	</channel>
</rss>
