Avviso: Costante già definita in wp-config.php su riga (inesistente)?

22 feb 2017, 14:29:58
Visualizzazioni: 29K
Voti: 1

Mi è stato assegnato il compito di spostare un sito web in un nuovo dominio e ho riscontrato questo strano problema.
Nella homepage, vedo sempre questi messaggi:

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


Cosa ho provato:

  • Notice: Constant WP_POST_REVISIONS already defined suggerisce di commentare le costanti su default-constants.php, ma non funziona.
  • Impostare display_errors a 0, '0' o 'Off' non ha alcun effetto.
  • Eseguire error_reporting(0) continua a mostrare gli errori.
  • Creare un mu-plugin (Come suggerito in Come posso impedire la visualizzazione degli avvisi PHP in WordPress?).
    Non succede nulla e il plugin non viene nemmeno caricato.
    Gli errori continuano ad apparire.
  • Ho provato a commentare le righe in wp-config.php, ma non ha funzionato. Gli avvisi sono ancora presenti.
  • Ho rimosso le righe completamente e le ho spostate all'interno di wp-config.php, ma gli avvisi insistono che sono sulla riga 99 e 100.
    Causare un errore di sintassi dentro wp-config.php porta a un errore registrato, il che significa che il file non è in cache.
  • Ho provato ad abilitare e disabilitare la modalità debug, impostare display_errors a false, 0, '0' e 'Off', ma non funziona.
  • Ho eseguito grep -1R WP_POST_REVISIONS * e grep -1R AUTOSAVE_INTERVAL * con il seguente risultato:

    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

Non ho davvero altre idee da provare.


Sto usando WordPress 4.7.2, su PHP 5.4 con i seguenti moduli caricati:

moduli PHP caricati

Non c'è op-cache attivo nel server. Solo queste opzioni.

PHP è stato configurato con le seguenti opzioni:

'./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'

Come test, ho provato ad eseguirlo su PHP 5.6, con gli stessi risultati, con i seguenti moduli:

moduli PHP 5.6

4
Commenti

Forse l'errore era sempre presente nel server/dominio precedente -- ma il livello di segnalazione degli errori PHP è impostato diversamente ora sul nuovo server. A volte devi decidere se combatterlo o seppellirlo... almeno per far funzionare il sito così puoi continuare il debug altrove.

C C C C
22 feb 2017 15:04:05

@CC Onestamente, vorrei solo seppellirlo. Potrei scavare a fondo, ma non ho idea di dove cercare.

Ismael Miguel Ismael Miguel
22 feb 2017 17:13:21

Esegui una find in files nell'intera directory per AUTOSAVE_INTERVAL, ovviamente qualcos'altro lo sta definendo. Inoltre, commenta una costante essenziale come DB_NAME, verifica se il sito funziona ancora. È possibile che tu stia modificando il file wp-config.php sbagliato.

Fayaz Fayaz
22 feb 2017 18:52:18

@Fayaz Molto avanti rispetto a te. La funzione "trova nei file" era già stata fatta (ultimo punto nella lista) e ho persino eseguito find ./ | grep wp-config e ce ne sono solo 2. L'altro è quello di esempio. Ho persino tracciato i file, dall'index.php al wp-config.php.

Ismael Miguel Ismael Miguel
22 feb 2017 19:22:38
Tutte le risposte alla domanda 2
7

Se non hai alcun plugin che manipola queste definizioni, è molto probabile che il problema sia causato dall'avere le due costanti definite dopo la riga nel file config.php che dice:

/* That's all, stop editing! Happy blogging. */ (Tutto qui, smetti di modificare! Buon blogging.)

I numeri di riga relativamente alti supportano questa ipotesi.

22 feb 2017 15:46:12
Commenti

Non lo sono. Ho provato anche quello. Si trovano alle righe 90 e 91. Ma in qualche modo l'avviso è alle righe 99 e 100.

Ismael Miguel Ismael Miguel
22 feb 2017 16:32:34

allora molto probabilmente non stai guardando il wp-config corretto

Mark Kaplun Mark Kaplun
22 feb 2017 17:02:02

... e il mio wp-config quasi vanilla di 4.7 termina alla riga 89, quindi anche la 90 sembra sbagliata

Mark Kaplun Mark Kaplun
22 feb 2017 17:04:15

Puoi vedere il mio file su http://pastebin.com/HZhENpMu (a mia difesa, non sapevo che fosse lungo 100 righe). Le righe 90 e 91 sono commentate, come puoi vedere.

Ismael Miguel Ismael Miguel
22 feb 2017 17:37:43

