Blog : PHP

Aggiornamento PHP obbligatorio wordpress aruba

Aggiornamento PHP obbligatorio wordpress aruba

WordPress, nel corso degli anni, è diventato un CMS assai elaborato e all’avanguardia e, come tutti gli applicativi degni di rispetto, ha necessità di evolversi in continuazione per introdurre nuove funzionalità, migliorare la sicurezza o adeguarsi agli standard di linguaggio PHP con cui è scritto.

Da qualche tempo, Wordress (anche con l’accoppiata Woocomerce), richiede un aggiornamento PHP obbligatorio al fine di mantenere aggiornato il CMS ed essere pronti a recepire ulteriori sue versioni.

Perchè Aggiornamento Obbligatorio?

Il messaggio di Aggiornamento Obbligatorio viene mostrato a tutti gli utenti che dispongono di una versione PHP più datata e quindi non più supportata di aggiornamenti. Questa mancanza causa una grossa falla in termini di sicurezza (in quanto le falle di sicurezza delle precedenti versioni non vengono più sistemate) ed in termini di funzionalità (in quanto nelle versioni più recenti di PHP vengono introdotte alcune nuove funzionalità e spesso a sostituzione di altre che diventano obsolete quindi non più funzionali)

Aggiornamento PHP WordPress su Aruba

Molti dei possessori di siti web basati su WordPress, utilizzano Aruba come Hosting per ospitare il poprio portale ed è proprio a questo che dobbiamo rivolgerci per aggiornare PHP per WordPress su Aruba.

Fare questa operazione è estremamente semplice e come tutti i cambiamenti alla struttura di WordPress, è fortemente consigliato farlo dopo aver effettuato un backup completo del sito.

  • Per prima cosa è necessario accedere al proprio pannello utente di aruba posto al link https://admin.aruba.it
  • In questa schermata, bisognerà inserire le proprie credenziali Aruba e quindi accedere al proprio pannello di gestione del sito.
  • Successivamente andare sotto la voce Hosting Linux -> Strumenti e Impostazioni come riportato in foto:
Pannello Aruba per Gestione PHP

Bisogna quindi selezionare la funzione Scelta della Versione PHP come in foto

Pannello Aruba Accesso a Scelta Versione PHP

Arrivati a questa schermata, è necessario selezionare una versione PHP più recente facendo clic sul campo preferito. Personalmente suggerisco di provare sempre la versione più alta (ad esempio in foto la 7.4) applicare le modifiche e accertarsi in seguito che il sito funzioni in tutti i suoi strumenti. Diversamente è possibile scegliere versioni più basse evitando di selezionare quelle con dicitura (non più supportato)

Pannello Aruba Versioni PHP Disponibili
Backend WordPress Lento: il problema di PHP

Backend WordPress Lento: il problema di PHP

Spesso mi sono trovato a dover trattare siti web in WordPress cui pannello di amministrazione backend (e talvolta anche il frontend) risultava estremamente lento.

Le ripercussioni di questa lentezza sono molte. Anzitutto si ha una notevole difficoltà nel gestire la piattaforma che può far spazientire e talvolta impedire l’operato saturando le risorse (soprattutto la CPU del server) facendoci uscire un bel errore 500 di Apache sul nostro Browser.

Altra grave ripercussione è che quando la lentezza riguarda anche il front end i motori di ricerca avranno un giudizio negativo sul nostro sito abbassando il posizionamento nei risultati di ricerca.

Sul web ci sono moltissime soluzioni o guide per velocizzare wordpress ma oggi voglio trattare una problematica meno trattata ma che spesso si rivela essere la principale: la versione di PHP su cui il nostro WordPress gira.

Il problema della Versione PHP per WordPress.

Molto spesso quando si ha un hosting condiviso la versione del linguaggio PHP installata sul server può risultare vecchia o addirittura obsoleta. Questo succede perchè i provider di servizi tendono ad utilizzare le versioni di PHP che sono “stabili” finchè qualcuno non si lamenta. Mi capita molte volte infatti, di vedere hosting o server dedicati che utilizzano la versione 5.2 di PHP. Vedendo però la documentazione di WordPress sul loro sito ufficiale ci si rende conto che tra i prerequisiti richiesti vengono menzionate versioni di PHP decisamente superiori. Nel momento in cui scrivo, la release di PHP suggerita è infatti la 7.2. Sempre nella stessa documentazione, viene sconsigliato l’utilizzo di versioni precedenti in quanto, ovviamente, espongono il sito web a falle di sicurezza anche se non menziona le ripercussioni in termini di velocità. Questo perchè il parametro non riguarda direttamente i core di WordPress ma i plugin o i temi che andremo ad installare e che sono scritto utilizzando nuove sintassi o strumenti forniti dalle più recenti versioni di PHP.

 

