Home › Forum › Plugin e temi di WP › Il sito sta incontrando difficoltà tecniche.
-
AutorePost
-
-
18 Giugno 2019 alle 13:50 #31935giosipanPartecipante
Buonasera a tutti.
E’ da ieri che il mio sito http://www.rockforlife.it non è più visualizzabile.
Non riesco ad entrare nella bacheca di wp e appare sempre il messaggio “Il sito sta incontrando difficoltà tecniche.”
Il file log mi dice questo:
[18-Jun-2019 13:23:25 UTC] PHP Fatal error: Uncaught Error: Call to undefined function mysql_connect() in /home/rockforlife/public_html/2019/wp-includes/wp-db.php:1645
Stack trace:
#0 /home/rockforlife/public_html/2019/wp-includes/wp-db.php(639): wpdb->db_connect()
#1 /home/rockforlife/public_html/2019/wp-includes/load.php(427): wpdb->__construct(‘rockforlife_wp2…’, ‘8(Re]8l8pS’, ‘rockforlife_wp2…’, ‘localhost’)
#2 /home/rockforlife/public_html/2019/wp-settings.php(120): require_wp_db()
#3 /home/rockforlife/public_html/2019/wp-config.php(90): require_once(‘/home/rockforli…’)
#4 /home/rockforlife/public_html/2019/wp-load.php(37): require_once(‘/home/rockforli…’)
#5 /home/rockforlife/public_html/2019/wp-blog-header.php(13): require_once(‘/home/rockforli…’)
#6 /home/rockforlife/public_html/index.php(17): require(‘/home/rockforli…’)
#7 {main}
thrown in /home/rockforlife/public_html/2019/wp-includes/wp-db.php on line 1645
Qualcuno può darmi un’indicazione su cosa possa essere successo?
Grazie
-
18 Giugno 2019 alle 22:34 #122732giorgio26Partecipante
Ciao giosipan,
“Il sito sta incontrando difficoltà tecniche.” E’ il modo in cui gli ultimi aggiornamenti browser indicano il classico 500 Internal Server Error .
Mi sembra che sia provocato dal tentativo di accedere al db con la funzione php mysql_connect() invece della solita mysqli_connect()
mysql_connect() è stata abbandonata anni fa e i php aggiornati non ce l’hanno più. Da qui errore 500 del server.
Per ragioni di compatibilità WordPress mantiene ancora le chiamate mysql_connect() però non si capisce come mai sia stata usata dal tuo sito. invece della solita ( attualmente ) mysqli_connect()
Si può verificare con phpmyadmin il database del server.
-
18 Giugno 2019 alle 23:07 #122733giorgio26Partecipante
Ciao giosipan,
posto un frammento (alcuni frammenti, scegli quello che ti fa comodo) che serve a verificare se il database si apre.
E’ di qualche anno fa e l’ho utilizzato alcune volte per capire un po’ meglio in che server mi trovavo.
Bisogna mettere i valori giusti al posto di my_user, my_password, my_db e localhost se del caso.
Si carica via FTP e si chiama comunemente da browser.
<?php
/* Es_mySqli.php */
/* Es. connessione mysqli */
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
/*
* This is the "official" OO way to do it,
* BUT $connect_error was broken until PHP 5.2.9 and 5.3.0.
*/
if ($mysqli->connect_error) {
die('Connect Error (' . $mysqli->connect_errno . ') '
. $mysqli->connect_error);
}
/*
* Use this instead of $connect_error if you need to ensure
* compatibility with PHP versions prior to 5.2.9 and 5.3.0.
*/
if (mysqli_connect_error()) {
die('Connect Error (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
echo 'Success... ' . $mysqli->host_info . "n";
$mysqli->close();
?>
Object oriented style when extending mysqli class
<?php
class foo_mysqli extends mysqli {
public function __construct($host, $user, $pass, $db) {
parent::__construct($host, $user, $pass, $db);
if (mysqli_connect_error()) {
die('Connect Error (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
}
}
$db = new foo_mysqli('localhost', 'my_user', 'my_password', 'my_db');
echo 'Success... ' . $db->host_info . "n";
$db->close();
?>
Procedural style
<?php
$link = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');
if (!$link) {
die('Connect Error (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
echo 'Success... ' . mysqli_get_host_info($link) . "n";
mysqli_close($link);
#
// mysqli
//$mysqli = new mysqli("example.com", "user", "password", "database");
//$result = $mysqli->query("SELECT 'Hello, dear MySQL user!' AS _message FROM DUAL");
//$row = $result->fetch_assoc();
//echo htmlentities($row['_message']);
//$mysqli->close(); /* riga mia. controllare se funziona */
?> -
19 Giugno 2019 alle 7:00 #122734giosipanPartecipante
Buongiorno giorgio26,
e grazie per l’aiuto che mi stai offrendo.
Ho caricato il file cambiando le impostazioni del db e richiamandolo dal browser mi da errore 500.
-
19 Giugno 2019 alle 8:30 #122735giorgio26Partecipante
Ciao giosipan,
francamente inizia a prendere forma il sospetto che il php del server abbia qualcosa che non va.
Facciamo altri test però.
Il frammento successivo visualizza la configurazione del php. Deve esserci una sezione mysqli
Poi controlla che safe mode sia off come dovrebbe essere.
Poi dà l’elenco delle funzioni php che sono disabilitate. nel mio caso soltanto opcache_get_status ma spesso sono disabilitate le funzioni che permettono a php di eseguire i comandi del server.
<?php
// mysqli presente?
phpinfo();
// safe mode e disabilitate
if (ini_get('safe_mode')) {echo '<br>Safe Mode ON';} else {echo '<br>Safe Mode OFF';}
echo '<br>Funzoni php disabilitate:<br>';
var_dump(ini_get('disable_functions'));
exit; -
19 Giugno 2019 alle 9:11 #122736giosipanPartecipante
Ciao giorgio26,
il file è caricato qui: https://rockforlife.it/test_db2.php
-
19 Giugno 2019 alle 9:48 #122737giorgio26Partecipante
Ciao giosipan,
la versione di php che hai è nuovissima ma temo che si sia verificato un errore alla compilazione del medesimo.
Prima della sezione mysqlnd dovrebbe esserci quella mysqli che invece è assente.
Se guardi nella sezione configure trovi ‘–without-mysqli’
Non c’è nulla che WordPress possa fare.
Se hai un buon rapporto con il fornitore puoi aprire un ticket per l’ assistenza.
-
19 Giugno 2019 alle 10:16 #122738giosipanPartecipante
Grazie giorgio26,
adesso vedo di contattare l’assistenza.
Buona giornata
Giosi
-
20 Giugno 2019 alle 7:35 #122742giosipanPartecipante
Buongiorno giorgio26,
ti scrivo soltanto per informarti che ho risolto il problema!
Tutto dipendeva da una versione non aggiornata del plugin Slider Revolution che andava in ‘loop’ e aveva creato un po’ di problemi.
WP mi ha inviato un mail con un link che mi ha dato la possibilità di entrare nella bacheca in modalità provvisoria. Ho disinstallato il plugin e adesso funziona tutto!
Grazie ancora per la tua disponibilità e gentilezza.
Buon lavoro
Giosi
-
-
AutorePost
- Devi essere connesso per rispondere a questo topic.