Aviso: Constante ya definida en wp-config.php en línea (inexistente)?
Me han asignado la tarea de mover un sitio web a un nuevo dominio, y me he encontrado con este extraño problema.
En la página de inicio, siempre veo esto:
Notice: Constant AUTOSAVE_INTERVAL already defined in /home/gturnat/public_html/wp-config.php on line 99
Notice: Constant WP_POST_REVISIONS already defined in /home/gturnat/public_html/wp-config.php on line 100
Lo que he intentado:
- Notice: Constant WP_POST_REVISIONS already defined sugiere comentar las constantes en
default-constants.php
, pero no funciona. - Configurar
display_errors
a0
,'0'
o'Off'
no hace nada. - Ejecutar
error_reporting(0)
aún muestra los errores. - Crear un
mu-plugin
(Como se sugiere en ¿Cómo puedo evitar que aparezcan los avisos de PHP en WordPress?).
No pasa nada y el plugin ni siquiera se carga.
Los errores siguen apareciendo. - Intenté comentar las líneas en
wp-config.php
, pero no funcionó. Los avisos siguen ahí. - Eliminé las líneas completamente y las moví por
wp-config.php
, pero las advertencias insisten en que está en las líneas 99 y 100.
Causar un error de sintaxis dentro dewp-config.php
genera un error registrado, lo que significa que el archivo no está en caché. - Intenté habilitar y deshabilitar el modo de depuración, establecer
display_errors
afalse
,0
,'0'
y'Off'
, pero no funciona. - Ejecuté
grep -1R WP_POST_REVISIONS *
ygrep -1R AUTOSAVE_INTERVAL *
con el siguiente resultado:root@webtest:# grep -lR WP_POST_REVISIONS *
wp-config.php
wp-includes/default-constants.php
wp-includes/revision.php
root@webtest:# grep -lR AUTOSAVE_INTERVAL *
wp-config.php
wp-includes/script-loader.php
wp-includes/default-constants.php
wp-includes/class-wp-customize-manager.php
Realmente no tengo ninguna otra idea para probar.
Estoy usando WordPress 4.7.2, ejecutándose en PHP 5.4 con los siguientes módulos cargados:
No hay op-cache funcionando en el servidor. Solo esas opciones.
PHP fue configurado con las siguientes opciones:
'./configure' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib64' '--libexecdir=/usr/libexec' '--sharedstatedir=/var/lib' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--build=x86_64-redhat-linux-gnu' '--host=x86_64-redhat-linux-gnu' '--target=x86_64-redhat-linux-gnu' '--program-prefix=' '--prefix=/opt/alt/php54' '--exec-prefix=/opt/alt/php54' '--bindir=/opt/alt/php54/usr/bin' '--sbindir=/opt/alt/php54/usr/sbin' '--sysconfdir=/opt/alt/php54/etc' '--datadir=/opt/alt/php54/usr/share' '--includedir=/opt/alt/php54/usr/include' '--libdir=/opt/alt/php54/usr/lib64' '--libexecdir=/opt/alt/php54/usr/libexec' '--localstatedir=/var' '--sharedstatedir=/usr/com' '--mandir=/opt/alt/php54/usr/share/man' '--infodir=/opt/alt/php54/usr/share/info' '--cache-file=../config.cache' '--with-libdir=lib64' '--with-config-file-path=/opt/alt/php54/etc' '--with-config-file-scan-dir=/opt/alt/php54/link/conf' '--with-exec-dir=/usr/bin' '--with-layout=GNU' '--disable-debug' '--disable-rpath' '--without-pear' '--without-gdbm' '--with-pic' '--with-zlib' '--with-bz2' '--with-gettext' '--with-gmp' '--with-iconv' '--with-openssl' '--with-kerberos' '--with-mhash' '--with-readline' '--with-pcre-regex=/opt/alt/pcre/usr' '--with-libxml-dir=/opt/alt/libxml2/usr' '--with-curl=/opt/alt/curlssl/usr' '--enable-exif' '--enable-ftp' '--enable-magic-quotes' '--enable-shmop' '--enable-calendar' '--enable-xml' '--enable-force-cgi-redirect' '--enable-fastcgi' '--enable-pcntl' '--enable-bcmath=shared' '--enable-dba=shared' '--with-db4=/usr' '--enable-dbx=shared,/usr' '--enable-dom=shared' '--enable-fileinfo=shared' '--enable-intl=shared' '--enable-json=shared' '--enable-mbstring=shared' '--enable-mbregex' '--enable-pdo=shared' '--enable-phar=shared' '--enable-posix=shared' '--enable-soap=shared' '--enable-sockets=shared' '--enable-sqlite3=shared,/opt/alt/sqlite/usr' '--enable-sysvsem=shared' '--enable-sysvshm=shared' '--enable-sysvmsg=shared' '--enable-wddx=shared' '--enable-xmlreader=shared' '--enable-xmlwriter=shared' '--enable-zip=shared' '--with-gd=shared' '--enable-gd-native-ttf' '--with-jpeg-dir=/usr' '--with-freetype-dir=/usr' '--with-png-dir=/usr' '--with-xpm-dir=/usr' '--with-t1lib=/opt/alt/t1lib/usr' '--with-imap=shared' '--with-imap-ssl' '--with-xmlrpc=shared' '--with-ldap=shared' '--with-ldap-sasl' '--with-pgsql=shared' '--with-snmp=shared,/usr' '--enable-ucd-snmp-hack' '--with-xsl=shared,/usr' '--with-pdo-odbc=shared,unixODBC,/usr' '--with-pdo-pgsql=shared,/usr' '--with-pdo-sqlite=shared,/opt/alt/sqlite/usr' '--with-mssql=shared,/opt/alt/freetds/usr' '--with-interbase=shared,/usr' '--with-pdo-firebird=shared,/usr' '--with-pdo-dblib=shared,/opt/alt/freetds/usr' '--with-mcrypt=shared,/usr' '--with-tidy=shared,/usr' '--with-recode=shared,/usr' '--with-enchant=shared,/usr' '--with-pspell=shared' '--with-unixODBC=shared,/usr' '--with-icu-dir=/opt/alt/libicu/usr' '--with-sybase-ct=shared,/opt/alt/freetds/usr'
Como punto de prueba, intenté ejecutarlo en PHP 5.6, con los mismos resultados, con los siguientes módulos:
Si no tienes ningún plugin que manipule esas definiciones, lo más probable es que se deba a tener las dos constantes definidas debajo de la línea en el archivo config.php
que dice:
/* ¡Eso es todo, deja de editar! Feliz blogging. */
Los números de línea relativamente altos respaldan esta idea.

