Wordpress

Velocizzare Wordpress (ma non solo) lato server con APC

“Wordpress è una piattaforma leggera e performante”. Vero. Cosa succede però se installiamo una decina di plugin super-fighi oppure il nostro tema troppo-web-2.0 (dove il requisito per essere 2.0 è di fare più di 100 query al database per aggregare gli stessi dati in 800 modi diversi)?

Esistono diverse regole di profilassi meno drastiche della soluzione che vi proponiamo in questo post e se non le avete ancora provate, o semplicemente non sapete di cosa diavolo stiamo parlando, vi esortiamo a dare un’occhio su google ai numerosi tutorial che trattano questa tematica. Se invece siete utenti più smaliziati, oppure le avete provate tutte e rischiate il posto di lavoro, quello che fa per voi si chiama APC.

APC è l’acronimo di Alternative PHP Cache ed è un sistema di caching del bytecode di PHP che viene distribuito sotto forma di estensione di PHP ed è incluso nel pacchetto PECL (verrà incluso di default nel core di PHP a partire dalla versione 6).

APC permette di immagazinare in cache le porzioni di codice PHP che vengono eseguite più frequentemente. L’impatto sulle performance è rilevante (kifulab.net è passato da 1.2 secondi a 0.7 secondi come tempo di generazione dell’homepage) e se usato insieme ad altre tecniche di ottimizzazione può dare molte soddisfazioni soprattutto se usato su siti ad alto traffico.

Per installare APC è necessario disporre degli accessi al server come amministratore e di avere un minimo di dimestichezza con apache e i file di configurazione di PHP.

Da riga di comando basta soltanto digitare:

pecl install apc

Pecl si occuperà di installare, compilando, l’estensione di PHP (se non avete PECL installato dovete installare il pacchetto php-devel).

Nel file php.ini (tipicamente collocato in /etc/php.ini) cercate la sezione dedicata alle estensioni e inserite la seguente riga di codice

extension=apc.so

Et voilà, abbiamo finito. Riavviate apache

/etc/init.d/httpd restart

E il gioco è fatto. Ovviamente l’estensione ha diverse configurazioni per le quali vi rimando alla documentazione ufficiale.

{ Nessun Commento }

Wordpress, mettere in sicurezza la cartella wp-content/uploads/

wordpress, sicurezza in pillole La cartella wp-content/uploads/ è spesso l’oggetto di attacchi da parte di malintenzionati che sfruttando la diffusa abitudine di rendere questa cartella “scrivibile dal mondo” riescono a caricare script malevoli sui siti in wordpress vittima dei loro attacchi.

Una corretta gestione dei permessi di questa cartella sarebbe la soluzione piu auspicabile ma spesso ci troviamo a dover scendere a compromessi a causa di plugin o script esterni che richiedono i permessi di scrittura per questa cartella.

Se non possiamo impedire che vengano caricati file usando delle vulnerabilità di wordpress possiamo però evitare che eventuali file php caricati su wp-content/uploads/ possano essere eseguiti. Per fare ciò dobbiamo fare affidamento su htaccess e apache.

Inserite il seguente codice all’interno di un file .htaccess e inserite il file dentro la cartella wp-content/uploads/:

<files *.php>
order deny,allow
deny from all
</files>

Queste sparute righe di codice possono rivelarsi estremamente utili e sono applicabili ovviamente a tutte le situazioni analoghe a quella della cartella wp-content/uploads/ di wordpress. Quello che fanno è bloccare l’esecuzione di file .php presenti all’interno della cartella (e sottocartelle) in modo da rendere inutilizzabili eventuali script malevoli caricati da malintenzionati. Occorre fare una precisazione relativamente all’esempio: ho usato l’estensione .php dando per scontato che i file eseguibili siano .php. Ovviamente questo stesso accorgimento può essere applicato a tutti le estensioni di file che vogliamo bloccare sulla nostra directory.

Si ringrazia Filippo Civiletti per il supporto tecnico

{ Un Commento }

7 trucchi per Wordpress

Ecco a voi 7 piccoli trucchi per ottenere il massimo da Wordpress. Eccoli, in ordine sparso:

1. Homepage personalizzata
Wordpress offre diverse possibilità per scegliere l’homepage del proprio sito. Pochi però sanno che oltre al file index.php e alle pagine statiche (selezionabili dal pannello di controllo) è possibile inserire all’interno del tema un file home.php. Questo file ha la precedenza sugli altri e viene caricato come homepage se presente nella cartella del tema.

2. Categorie con template dedicato
Con wordpress è possibile specificare dei file template diversi per ogni categoria. Per attivare questa caratteristica è sufficiente identificare l’ID (numero identificativo) della categoria e salvare all’interno del tema usato un file chiamato category-{ID-della-categoria}.php dove {ID-della-categoria} è il numero che identifica la categoria sul database (es. category-8.php). Se presente, il file verrà caricato al posto del classico archive.php.

3. Pannello delle opzioni nascoste
tutti i plugin i temi e wordpress stesso fanno un abbondante uso delle opzioni di Wordpress. Per intenderci, tutti i settaggi del CMS, dal nome del blog ai settaggi più avanzati, vengono gestiti tramite questo sistema. Wordpress permette di gestire tutte le opzioni tramite un pannellino nascosto (non linkato). Per aprirlo e quindi modificare comodamente tutti i settaggi del CMS è sufficiente aprire il proprio pannello di controllo e richiamare dalla barra degli indirizzi il file options.php (es. http://miosito.com/wp-admin/options.php

4. Wordpress come framework
Volete integrare wordpress all’interno di una vostra applicazione? Niente di più semplice: wordpress permette di essere incluso all’interno di altre applicazioni semplicemente includendo un unico file php. Come? Includete wp-blog-header.php dentro il vostro file e magicamente tutte le funzioni di wordpress, i post e tutte le funzionalità del vostro script saranno immediatamente disponibili all’interno del vostro script

5. Abilitare Thickbox Scriptaculous, Jquery e altri script
Wordpress include con la sua installazione base già moltissimi script web tra i più famosi e usati del mondo open source. E’ necessario includere nel file functions.php la chiamata alla funzione wp_enqueue_script. Ecco del codice di esempio:

1
2
3
4
<?php
    wp_enqueue_script("jquery"); // include jquery
    wp_enqueue_script("thickbox"); // Include thickbox
?>

6. JOIN SQL su tabelle esterne
Con wordpress è possibile eseguire delle JOIN SQL su tabelle esterne in modo del tutto trasparente. Basta aggiungere due filtri, uno per eseguire la JOIN e l’altra per rendere i campi scelti disponibile all’interno di ogni loop. Ecco il codice:

1
2
3
4
5
6
7
8
9
10
11
12
function my_join_function($join){
	global $wpdb;
	$join .= "LEFT JOIN mia_tabella ON " . $wpdb->posts . ".ID = mia_tabella.post_id ";
	return $join;
}
function my_fields_function($fields){
	$fields.= ",mia_tabella.mio_campo";
	return $fields;
}
 
add_filter('posts_join', 'my_join_function' );
add_filter('posts_fields', 'my_fields_function');

7. Modificare o rimuovere il meta tag Generator
Eliminiamo il meta tag “generator” per evitare di esporre la versione di Wordpress. E’ possibile aggiungere un filtro al file functions.php:

1
    remove_action("wp_head","wp_generator");

Enjoy!

{ 4 Commenti }

Pagina 5 di 7« Prima...«456»5...Ultima »