Verificare versione PHP WordPress

Per scongiurare questo problema, la prima cosa da fare è vedere la versione di PHP su cui il nostro wordpress sta girando. Per verificare la versione di PHP installata, si può procedere in 3 modi:

Metodo Facile: su wordpress è possibile installare il plugin “Display PHP Version” il quale andrà semplicemente ad aggiungere una stringa sul footer del nostro backend WordPress informandoci della versione attualmente utilizzata dal nostro Server.

Metodo Medio: E’ possibile accedere al pannello di amministrazione del nostro provider visualizzando la versione PHP installata. Nelle due immagini sottostanti sono visualizzate queste informazioni su un cPanel e su un pannello di amministrazione di Aruba.

Metodo Difficile (si fa per scherzare 😉 : è possibile creare un file denominato versionePHP.php, scriverci dentro la seguente porzione di codice:

<?php phpinfo() ;

e caricarla nella cartella FTP principale del sito eseguendo poi lo script andando sull’indirizzo www.tuosito.xyz/versionePHP.php

 

Scelta della Versione PHP per WordPress

Per scegliere la versione PHP più idonea del nostro WordPress dobbiamo accedere al backend di amministrazione e nella bacheca principale, a fondo pagina, troviamo la versione di WordPress utilizzata con una stringa tipo:

Versione 4.9.8

Ovviamente il sconsiglio spassionato è quello di mantenere wordpress e i plugin installati alla versione più recente in modo da ridurre le criticità di sicurezza. Nel caso in cui quindi stiamo utilizzando una versione vecchia di wordpress, procediamo al suo aggiornamento (dopo aver fatto un bel backup di file e database).

Ci rechiamo quindi nella documentazione ufficiale di WordPress estrapolando la versione di PHP consigliata relativa alla nostra versione del CMS:

Cambiare o Aggiornare versione PHP WordPress.

Il prossimo step è quindi quello di aggiornare la versione PHP di WordPress. Le immagini successive mostrano come  questa operazione può essere effettuata su cPanel o su pannello di Amministrazione Aruba:

Versione cPanel

 

Versione Aruba

 

 

Miglior Plugin Per Velocizzare WordPress

potresti anche essere interessato a velocizzare il tuo Worpdress basandoti su altri accorgimenti indipendenti dalla versione PHP. In tal caso di consiglio la lettura di questo articolo

Inserire Shortcode in PHP – Funzione WordPress

Inserire Shortcode in PHP – Funzione WordPress

Agli amanti di WordPress sarà capitato di aver necessità di inserire shortcode in php per personalizzare un tema o creare una nuova funzionalità. Il framework di WordPress mette a disposizione anche questa funzione molto semplice da utilizzare:

<?php echo do_shortcode("[ShortcodeQui]"); ?>

Questa funzione avrà come risultato di stampare a video il risultato dello shortcode utilizzato.

 

La funzione è pubblicata sulla documentazione ufficiale QUI

Importare Database mySql grandi dimensioni

Importare Database mySql grandi dimensioni

Può accadere di dovere trasferire un database mySql su un altro server o ripristinare un backup effettuato. Quando però ci troviamo di fronte al dover importare un database mysql di grandi dimensioni, questa operazione potrebbe non essere possibile utilizzando i canali convenzionali. Probabilmente, infatti, ti sarai recato sul tuo pannello di phpMyAdmin e dopo aver selezionato il tuo database e hai avviato la procedura di Import ma questa non è andata a buon fine in quanto il database è troppo grande con conseguente messaggio di errore ” stai probabilmente cercando di caricare sul server un file troppo grande”

Alcuni cominciano quindi a ricorre a pratiche masochiste come dividere database mysql cercando di avere file di dump più piccoli da caricare singolarmente. Altri, hanno sufficienti nozioni per effettuare l’import utilizzando un accesso SSH al database utilizzando quindi le funzioni di dump. Altri cominciano a smanettare con le variabili d’ambiente cercando di estendere i limiti di upload del database.

Vorrei però trattare un metodo molto semplice ed intuitivo per importare db mysql utilizzando un applicativo chiamato MySQLDumper.

Come importare un database troppo grande

Per utilizzare MySQL Dumper è sufficiente scaricare l’applicativo qui . Effettuata questa operazione, procediamo quindi a caricare il file all’interno della root principale del nostro sito web.

Scompattiamo quindi il file caricato e accediamo, attraverso il browser, alla pagina http://miodominio.xyz/msd1.24.4/install.php .

Ci verrà quindi richiesto di selezionare la lingua scelta e clicchiamo quindi su Installazione.

Nella schermata che compare, ci verrà richiesto di inserire i parametri di accesso al nostro database quali: host, nome database, user e password.

Se il server sarà raggiungibile con le informazioni date, comparirà il messaggio di connessione avvenuta con successo e passiamo quindi a salvare la configurazione.

Successivamente carichiamo il nostro database da importare (in formato sql o zip) nella cartella msd1.24.4/work/backup 

 

Nel pannello di controllo di MySQLDumper, clicchiamo sulla voce di menù Ripristina, selezioniamo il database che vogliamo caricare (quello inserito nella cartella backup) e clicchiamo sul tasto Ripristina.

In poco tempo la procedura verrà completata ed avremo il nostro database caricato con successo.

Codice PHP Download File: forzare il download per scaricare un file

Codice PHP Download File: forzare il download per scaricare un file

Realizzando una Web Application in linguaggio PHP, può essere necessario abilitare una funzione che consente di forzare il download per scaricare un file. Il Codice PHP per il download di file è molto semplice ma in rete si trovano diversi codici che spesso non funzionano o generano dei file corrotti quindi non apribili.

Inserisco quindi un codice testato e funzionante per il download di un file .ZIP o PDF o JPEG o JPG. Per altre tipologie di file, sarà sufficiente modificare la tipologia di file da scaricare:

 

$file_name = "nomefile.zip";
if( !is_file($file_name) )
exit();
if(ini_get('zlib.output_compression'))
ini_set('zlib.output_compression', 'Off');
switch(strtolower(substr(strrchr($file_name,'.'),1)))
{
case 'pdf': $mime = 'application/pdf'; break;
case 'zip': $mime = 'application/zip'; break;
case 'jpeg':
case 'jpg': $mime = 'image/jpg'; break;
default: exit();
}
header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Last-Modified: '.gmdate ('D, d M Y H:i:s', filemtime ($file_name)).' GMT');
header('Cache-Control: private',false);
header('Content-Type: '.$mime);
header('Content-Disposition: attachment; filename="'.basename($file_name).'"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: '.filesize($file_name));
header('Connection: close');
ob_clean();
readfile($file_name);

Modulo Danea Easy Fatt con Prestashop: dimensioni immagini

Modulo Danea Easy Fatt con Prestashop: dimensioni immagini

Utilizzando il modulo di integrazione tra Danea EasyFatt e Prestashop, sviluppato da 2beweb2, può rivelarsi necessario ottenere le  immagini ingrandite all’interno della scheda prodotto di dimensioni maggiori rispetto a quanto previsto dal modulo. Lo stesso infatti, di default, consente una dimensione massima di 900×900 px compensando eventuali margini aggiuntivi con il bianco.

E’ possibile ovviare a questo limite modificando la porzione di codice posta all’interno del file: uploadimages.php

Tra le prime righe, è necessario modificare le seguenti variabili che regolano la dimensione massima delle immagini:

$max_orig_x = 900;
$max_orig_y = 900;

inserendo al posto di 900 il valore desiderato.

Questa modifica è stata segnalata ai gentilissimi sviluppatori di 2beweb2 che mi hanno informato che aumenteranno il limite nelle versioni successive del modulo.

Quando Google Analytics non funziona in prestashop

Quando Google Analytics non funziona in prestashop

Per ottenere un buon monitoraggio dei risultati sulla nota piattaforma prestashop è fondamentale utilizzare il servizio di Google Analytics. Come è noto, dopo aver creato un profilo utente è necessario incorporare un codice Javascript inserendolo all’interno del sito realizzato in Prestashop.

Per rendere la vita semplice, esiste un modulo installabile da back end trovabile inserendo “Google Analytics” o “Ganalytics” dove come parametro di configurazione è necessario inserire solo l’id fornito da Google a esempio:  UA-0000000-3

Purtroppo però spesso questa procedura non si dimostra funzionante soprattutto con le ultime versioni di prestashop o dei temi.

E’ necessario quindi editare a mano il file header.tpl ed inserire il codice javascript.

Anche questa soluzione può rivelarsi non sufficiente in  quanto il framework Smarty con il quale sono realizzati molti temi non riesce ad interpretare alcuni caratteri contenuti nel codice. Per ottemperare a questa situazione è necessario iniettare il codice all’interno degli snippet {literal} e {/literal} diventando quindi

 

{literal}
<script>
 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
 m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
 })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-0000000-3', 'auto');
 ga('send', 'pageview');