No lo son. También lo intenté. Están en las líneas 90 y 91. Pero de alguna manera la advertencia está en las líneas 99 y 100.

entonces lo más probable es que no estés viendo el wp-config
correcto

... y mi wp-config
casi virgen de la versión 4.7 termina en la línea 89, así que incluso la 90 suena incorrecta

Puedes ver mi archivo en http://pastebin.com/HZhENpMu (en mi defensa, no sabía que tenía 100 líneas). Las líneas 90 y 91 están comentadas, como puedes ver.

eso se ve bien, lo que nos devuelve a la opción de que este no es el archivo correcto para mirar. ¿Estás seguro de que no hay, por ejemplo, un wp-config
en el directorio superior? Una forma simple de verificarlo es agregar un die
o introducir un error de sintaxis en el archivo que estás viendo ahora

Ya intenté eso. Ese es el punto 6. Sí lleva a una página en blanco cuando escribo cosas aleatorias dentro del archivo.

tl;dr: ¡Borra tu caché (Comet Cache)!
Respuesta larga:
Solo tengo 2 palabras: Comet Cache!
Comet Cache estaba activado.
Al revisar el código fuente encontré una nota como esta, después del cierre </html>
:
<!-- *´¨)
¸.•´¸.•*´¨) ¸.•*¨)
(¸.•´ (¸.•` ¤ Notas de Comet Cache ¤ ´¨) -->
<!-- Versión Salt del Archivo de Caché: n/a -->
<!-- URL del Archivo de Caché: http://<my-domain> -->
<!-- Ruta del Archivo de Caché: /cache/comet-cache/cache/http/<my-domain>/index.html -->
<!-- Archivo de Caché Generado Mediante: Solicitud HTTP -->
<!-- Archivo de Caché Generado El: 22 de Feb, 2017 @ 5:37 pm UTC -->
<!-- Archivo de Caché Generado En: 4.59149 segundos -->
<!-- Archivo de Caché Expira El: 1 de Mar, 2017 @ 5:37 pm UTC -->
<!-- Archivo de Caché Se Reconstruye El: 1 de Mar, 2017 @ 5:37 pm UTC -->
<!-- *´¨)
¸.•´¸.•*´¨) ¸.•*¨)
(¸.•´ (¸.•` ¤ Comet Cache está Funcionando Correctamente ¤ ´¨) -->
<!-- Cargado desde Caché El: 22 de Feb, 2017 @ 5:37 pm UTC -->
<!-- Cargado desde Caché En: 0.03472 segundos -->
Borrar manualmente /cache/comet-cache/cache/http/<my-domain>/index.html
(ruta relativa a tu directorio /wp-content/
) resolvió el problema.
Me siento tan tonto por asumir que no había caché involucrada. ¡Siempre culpa al caché!

Ja ja, sí, si pasa algo tan extraño que no tiene explicación alguna, 99 de cada 100 veces es algún tipo de caché :)

@Fayaz Lección aprendida. Solo perdí alrededor de 9 horas con esto :/ Realmente asumí que no había ningún tipo de caché en funcionamiento, ya que a veces las cosas cambiaban... Bueno, mejor suerte para mí la próxima vez.

@MarkKaplun Yo tampoco. O sea, busqué del lado de PHP, pero era del lado de Wordpress donde estaba el caching :/

Espero que hayas aprendido la lección: Los plugins no deberían manejar el caching, los servidores deberían hacerlo ;) Mejor aprende a configurar un servidor para esa tarea, que poner una aplicación encima. Bonus: Obtienes más control y mucho más poder de caché, ya que las solicitudes que están disponibles en caché nunca llegan a tu servidor de aplicaciones PHP FPM o FCGI.

@kaiser Tienes razón. Debería buscar un ejemplo de .htaccess sobre esto. Leí un poco pero no estoy del todo contento con implementarlo yo mismo, ya que no sé casi nada sobre Wordpress.

El almacenamiento en caché no tiene nada que ver con WordPress (ni con el acceso de usuarios como lo hace .htaccess
para el servidor web Apache) o con tu servidor.
