<?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>wp-config.php &#8211; danisanchez.net</title>
	<atom:link href="https://danisanchez.net/tag/wp-config-php/feed/" rel="self" type="application/rss+xml" />
	<link>https://danisanchez.net</link>
	<description></description>
	<lastBuildDate>Mon, 24 Nov 2025 06:53:36 +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>wp-config.php &#8211; danisanchez.net</title>
	<link>https://danisanchez.net</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Archivo wp-config.php por defecto de WordPress</title>
		<link>https://danisanchez.net/archivo-wp-config-php-por-defecto-de-wordpress/</link>
					<comments>https://danisanchez.net/archivo-wp-config-php-por-defecto-de-wordpress/#respond</comments>
		
		<dc:creator><![CDATA[dani.sanchez]]></dc:creator>
		<pubDate>Mon, 24 Nov 2025 06:53:36 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[wp-config.php]]></category>
		<guid isPermaLink="false">https://danisanchez.net/?p=15374</guid>

					<description><![CDATA[Este es el archivo de configuración de WordPress por defecto: No obstante, este archivo también se suele encontrar en las instalaciones de WordPress como wp-config-sample.php]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Este es el archivo de configuración de WordPress por defecto:</p>



<pre class="wp-block-code"><code>&lt;?php
/**
 * The base configuration for WordPress
 *
 * The wp-config.php creation script uses this file during the installation.
 * You don't have to use the website, you can copy this file to "wp-config.php"
 * and fill in the values.
 *
 * This file contains the following configurations:
 *
 * * Database settings
 * * Secret keys
 * * Database table prefix
 * * ABSPATH
 *
 * @link https://developer.wordpress.org/advanced-administration/wordpress/wp-config/
 *
 * @package WordPress
 */

// ** Database settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'database_name_here' );

/** Database username */
define( 'DB_USER', 'username_here' );

/** Database password */
define( 'DB_PASSWORD', 'password_here' );

/** Database hostname */
define( 'DB_HOST', 'localhost' );

/** Database charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );

/** The database collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );

/**#@+
 * Authentication unique keys and salts.
 *
 * Change these to different unique phrases! You can generate these using
 * the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}.
 *
 * You can change these at any point in time to invalidate all existing cookies.
 * This will force all users to have to log in again.
 *
 * @since 2.6.0
 */
define( 'AUTH_KEY',         'put your unique phrase here' );
define( 'SECURE_AUTH_KEY',  'put your unique phrase here' );
define( 'LOGGED_IN_KEY',    'put your unique phrase here' );
define( 'NONCE_KEY',        'put your unique phrase here' );
define( 'AUTH_SALT',        'put your unique phrase here' );
define( 'SECURE_AUTH_SALT', 'put your unique phrase here' );
define( 'LOGGED_IN_SALT',   'put your unique phrase here' );
define( 'NONCE_SALT',       'put your unique phrase here' );

/**#@-*/

/**
 * WordPress database table prefix.
 *
 * You can have multiple installations in one database if you give each
 * a unique prefix. Only numbers, letters, and underscores please!
 *
 * At the installation time, database tables are created with the specified prefix.
 * Changing this value after WordPress is installed will make your site think
 * it has not been installed.
 *
 * @link https://developer.wordpress.org/advanced-administration/wordpress/wp-config/#table-prefix
 */
$table_prefix = 'wp_';

/**
 * For developers: WordPress debugging mode.
 *
 * Change this to true to enable the display of notices during development.
 * It is strongly recommended that plugin and theme developers use WP_DEBUG
 * in their development environments.
 *
 * For information on other constants that can be used for debugging,
 * visit the documentation.
 *
 * @link https://developer.wordpress.org/advanced-administration/debug/debug-wordpress/
 */
define( 'WP_DEBUG', false );

/* Add any custom values between this line and the "stop editing" line. */



/* That's all, stop editing! Happy publishing. */

/** Absolute path to the WordPress directory. */
if ( ! defined( 'ABSPATH' ) ) {
	define( 'ABSPATH', __DIR__ . '/' );
}

/** Sets up WordPress vars and included files. */
require_once ABSPATH . 'wp-settings.php';
</code></pre>



<p class="wp-block-paragraph">No obstante, este archivo también se suele encontrar en las instalaciones de WordPress como <strong>wp-config-sample.php</strong></p>
]]></content:encoded>
					
					<wfw:commentRss>https://danisanchez.net/archivo-wp-config-php-por-defecto-de-wordpress/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Optimizar el archivo de configuración de WordPress (wp-config.php)</title>
		<link>https://danisanchez.net/optimizar-el-archivo-de-configuracion-de-wordpress-wp-config-php/</link>
					<comments>https://danisanchez.net/optimizar-el-archivo-de-configuracion-de-wordpress-wp-config-php/#respond</comments>
		
		<dc:creator><![CDATA[dani.sanchez]]></dc:creator>
		<pubDate>Mon, 21 Mar 2022 12:57:18 +0000</pubDate>
				<category><![CDATA[Publicaciones]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wp-config.php]]></category>
		<guid isPermaLink="false">https://www.gestionatuweb.net/?p=12193</guid>

					<description><![CDATA[Podemos hacer mucho dedicando unos minutos al archivo de configuración de WordPress (wp-config.php), algo a lo que muchos instaladores no prestan demasiada atención. Tenemos a nuestra disposición una extensa guía desde la documentación oficial de WordPress en https://wordpress.org/support/article/editing-wp-config-php/, aunque vamos a intentar resumir las más interesantes. Forzar al protocolo HTTPS Con estas constantes podemos forzar [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Podemos hacer mucho dedicando unos minutos al archivo de configuración de WordPress (<strong>wp-config.php</strong>), algo a lo que muchos instaladores no prestan demasiada atención.</p>



<p class="wp-block-paragraph">Tenemos a nuestra disposición una extensa guía desde la documentación oficial de WordPress en <a href="https://wordpress.org/support/article/editing-wp-config-php/" target="_blank" rel="noreferrer noopener">https://wordpress.org/support/article/editing-wp-config-php/</a>, aunque vamos a intentar resumir las más interesantes. </p>



<h2 class="wp-block-heading">Forzar al protocolo HTTPS</h2>



<p class="wp-block-paragraph">Con estas constantes podemos forzar tanto el login como el panel de administración de WordPress (/wp-admin) a usarlo exclusivamente bajo el protocolo HTTPS, por lo que es necesario que el servidor cuente con un certificado de seguridad SSL. </p>



<pre class="wp-block-code"><code>define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);</code></pre>



<p class="wp-block-paragraph"><strong>NOTA</strong>: No lo actives si estás trabajando en modo local o en un servidor provisional sin certificado SSL.</p>



<h2 class="wp-block-heading">Conexión con la base de datos</h2>



<pre class="wp-block-code"><code>// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'database_name_here' );
/** MySQL database username */
define( 'DB_USER', 'username_here' );
/** MySQL database password */
define( 'DB_PASSWORD', 'password_here' );
/** MySQL hostname */
define( 'DB_HOST', 'localhost' );</code></pre>



<p class="wp-block-paragraph">Cuando instalamos WordPress, lo primero que el instalador nos pregunta son los datos de la base de datos con la que vamos a trabajar. Pero si necesitamos modificar estos datos a posteriori, podemos localizarlos en el archivo <strong>wp-config.php</strong> en el apartado <em>MySQL settings</em>.</p>



<p class="wp-block-paragraph"><strong>define( &#8216;DB_NAME&#8217;, &#8216;database_name&#8217; );</strong> Nombre de la base de datos en nuestro servidor.<br><strong>define( &#8216;DB_USER&#8217;, &#8216;username&#8217; );</strong> Nombre de usuario de la base de datos.<br><strong>define( &#8216;DB_PASSWORD&#8217;, &#8216;password&#8217; );</strong> Contraseña de la base de datos.<br><strong>define( &#8216;DB_HOST&#8217;, &#8216;localhost&#8217; );</strong> Dirección del servidor de la base de datos. En muchos hosts suele ser «localhost», aunque en otros hostings como IONOS o Arsys, puede ser una dirección concreta.</p>



<h3 class="wp-block-heading">Otras opciones en la base de datos</h3>



<pre class="wp-block-code"><code>define ('DB_HOST', 'localhost: 3306' );</code></pre>



<p class="wp-block-paragraph">Especifica el puerto utilizado por el gestor de bases de datos. Por defecto se establece en 3306, pero si necesitas modificarlo, defínelo en esta constate.</p>



<pre class="wp-block-code"><code>$table_prefix = 'mistablas_'; // Only numbers, letters, and underscores please!</code></pre>



<p class="wp-block-paragraph">Establece el prefijo de las tablas de la base de datos de WordPress. Por defecto se utiliza wp_, pero para reforzar la seguridad, te aconsejo que lo cambies durante la instalación de tu WordPress. </p>



<p class="wp-block-paragraph">No lo modifiques una vez instalado, o tendrás errores en WordPress al no conectar correctamente con las tablas. Cámbialo solo en los casos en que migres de base de datos y el prefijo de la nueva base de datos sea distinto.</p>



<pre class="wp-block-code"><code>define( 'DB_CHARSET', 'utf8' );</code></pre>



<p class="wp-block-paragraph">Establece el conjunto de caracteres de la base de datos. Por defecto, WordPress utilizará UTF-8.</p>



<pre class="wp-block-code"><code>define( 'DB_COLLATE', '' );</code></pre>



<p class="wp-block-paragraph">Establece el orden de clasificación del juego de caracteres. Por defecto se establece en blanco para que MySQL asigne automáticamente la colación en función del conjunto de caracteres definido con DB_CHARSET.</p>



<p class="wp-block-paragraph">La colación general para UTF-8 suele ser &#8216;utf8_general_ci&#8217;:</p>



<pre class="wp-block-code"><code>define( 'DB_COLLATE', 'utf8_general_ci' );</code></pre>



<p class="wp-block-paragraph">Si necesitas definir una colación distinta para un país concreto, por ejemplo Turquía, establece:</p>



<pre class="wp-block-code"><code>define( 'DB_COLLATE', 'utf8_turkish_ci' );</code></pre>



<h2 class="wp-block-heading">Claves de seguridad</h2>



<pre class="wp-block-code"><code>define( 'AUTH_KEY', 't`DK%X:&gt;xy|eZ(BXb/f(Ur`8#~UzUQG-^_Cs_GHs5U-&amp;Wb?pgn^p8(2@}IcnCa|' );
define( 'SECURE_AUTH_KEY', 'D&amp;ovlU#|CvJ##uNq}bel+^MFtT&amp;.b9{UvR]g%ixsXhGlRJ7q!h}XWdEC&#91;BOKXssj' );
define( 'LOGGED_IN_KEY', 'MGKi8Br(&amp;{H*~&amp;0s;{k0&lt;S(O:+f#WM+q|npJ-+P;RDKT:~jrmgj#/-,&#91;hOBk!ry^' ) ;
define( 'NONCE_KEY', 'FIsAsXJKL5ZlQo)iD-pt??eUbdc{_Cn&lt;4!d~yqz))&amp;B D?AwK%)+)F2aNwI|siOe' );
define( 'AUTH_SALT', '7T-!^i!0,w)L#JK@pc2{8XE&#91;DenYI^BVf{L:jvF,hf}zBf883td6D;Vcy8,S)-&amp;G' );
define( 'SECURE_AUTH_SALT', 'I6`V|mDZq21-J|ihb u^q0F }F_NUcy`l,=obGtq*p#Ybe4a31R,r=|n#=]@]c #' );
define( 'LOGGED_IN_SALT', 'w&lt;$4c$Hmd%/*]`Oom&gt;(hdXW|0M=X={we6;Mpvtg+Vo&lt;$|#_}qG(GaVDEsn,~*4i' );
define( 'NONCE_SALT', 'a|#h{c5|P &amp;xWs4IZ20c2&amp;%4!c(/uG}W:mAvy&lt;I44`jAbup]t=]V&lt;`}.py(wTP%%' );</code></pre>



<p class="wp-block-paragraph">Se definen automáticamente durante la instalación. No es necesario que las copies ni mucho menos que las memorices, pero puedes cambiarlas si lo deseas. Solo asegúrate que sean largas y complicadas. </p>



<p class="wp-block-paragraph">Normalmente son usadas para las cookies de sesión, de forma que si las modificas, los usuarios con sesión en tu web tendrán que volver a loguearse.</p>



<h2 class="wp-block-heading">Establecer la URL del sitio</h2>



<pre class="wp-block-code"><code>define( 'WP_SITEURL', 'https://misitioweb.com' );</code></pre>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="1015" height="169" src="https://danisanchez.net/wp-content/uploads/2022/03/imagen.png" alt="" class="wp-image-12208" srcset="https://danisanchez.net/wp-content/uploads/2022/03/imagen.png 1015w, https://danisanchez.net/wp-content/uploads/2022/03/imagen-300x50.png 300w, https://danisanchez.net/wp-content/uploads/2022/03/imagen-768x128.png 768w" sizes="(max-width: 1015px) 100vw, 1015px" /></figure>



<p class="wp-block-paragraph">Establece la URL WordPress. (No finalizes la URL con barra invertida «/», por ejemplo misitio.com/).</p>



<p class="wp-block-paragraph">Por defecto, la URL del sitio se guarda en la tabla de opciones de la base de datos, pero si defines esta constante reducirás la cantidad de llamadas a la base de datos al cargar la web.</p>



<h2 class="wp-block-heading">Establecer la URL del blog</h2>



<pre class="wp-block-code"><code>define( 'WP_HOME', 'https://misitioweb.com/misitio' );</code></pre>



<p class="wp-block-paragraph">Define la dirección de WordPress en caso de que no se encuentre en el directorio principal de tu dominio. En la mayoría de casos será la misma dirección que la URL del sitio.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="1024" height="158" src="https://danisanchez.net/wp-content/uploads/2022/03/imagen-1.png" alt="" class="wp-image-12209" srcset="https://danisanchez.net/wp-content/uploads/2022/03/imagen-1.png 1024w, https://danisanchez.net/wp-content/uploads/2022/03/imagen-1-300x46.png 300w, https://danisanchez.net/wp-content/uploads/2022/03/imagen-1-768x119.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">Mover los directorios por defecto</h2>



<p class="wp-block-paragraph">Otra opción que podemos definir en wp-config.php es la ubicación de los directorios como, WP-CONTENT, PLUGINS, THEMES, UPLOADS&#8230;</p>



<h3 class="wp-block-heading">Moviendo el directorio WP-CONTENT</h3>



<p class="wp-block-paragraph">Definiendo el PATH LOCAL:</p>



<pre class="wp-block-code"><code>define( 'WP_CONTENT_DIR', dirname(__FILE__) . '/blog/wp-content' );</code></pre>



<p class="wp-block-paragraph">Definiendo la URL:</p>



<pre class="wp-block-code"><code>define( 'WP_CONTENT_URL', 'http://example/blog/wp-content' );</code></pre>



<h3 class="wp-block-heading">Moviendo el directorio PLUGINS</h3>



<p class="wp-block-paragraph">Definiendo el PATH LOCAL:</p>



<pre class="wp-block-code"><code>define( 'WP_PLUGIN_DIR', dirname(__FILE__) . '/blog/wp-content/plugins' );</code></pre>



<p class="wp-block-paragraph">Definiendo la URL:</p>



<pre class="wp-block-code"><code>define( 'WP_PLUGIN_URL', 'http://example/blog/wp-content/plugins' );</code></pre>



<h3 class="wp-block-heading">Moviendo el directorio THEMES</h3>



<pre class="wp-block-code"><code>$theme_root = WP_CONTENT_DIR . '/themes'; </code></pre>



<h3 class="wp-block-heading">Moviendo el directorio UPLOADS</h3>



<pre class="wp-block-code"><code>define( 'UPLOADS', 'blog/wp-content/uploads' );</code></pre>



<h2 class="wp-block-heading">Caché de objetos y compresión</h2>



<pre class="wp-block-code"><code>define( 'WP_CACHE', true );
define( 'WP_CACHE_KEY_SALT', 'bli6w8w9zrqufbfz79:' );
define( 'COMPRESS_CSS', true );
define( 'COMPRESS_SCRIPTS', true );
define( 'ENFORCE_GZIP', true );</code></pre>



<p class="wp-block-paragraph"><strong>WP_CACHE</strong> habilita la caché de objetos. Normalmente la utilizan  los plugins de gestión de caché.<br><strong>WP_CACHE_KEY_SALT</strong>, define la clave de caché. Puedes poner una aleatoria.<br><strong>COMPRESS_CSS Y COMPRESS_SCRIPT</strong>, comprimen los objetos de estilos y javascript.<br><strong>ENFORCE_GZIP,</strong> fuerza la entrega de la caché comprimida. Esta función tiene que estar habilitada en el servidor.</p>



<h2 class="wp-block-heading">Limitar las revisiones de posts</h2>



<pre class="wp-block-code"><code>define( 'WP_POST_REVISIONS', 5 );</code></pre>



<p class="wp-block-paragraph">Si editas mucho tu contenido, debes saber que cada vez que actualizas una entrada, página, producto&#8230; se guarda una revisión de esta, para que puedas volver a ella en cualquier momento. Esto hace que nuestra base de datos pueda crecer enormemente. Personalmente me he encontrado con páginas que tenían más de 500 revisiones guardadas.</p>



<p class="wp-block-paragraph">Creo que limitar a 5 es más que suficiente, incluso se puede desactivar por completo, indicando el parámetro false:</p>



<pre class="wp-block-code"><code>define( 'WP_POST_REVISIONS', false );</code></pre>



<h2 class="wp-block-heading">Guardado automático</h2>



<pre class="wp-block-code"><code>define( 'AUTOSAVE_INTERVAL', 30 );</code></pre>



<p class="wp-block-paragraph">Por defecto, WordPress realiza autoguardados de tus publicaciones cada 60 segundos. Puedes cambiar este valor con esta definición.</p>



<h2 class="wp-block-heading">Permanencia en la papelera</h2>



<pre class="wp-block-code"><code>define( 'EMPTY_TRASH_DAYS', 7 );</code></pre>



<p class="wp-block-paragraph">Cuando enviamos contenido a la papelera, esta permanece ahí durante 30 días por defecto. Podemos cambiar este valor por otro número de días.</p>



<h2 class="wp-block-heading">Habilitar WordPress Multisitio</h2>



<pre class="wp-block-code"><code>define( 'WP_ALLOW_MULTISITE', true );</code></pre>



<p class="wp-block-paragraph">Si deseas habilitar varias instalaciones de WordPress en un mismo sitio (WordPress multisitio), establece en TRUE esta consante.</p>



<h2 class="wp-block-heading">Redirección Blogs inexistentes</h2>



<pre class="wp-block-code"><code>define( 'NOBLOGREDIRECT', 'https://misitio.com' );</code></pre>



<p class="wp-block-paragraph">Redirige a tu sitio principal en caso de que alguiente intente acceder a un subdominio o subdirectorio inexistente.</p>



<h2 class="wp-block-heading">WP_DISABLE_FATAL_ERROR_HANDLER</h2>



<p class="wp-block-paragraph">Antes de la versión 5.2 de WordPress, si un theme o complemento causaba un error fatal, el usuario solo veía una pantalla en blanco. A partir de WordPress 5.2, se muestra un mensaje error del estilo:</p>



<p class="wp-block-paragraph"><em> «El sitio está experimentando dificultades técnicas. Consulte la bandeja de entrada de correo electrónico del administrador de su sitio para obtener instrucciones».</em></p>



<p class="wp-block-paragraph">Pero en un entorno de desarrollo, seguramente necesitamos visualizar esos errores de PHP y para ello debemos ocultar este mensaje por defecto, además de habilitar el WP_DEBUG y WP_DEBUG_DISPLAY</p>



<pre class="wp-block-code"><code>define( 'WP_DISABLE_FATAL_ERROR_HANDLER', true );   // 5.2 and later 
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_DISPLAY', true ); </code></pre>



<p class="wp-block-paragraph">WP_DEBUG informa de errores y advertencias en temas y plugins, además de errores en la base de datos.</p>



<h2 class="wp-block-heading">Aumentar la memoria asignada a PHP</h2>



<p class="wp-block-paragraph">Por defecto, la memoria PHP asignada en WordPress es de solo 40MB. Es conveniente aumentar esta cantidad sobre todo si utilizamos un número considerable de plugins o editamos la web con builders como Elementor, Divi, Fusion, etc.</p>



<p class="wp-block-paragraph">Existen dos límites de memoria, el que tiene que ver con el frontend o web visible y el que tiene que ver con el panel de administración de WordPress.</p>



<p class="wp-block-paragraph"><strong>Aumentar el límite de memoria en el frontend</strong>:</p>



<pre class="wp-block-code"><code>define( 'WP_MEMORY_LIMIT', '128M' );</code></pre>



<p class="wp-block-paragraph"><strong>Aumentar el límite de memoria en el panel administrador:</strong></p>



<pre class="wp-block-code"><code>define( 'WP_MAX_MEMORY_LIMIT', '256M' );</code></pre>



<h2 class="wp-block-heading">Evitar que WordPress pida los datos FTP al instalar o actualizar complementos</h2>



<p class="wp-block-paragraph">Esta configuración suele estar habilitada por defecto en la mayoría de hostings, pero si WordPress te pide los datos de autenticación FTP cada vez que intentas actualizar o instalar un complemento define la siguiente constante:</p>



<pre class="wp-block-code"><code>define( 'FS_METHOD', 'direct' );</code></pre>



<h2 class="wp-block-heading">Habilitar un cron alternativo</h2>



<p class="wp-block-paragraph">Si por cualquier razón el cron por defecto de WordPress no realiza correctamente las tareas asignadas y quieres establecer un Cron alternativo, debes especificarlo con la siguiente constante:</p>



<pre class="wp-block-code"><code>define( 'ALTERNATE_WP_CRON', true );</code></pre>



<h2 class="wp-block-heading">Deshabilitar cron</h2>



<p class="wp-block-paragraph">También es posible que quieras deshabilitar el cron si no vas a hacer uso de él (programar publicaciones, programar backups, etc.):</p>



<pre class="wp-block-code"><code>define( 'DISABLE_WP_CRON', true );</code></pre>



<h2 class="wp-block-heading">Limitar los intervalos de cron</h2>



<p class="wp-block-paragraph">Establece el tiempo (en segundos) que deben transcurrir entre la ejecución de un cron y otro.</p>



<pre class="wp-block-code"><code>define( 'WP_CRON_LOCK_TIMEOUT', 60 );</code></pre>



<h2 class="wp-block-heading">Reparar automáticamente la base de datos</h2>



<p class="wp-block-paragraph">Si tienes problemas con tu base de datos y no puedes iniciar sesión, puedes definir esta constante para forzar una reparación automática.</p>



<pre class="wp-block-code"><code>define( 'WP_ALLOW_REPAIR', true );</code></pre>



<p class="wp-block-paragraph">Después accede a ruta: https://misitio.com<strong>/wp-admin/maint/repair.php</strong></p>



<p class="wp-block-paragraph">No es necesario iniciar sesión para ejecutar el proceso. Una vez resuelto el problema, borra esta consante o cámbiala a false.</p>



<h2 class="wp-block-heading">Desactivar el editor interno de themes y plugins</h2>



<p class="wp-block-paragraph">Una medida sencilla de mejorar la seguridad en nuestro WordPress es desactivando el editor interno de plugins y temas. De esta forma, si alguien se hace con nuestro usuario administrador, no podrá editar plantillas y plugin insertando código malicioso. (Para ello tendrá que tener también acceso al FTP y modificar los archivos insitu).</p>



<pre class="wp-block-code"><code>define( 'DISALLOW_FILE_EDIT', true );</code></pre>



<h2 class="wp-block-heading">Desactivar las actualizaciones automáticas de WordPress</h2>



<p class="wp-block-paragraph">Es conveniente no actualizar a la ligera un WordPress, sobre todo si es una versión media o mayor. Debemos asegurar antes de que tanto el theme como los complementos (plugins) tienen 100% compatibilidad con la nueva versión.</p>



<p class="wp-block-paragraph">Para impedir que WordPress se actualice automáticamente usa la constante:</p>



<pre class="wp-block-code"><code>define( 'WP_AUTO_UPDATE_CORE', false );</code></pre>



<p class="wp-block-paragraph">Pero sí es buena idea actualizar únicamente las versiones de seguridad y mantenimiento, para ello usamos la constante:</p>



<pre class="wp-block-code"><code>define( 'AUTOMATIC_UPDATER_DISABLED', false );
define( 'WP_AUTO_UPDATE_CORE', 'minor' );
define( 'CORE_UPGRADE_SKIP_NEW_BUNDLED', true );</code></pre>



<p class="wp-block-paragraph">La última constante &#8216;CORE_UPGRADE_SKIP_NEW_BUNDLED&#8217;, evitará que las actualizaciones de WordPress editen el directorio wp-content, evitando que se instalen los nuevos temas por defecto que incroporen las nuevas versiones.</p>



<h2 class="wp-block-heading">Desactiva toda actualización automática y manual</h2>



<p class="wp-block-paragraph">Si quieres llevar un control o mantenimiento exhaustivo de un proyecto, puedes impedir que se instalen o actualicen complementos con la constante:</p>



<pre class="wp-block-code"><code>define( 'DISALLOW_FILE_MODS', true );</code></pre>



<p class="wp-block-paragraph">Ni siquiera un usuario administrador podrá instalar o actualizar nada.</p>



<h2 class="wp-block-heading">Concluyendo&#8230;</h2>



<p class="wp-block-paragraph">Existen más constantes que puedes definir para configurar otros aspectos más avanzados de tu WordPress, puedes consultarlos en la documentación oficial: https://wordpress.org/support/article/editing-wp-config-php, aunque los comentados en este post suelen ser los más interesantes a tener en cuenta.</p>



<p class="wp-block-paragraph">Espero que te haya servido de utilidad y 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/optimizar-el-archivo-de-configuracion-de-wordpress-wp-config-php/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Subir un WordPress terminado de tu ordenador (local) al servidor final (hosting)</title>
		<link>https://danisanchez.net/subir-un-wordpress-terminado-de-tu-ordenador-local-al-servidor-final-hosting/</link>
					<comments>https://danisanchez.net/subir-un-wordpress-terminado-de-tu-ordenador-local-al-servidor-final-hosting/#comments</comments>
		
		<dc:creator><![CDATA[dani.sanchez]]></dc:creator>
		<pubDate>Thu, 25 Aug 2016 06:45:26 +0000</pubDate>
				<category><![CDATA[Publicaciones]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[publicaciones]]></category>
		<category><![CDATA[tutoriales]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wp-config.php]]></category>
		<guid isPermaLink="false">http://www.gestionatuweb.net/?p=1145</guid>

					<description><![CDATA[Suele ser habitual desarrollar una web en nuestro PC en modo (local) y una vez terminada, contratar el hosting profesional y subirla mediante FTP, de este modo podemos trabajar con más versatilidad (evitando estar conectados a la red) y desperdiciando tiempo (el tiempo que nos lleve desarrollar el proyecto por completo) del hosting contratado. ¿Cómo [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Suele ser habitual desarrollar una web en nuestro PC en modo (local) y una vez terminada, contratar el hosting profesional y subirla mediante FTP, de este modo podemos trabajar con más versatilidad (evitando estar conectados a la red) y desperdiciando tiempo (el tiempo que nos lleve desarrollar el proyecto por completo) del hosting contratado.</p>



<h2 class="wp-block-heading">¿Cómo se sube un proyecto final WordPress de tu ordenador al hosting final?</h2>



<p class="wp-block-paragraph">Tan sencillo como trasladar toda la carpeta de tu proyecto a la carpeta de proyectos de tu hosting profesional (carpeta que debe especificarte tu&nbsp;hosting o consultar en el manual de este), pero antes vamos a realizar unos pocos pasos para adaptarlo al nuevo alojamiento:</p>



<ol class="wp-block-list"><li>Volcar la base de datos.</li><li>Modificar la ruta de los enlaces de localhost al nuevo dominio.</li><li>Editar el archivo de configuración (wp-config.php).</li></ol>



<h2 class="wp-block-heading">1. Volcar la base de datos</h2>



<p class="wp-block-paragraph">Podemos exportar nuestra base de datos local en un archivo .sql que después será importado en la base de datos del hosting.</p>



<p class="wp-block-paragraph">Para ello accedemos a nuestro phpMyadmin (local) a través de http://localhost/phpmyadmin:</p>



<p class="wp-block-paragraph">Seleccionamos la base de datos que queremos&nbsp;respaldar y pulsamos en Exportar:</p>



<figure class="wp-block-image"><a href="https://danisanchez.net/wp-content/uploads/2016/08/001-2.jpg"><img decoding="async" width="1361" height="784" src="https://danisanchez.net/wp-content/uploads/2016/08/001-2.jpg" alt="phpmyadmin modo local" class="wp-image-1146" srcset="https://danisanchez.net/wp-content/uploads/2016/08/001-2.jpg 1361w, https://danisanchez.net/wp-content/uploads/2016/08/001-2-300x173.jpg 300w, https://danisanchez.net/wp-content/uploads/2016/08/001-2-1024x590.jpg 1024w, https://danisanchez.net/wp-content/uploads/2016/08/001-2-768x442.jpg 768w" sizes="(max-width: 1361px) 100vw, 1361px" /></a></figure>



<p class="wp-block-paragraph">En la siguiente pantalla dejamos seleccionado el formato SQL y hacemos clic en Continuar:</p>



<figure class="wp-block-image"><a href="https://danisanchez.net/wp-content/uploads/2016/08/002-2.jpg"><img loading="lazy" decoding="async" width="1140" height="624" src="https://danisanchez.net/wp-content/uploads/2016/08/002-2.jpg" alt="Generar SQL en phpmyadmin" class="wp-image-1147" srcset="https://danisanchez.net/wp-content/uploads/2016/08/002-2.jpg 1140w, https://danisanchez.net/wp-content/uploads/2016/08/002-2-300x164.jpg 300w, https://danisanchez.net/wp-content/uploads/2016/08/002-2-1024x561.jpg 1024w, https://danisanchez.net/wp-content/uploads/2016/08/002-2-768x420.jpg 768w" sizes="auto, (max-width: 1140px) 100vw, 1140px" /></a></figure>



<p class="wp-block-paragraph">Se descargará el respaldo de la base de datos en un archivo .sql que guardaremos para después.</p>



<p class="wp-block-paragraph">Ahora deberíamos acceder al phpmyadmin del hosting de pago&nbsp;(cada uno tiene su propio panel de control, por lo tanto consultar en los manuales o al soporte técnico), crear una nueva base de datos vacía:</p>



<figure class="wp-block-image"><a href="https://danisanchez.net/wp-content/uploads/2016/08/003-2.jpg"><img loading="lazy" decoding="async" width="533" height="213" src="https://danisanchez.net/wp-content/uploads/2016/08/003-2.jpg" alt="Crear base de datos vacía" class="wp-image-1148" srcset="https://danisanchez.net/wp-content/uploads/2016/08/003-2.jpg 533w, https://danisanchez.net/wp-content/uploads/2016/08/003-2-300x120.jpg 300w" sizes="auto, (max-width: 533px) 100vw, 533px" /></a></figure>



<p class="wp-block-paragraph">E importar nuestra base de datos de respaldo.</p>



<figure class="wp-block-image"><a href="https://danisanchez.net/wp-content/uploads/2016/08/004-1.jpg"><img loading="lazy" decoding="async" width="1126" height="850" src="https://danisanchez.net/wp-content/uploads/2016/08/004-1.jpg" alt="Importar la base de datos de respaldo" class="wp-image-1149" srcset="https://danisanchez.net/wp-content/uploads/2016/08/004-1.jpg 1126w, https://danisanchez.net/wp-content/uploads/2016/08/004-1-300x226.jpg 300w, https://danisanchez.net/wp-content/uploads/2016/08/004-1-1024x773.jpg 1024w, https://danisanchez.net/wp-content/uploads/2016/08/004-1-768x580.jpg 768w" sizes="auto, (max-width: 1126px) 100vw, 1126px" /></a></figure>



<h2 class="wp-block-heading">2. Modificar la ruta de los enlaces de localhost al nuevo dominio</h2>



<p class="wp-block-paragraph">Una vez respaldada la base de datos, vamos a modificar un par de valores en una de las tablas, en concreto la que especifica la ruta de instalación de wordpress, que en nuestro ordenador estaba configurada en «localhost»:</p>



<p class="wp-block-paragraph">Localizamos la tabla <strong>wp-options</strong>:</p>



<figure class="wp-block-image"><a href="https://danisanchez.net/wp-content/uploads/2016/08/005-2.jpg"><img loading="lazy" decoding="async" width="1098" height="460" src="https://danisanchez.net/wp-content/uploads/2016/08/005-2.jpg" alt="localizar tabla wp-options" class="wp-image-1150" srcset="https://danisanchez.net/wp-content/uploads/2016/08/005-2.jpg 1098w, https://danisanchez.net/wp-content/uploads/2016/08/005-2-300x126.jpg 300w, https://danisanchez.net/wp-content/uploads/2016/08/005-2-1024x429.jpg 1024w, https://danisanchez.net/wp-content/uploads/2016/08/005-2-768x322.jpg 768w" sizes="auto, (max-width: 1098px) 100vw, 1098px" /></a></figure>



<p class="wp-block-paragraph">Hacemos clic en ella, y nos situamos sobre los campos que vamos a modificar:</p>



<ul class="wp-block-list"><li>siteurl</li><li>home</li></ul>



<figure class="wp-block-image"><a href="https://danisanchez.net/wp-content/uploads/2016/08/006-2.jpg"><img loading="lazy" decoding="async" width="756" height="201" src="https://danisanchez.net/wp-content/uploads/2016/08/006-2.jpg" alt="modicar valores de url" class="wp-image-1151" srcset="https://danisanchez.net/wp-content/uploads/2016/08/006-2.jpg 756w, https://danisanchez.net/wp-content/uploads/2016/08/006-2-300x80.jpg 300w" sizes="auto, (max-width: 756px) 100vw, 756px" /></a></figure>



<p class="wp-block-paragraph">Haciendo doble clic en los valores podemos modificarlos, y solamente deberemos cambiarlos por el nombre de domino que hayamos contratado.</p>



<p class="wp-block-paragraph">Esto hará que todos los enlaces internos de WordPress, así como las imágenes y archivos adjuntos se actualicen a la nueva ruta del alojamiento, de lo contrario seguirían apuntando a «localhost» y nos daría errores:</p>



<figure class="wp-block-image"><a href="https://danisanchez.net/wp-content/uploads/2016/08/007-2.jpg"><img loading="lazy" decoding="async" width="736" height="183" src="https://danisanchez.net/wp-content/uploads/2016/08/007-2.jpg" alt="nuevos valores de la base de datos" class="wp-image-1152" srcset="https://danisanchez.net/wp-content/uploads/2016/08/007-2.jpg 736w, https://danisanchez.net/wp-content/uploads/2016/08/007-2-300x75.jpg 300w" sizes="auto, (max-width: 736px) 100vw, 736px" /></a></figure>



<h2 class="wp-block-heading">3. Editar el archivo de configuración (wp-config.php)</h2>



<p class="wp-block-paragraph">Por último modificamos el archivo wp-config.php de nuestro wordpress local. Los parámetros a modificar son:</p>



<figure class="wp-block-image"><a href="https://danisanchez.net/wp-content/uploads/2016/08/008-3.jpg"><img loading="lazy" decoding="async" width="802" height="383" src="https://danisanchez.net/wp-content/uploads/2016/08/008-3.jpg" alt="modificar archivo de configuración wp-config.php" class="wp-image-1153" srcset="https://danisanchez.net/wp-content/uploads/2016/08/008-3.jpg 802w, https://danisanchez.net/wp-content/uploads/2016/08/008-3-300x143.jpg 300w, https://danisanchez.net/wp-content/uploads/2016/08/008-3-768x367.jpg 768w" sizes="auto, (max-width: 802px) 100vw, 802px" /></a></figure>



<ul class="wp-block-list"><li><strong>DB_NAME</strong>: sustituimos el antiguo nombre de la base de datos local (en el ejemplo &#8216;wordpresspruebas&#8217;, por el nombre de la nueva base de datos que hemos creado en el hosting profesional.</li><li><strong>DB_USER</strong>: nombre de usuario de MySQL del hosting profesional.</li><li><strong>DB_PASSWORD</strong>: contraseña de usuario de MySQL del hosting profesional.</li><li><strong>DB_HOST</strong>: dirección de la nueva base de datos, es habitual que permanezca en &#8216;localhost&#8217; pero hay hosting en los que tienes que especificar la IP del servidor de bases de datos (consultar en la documentación del hosting).</li></ul>



<p class="wp-block-paragraph">Una vez hechos estos cambios ya solo tenemos que volcar toda la carpeta de nuestro proyecto WordPress al hosting, normalmente por FTP y listo.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://danisanchez.net/subir-un-wordpress-terminado-de-tu-ordenador-local-al-servidor-final-hosting/feed/</wfw:commentRss>
			<slash:comments>9</slash:comments>
		
		
			</item>
		<item>
		<title>Instalar WordPress en Linux, particularidades y permisos de carpetas</title>
		<link>https://danisanchez.net/instalar-wordpress-en-linux-particularidades-y-permisos-de-carpetas/</link>
					<comments>https://danisanchez.net/instalar-wordpress-en-linux-particularidades-y-permisos-de-carpetas/#comments</comments>
		
		<dc:creator><![CDATA[dani.sanchez]]></dc:creator>
		<pubDate>Wed, 18 May 2016 03:28:41 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Publicaciones]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[chmod]]></category>
		<category><![CDATA[cp]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wp-config.php]]></category>
		<guid isPermaLink="false">http://www.gestionatuweb.net/?p=453</guid>

					<description><![CDATA[En el segundo capítulo del Curso de WordPress que estamos impartiendo en Gestionatuweb.net, realizábamos la instalación de WordPress en un servidor local, asumiendo que lo hacíamos en &#160;Windows ya que es el sistema más usado y no tiene mayor complicación. Solamente bastaba con copiar la carpeta de wordpress en el directorio de proyectos de WAMP, [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><iframe loading="lazy" src="https://www.youtube.com/embed/6boxlixGho8" allowfullscreen="allowfullscreen" width="560" height="315" frameborder="0"></iframe></p>



<p class="wp-block-paragraph">En el segundo capítulo del <a href="https://danisanchez.net/curso-de-wordpress/" target="_blank" rel="noopener noreferrer">Curso de WordPress</a> que estamos impartiendo en <a href="https://danisanchez.net/">Gestionatuweb.net</a>, realizábamos la instalación de WordPress en un servidor local, asumiendo que lo hacíamos en &nbsp;Windows ya que es el sistema más usado y no tiene mayor complicación. Solamente bastaba con copiar la carpeta de wordpress en el directorio de proyectos de WAMP, que normalmente es C:/wamp/www.</p>



<p class="wp-block-paragraph">En XAMPP en Linux, la carpeta para proyectos se encuentra ubicada en la ruta /opt/lampp/htdocs.</p>



<p class="wp-block-paragraph">Una particularidad de esta carpeta es que requiere de permisos de administrador para poder crear, editar o eliminar archivos y carpetas, por lo que si intentamos copiar directamente la carpeta de wordpress en /opt/lampp/htdocs, no nos va a dejar.</p>



<p class="wp-block-paragraph">Lo más rápido es hacerlo desde la terminal con el comando:</p>



<p class="wp-block-paragraph"><em>sudo cp -R wordpress /opt/lampp/htdocs</em></p>



<figure class="wp-block-image"><a href="https://danisanchez.net/wp-content/uploads/2016/05/copiar_wordpress.jpg" target="_blank" rel="noopener noreferrer"><img loading="lazy" decoding="async" width="1223" height="738" src="https://danisanchez.net/wp-content/uploads/2016/05/copiar_wordpress.jpg" alt="Copiar wordpress en el directorio de proyectos de XAMPP" class="wp-image-448" title="Copiar wordpress en el directorio de proyectos de XAMPP" srcset="https://danisanchez.net/wp-content/uploads/2016/05/copiar_wordpress.jpg 1223w, https://danisanchez.net/wp-content/uploads/2016/05/copiar_wordpress-300x181.jpg 300w, https://danisanchez.net/wp-content/uploads/2016/05/copiar_wordpress-1024x618.jpg 1024w, https://danisanchez.net/wp-content/uploads/2016/05/copiar_wordpress-768x463.jpg 768w" sizes="auto, (max-width: 1223px) 100vw, 1223px" /></a></figure>



<p class="wp-block-paragraph">Con esto ya tendríamos copiada la carpeta de wordpress dentro de la carpeta de proyectos de XAMPP con lo que ya podríamos iniciar la instalación desde el navegador.</p>



<p class="wp-block-paragraph">El segundo problema que podemos encontrarnos, es que al ejecutar la instalación, wordpress nos lance el siguiente error:</p>



<figure class="wp-block-image"><a href="https://danisanchez.net/wp-content/uploads/2016/05/error_wordpress.jpg" target="_blank" rel="noopener noreferrer"><img loading="lazy" decoding="async" width="895" height="659" src="https://danisanchez.net/wp-content/uploads/2016/05/error_wordpress.jpg" alt="error de escritura en el archivo wp-config.php" class="wp-image-449" title="error de escritura en el archivo wp-config.php" srcset="https://danisanchez.net/wp-content/uploads/2016/05/error_wordpress.jpg 895w, https://danisanchez.net/wp-content/uploads/2016/05/error_wordpress-300x221.jpg 300w, https://danisanchez.net/wp-content/uploads/2016/05/error_wordpress-768x565.jpg 768w" sizes="auto, (max-width: 895px) 100vw, 895px" /></a></figure>



<p class="wp-block-paragraph">Esto ocurre porque al copiar la carpeta wordpress en la ruta /opt/lampp/htdocs, recordemos que son carpetas de sistema que requieren de permisos de administración, y la carpeta wordpress hereda dichos&nbsp;permisos.</p>



<p class="wp-block-paragraph">El instalador de wordpress tiene que editar varios archivos y al no disponer de los permisos necesarios nos lanza el anterior error.</p>



<p class="wp-block-paragraph">Lo solucionamos agregando permisos de escritura para cualquier usuario a la carpeta wordpress usando la terminal con el comando:</p>



<p class="wp-block-paragraph"><em>sudo chmod -R 0777 /opt/lampp/htdocs/wordpress</em></p>



<figure class="wp-block-image"><a href="https://danisanchez.net/wp-content/uploads/2016/05/chmod_wordpress.jpg" target="_blank" rel="noopener noreferrer"><img loading="lazy" decoding="async" width="732" height="410" src="https://danisanchez.net/wp-content/uploads/2016/05/chmod_wordpress.jpg" alt="chmod para dar permisos de escritura a la carpeta de wordpress" class="wp-image-455" title="chmod para dar permisos de escritura a la carpeta de wordpress" srcset="https://danisanchez.net/wp-content/uploads/2016/05/chmod_wordpress.jpg 732w, https://danisanchez.net/wp-content/uploads/2016/05/chmod_wordpress-300x168.jpg 300w" sizes="auto, (max-width: 732px) 100vw, 732px" /></a></figure>



<p class="wp-block-paragraph">-R indica que se asigne a todas las subcarpetas y archivos del directorio wordpress.<br>Los permisos en linux se asignan mediante un número octal (del 0&nbsp;al 7).<br>Con 0777 estamos dando permisos de escritura a cualquier usuario del sistema, permitiendo al instalador de wordpress modificar los archivos necesarios para realizar la instalación.</p>



<p class="wp-block-paragraph">Si volvemos a la instalación ya debería funcionar:</p>



<figure class="wp-block-image"><a href="https://danisanchez.net/wp-content/uploads/2016/05/exito_wordpress.jpg"><img loading="lazy" decoding="async" width="905" height="336" src="https://danisanchez.net/wp-content/uploads/2016/05/exito_wordpress.jpg" alt="exito_wordpress" class="wp-image-450" srcset="https://danisanchez.net/wp-content/uploads/2016/05/exito_wordpress.jpg 905w, https://danisanchez.net/wp-content/uploads/2016/05/exito_wordpress-300x111.jpg 300w, https://danisanchez.net/wp-content/uploads/2016/05/exito_wordpress-768x285.jpg 768w" sizes="auto, (max-width: 905px) 100vw, 905px" /></a></figure>



<p class="has-white-color has-vivid-red-background-color has-text-color has-background wp-block-paragraph"><span style="color: #ff0000;"><strong><span class="has-inline-color has-white-color">AVISO: Mucha gente tiene el problema de que al intentar instalar un tema, plugin o actualización, WordPress le pide datos de acceso FTP. Bien, los datos que nos pide son:</span></strong></span><br><br><strong>FTP: </strong>localhost<br><strong>Usuario FTP: </strong>Tu usuario linux<strong> </strong><br><strong>Password: </strong>Tu clave de usuario del sistema.<br><br>O también puedes editar el archivo <strong>wp-config.php</strong> añadiendo la línea:<br><br><strong>define(&#8216;FS_METHOD&#8217;, &#8216;direct&#8217;);</strong></p>



<p class="wp-block-paragraph">Si tienes algún problema deja tu comentario <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-wordpress-en-linux-particularidades-y-permisos-de-carpetas/feed/</wfw:commentRss>
			<slash:comments>11</slash:comments>
		
		
			</item>
	</channel>
</rss>