</script>
{/literal}
Abilitare ZipArchive in PHP su Hosting Condiviso Aruba

Abilitare ZipArchive in PHP su Hosting Condiviso Aruba

Se stiamo realizzando, modificando o utilizzando una web application basata su PHP, potrà tornarci utile o obbligatorio abilitare l’estensione ZipArchive su Hosting Condiviso Aruba.

ZipArchive è l’estensione che consente ad uno script PHP di generare o estrarre archivi ZIP.

 

Abilitare ZipArchive su Aruba

Aruba di default non abilita ZipArchive per le soluzioni Hosting Condivisi per ovvie ragioni di sicurezza. E’ possibile però abilitare questa funzione in modo permanente o per il solo tempo necessario per eseguire un’operazione. Ho quindi preparato un video esplicativo.

 

Facebook needs the CURL PHP extension

Facebook needs the CURL PHP extension

Utilizzando le API di Facebook così come altre applicazioni, può accadere di imbatterci in questo messaggio di errore:

Facebook needs the CURL PHP extension

Il problema nasce dal fatto che per molte delle sue API, Facebook ha necessità di comunicare con il nostro server utilizzando le cURL. In soldoni, queste danno la possibilità di trasferire dati attraverso la sintassi delle Url.

Se ci siamo imbattuti in questo problema, vuol dire che il nostro server non ha le cUrl istallate. In ambienti Debian sarà sufficiente accedere al nostro server e installare con:
apt-get install php5-curl