sembra tutto a posto, il che riporta alle opzioni che questo non sia il file corretto da esaminare. Sei sicuro che non ci sia ad esempio un wp-config nella directory superiore? Un modo semplice per verificare è aggiungere un die o introdurre un errore di sintassi nel file che stai esaminando ora

Mark Kaplun Mark Kaplun
22 feb 2017 18:58:32

L'ho già provato. È il sesto punto. Porta effettivamente a una pagina bianca quando si scrive roba casuale nel file.

Ismael Miguel Ismael Miguel
22 feb 2017 19:18:47

Solo per chiarire un po' la mia confusione, ho modificato la terza riga in define('WP_MEMORY_LIMIT', '512M');die(WP_MEMORY_LIMIT);, e ha mostrato 512M come previsto.

Ismael Miguel Ismael Miguel
22 feb 2017 19:34:13
Mostra i restanti 2 commenti
8

tl;dr: Svuota la tua cache (di Comet)!


Risposta dettagliata:

Ho solo due parole: Comet Cache!

Comet Cache era attivato.
Controllando il codice sorgente ho trovato una nota come questa, dopo il tag di chiusura </html>:

<!-- *´¨)
     ¸.•´¸.•*´¨) ¸.•*¨)
     (¸.•´ (¸.•` ¤ Note di Comet Cache ¤ ´¨) -->

<!-- Versione Salt del File di Cache:       n/a -->

<!-- URL del File di Cache:                http://<my-domain> -->
<!-- Percorso del File di Cache:           /cache/comet-cache/cache/http/<my-domain>/index.html -->

<!-- File di Cache Generato Tramite:       Richiesta HTTP -->
<!-- File di Cache Generato Il:            Feb 22nd, 2017 @ 5:37 pm UTC -->
<!-- File di Cache Generato In:            4.59149 secondi -->

<!-- File di Cache Scade Il:               Mar 1st, 2017 @ 5:37 pm UTC -->
<!-- File di Cache Ricostruito Automaticamente Il: Mar 1st, 2017 @ 5:37 pm UTC -->

<!-- *´¨)
     ¸.•´¸.•*´¨) ¸.•*¨)
     (¸.•´ (¸.•` ¤ Comet Cache è Completamente Funzionante ¤ ´¨) -->

<!-- Caricato dalla Cache Il:    Feb 22nd, 2017 @ 5:37 pm UTC -->
<!-- Caricato dalla Cache In:    0.03472 secondi -->

Eliminando manualmente /cache/comet-cache/cache/http/<my-domain>/index.html (percorso relativo alla tua directory /wp-content/) il problema è stato risolto.


Mi sento così stupido per aver dato per scontato che non ci fosse alcuna cache attiva. Dai sempre la colpa alla cache!

22 feb 2017 19:45:24
Commenti

Ah ah, sì, se succede qualcosa di così strano che non è spiegabile, 99 volte su 100 è una qualche forma di cache :)

Fayaz Fayaz
22 feb 2017 19:54:24

@Fayaz Lezione imparata. Ho solo sprecato circa 9 ore con questo :/ Pensavo davvero che non ci fosse alcun tipo di caching, dato che a volte le cose cambiavano... Oh, beh, meglio la prossima volta.

Ismael Miguel Ismael Miguel
22 feb 2017 20:19:54

lol non ci ho nemmeno pensato alla cache

Mark Kaplun Mark Kaplun
22 feb 2017 21:19:00

@MarkKaplun Neanch'io. Voglio dire, ho guardato lato PHP, ma era lato WordPress dove c'era la cache :/

Ismael Miguel Ismael Miguel
22 feb 2017 21:55:32

Spero tu abbia imparato la lezione: i plugin non dovrebbero gestire la cache, dovrebbero farlo i server ;) Meglio imparare a configurare un server per quel compito, piuttosto che aggiungere un'applicazione sopra. Bonus: ottieni più controllo e una potenza di caching molto maggiore, poiché le richieste disponibili in cache non raggiungono mai il tuo server applicativo PHP FPM o FCGI.

kaiser kaiser
6 mar 2017 00:42:15

@kaiser Hai ragione. Dovrei controllare un esempio di .htaccess a riguardo. Ho letto un po' ma non sono completamente soddisfatto di implementarlo da solo, visto che so quasi nulla di WordPress.

Ismael Miguel Ismael Miguel
6 mar 2017 12:58:30

La cache non ha nulla a che fare con WordPress (né con l'accesso degli utenti come fa .htaccess per il server web Apache) o con il tuo server.

kaiser kaiser
6 mar 2017 15:41:37

Ora sono super confuso...

Ismael Miguel Ismael Miguel
6 mar 2017 16:06:59
Mostra i restanti 3 commenti