services apache2 restart

Nel caso in cui stessimo ancora utilizzando php4 basterà sostituire il nome del pacchetto con php4-curl

Analizzatore Log Mail su Server

Analizzatore Log Mail su Server

Uno degli attacchi hackers più frecquenti, riguardandi hosting o server, sono quelli in cui viene caricato all’interno di una delle cartelle del sito o della web application, un file scritto in diversi linguaggi che è in grado di inviare email spamm mentendo in serio pericolo l’usabilità del sito ma soprattutto rendendoci responsabili di eventuali azioni legali.

Molte volte capita che su un solo server siano ospitati più siti e che quindi sia molto difficile trovare il file “infetto” che genera il traffico di spamm.

Con PHP 5.3 viene introdotta un’importante novità ovvero, è possibile specificare quale file può fungere da log mail e quindi memorizzare gli estremi di ogni email mandata dal nostro server. Utilizzando questa funzione, per ogni email inviata, troveremo il corrispondente file che l’ha generata consentendoci quindi di eliminarlo e successivamente di correre ai ripari cercando di trovare la falla che ha consentito la scrittura dello stesso.

Basta quindi editare il file php.ini e specificare le variabili alle righe:
mail.add_x_header = On
mail.log = /var/log/phpmail.log

La prima riga aggiunge al log mail X-Header Addizionali dandoci informazioni sul processo e sul nome e percorso del file che ha generato la mail.

La seconda riga specifica in quale file queste informazioni debbano essere inserite.

Nel caso in esempio, sarà quindi necessario creare un file phpmail.log nel persorso /var/log/phpmail.log e renderlo scrivibile dal processo di PHP

Per ogni email che partirà dal nostro server, avremo una linea di log simile a quella sottostante:

1
mail() on [/var/www/miosito.com/httpdocs/pages/formmail.php:50]: To: info@miosito.com -- Headers: From: "John Brown Smith: " <jsb@miosito.com>

Facile capire il percorso che ha generato la mail e apporre le dovute soluzioni.