venerdì 11 giugno 2010

PHPBB: perche' non vedo le modifiche fatte al template?

Avete modificato un template del vostro forum ma se ricaricate la pagina non vedete le vostre modifiche?

phpBB 3 ha un sistema di cache che crea copie statiche dei file di phpBB, soprattutto quelli legati agli stili che avete installato sul vostro forum. Questo meccanismo velocizza il caricamento del vostro sito e riduce la quantita' di banda utilizzata.

Quando dobbiamo installare qualche modifica o aggiustare il nostro stile PHPBB, una delle ragioni per cui qualcosa non funziona o una modifica appena implementata non viene visualizzata, e' perche' PHPBB sta visualizzando una vecchia versione della pagina prelevata dalla cache. Per poter visualizzare la nuova versione occorre pulire la cache.

Come fare? Il modo piu' semplice e' andare nel pannello di amministrazione di PHPBB3. Sulla pagina principale vedete le statistiche del vostro sito e sotto un'area intitolata "Risincronizza o azzera statistiche". Cercate la voce "Vuota la cache", cliccate sul pulsante Avvia corrispondente  e confermate la vostra scelta: la cache viene ripulita completamente. Nella maggioranza dei casi questa e' la soluzione perfetta per raggiungere il nostro scopo.

Pulire i file di template, i file di tema o i set di immagini per unp stile specifico.

Altre volte invece vorrete solo pulire la cache relativa ai file di uno stile specifico. Per fare questo, una volta entrati nell'area di amministrazione, cliccate sulla scheda "Stili". Da qui vedrete "Template", "Temi", "Set di immagini" sul menu di sinistra. Sara' sufficiente cliccare sul tipo di file che volete ripulire.
Vedrete quindi una lista degli stili installati. Sotto "Azioni" cliccate su "Aggiorna" sulla riga relativa allo stile che desiderate ripulire, confermate la vostra scelta per terminare la procedura.


Grosse modifiche? Dite a phpBB 3 di controllare se un file e' stato aggiornato.

Se state facendo molte modifiche, potete dire a phpBB di controllare se una nuova versione del file e' stata uploadata, prima di usare la versione in cache.

Sul pannello di amministrazione di phpBB 3 andate nel menu' di sinistra, sotto "Configurazione Server" cliccate su  "Processi"
Nella pagina seguente in fondo alle "Opzioni generali" potete vedere "Ottimizza i componenti degli stili" Selezionate "Si" and cliccate sul pulsante  "Invia" in basso.

Si raccomanda di usare questo metodo solo quando state facendo molte modifiche in quanto appesantisce parecchio il carico del vostro server. Dopo aver applicato tutte le modifiche dovreste rimettere questa opzione a "No".

lunedì 26 aprile 2010

mutt: comandi multipli

Con il comando 'b' possiamo eseguire il bounce (trasferimento) di un messaggio verso un altro indirizzo email.
Apparentemente non sembra possibile eseguire lo stesso comando su un gruppo di messaggi selezionati (tag).

E' invece possibile anteponendo un punto e virgola, il comando diventa quindi ';b'

Questo trucco puo' essere usato anche per altri comandi.

Qmail e relay: varie ed eventuali

Girare tutte le mail verso uno smarthost

Inserire nel file /var/qmail/control/smtproutes la riga seguente:
:indirizzo_o_nome_server_remoto
Tutta la posta verra' spedita tramite il server indicato.

Girare tutte le mail per un dominio specifico verso uno smarthost 

Inserire nel file /var/qmail/control/smtproutes la riga seguente:
nome_dominio:indirizzo_o_nome_server_remoto
Tutta la posta per il dominio nome_dominio verra' spedita tramite il server indicato.

Postfix e relay: varie ed eventuali

Vediamo qualche trucco per risolvere alcune situazioni di relay con postfix:

1. Come configurare postfix per usare un relay host (smarthost) remoto
2. Consentire a postfix di accettare posta in relay da ip address specifici.
3. Come ritrasmettere (relay) mail per domini specifici (ad esempio quelli locali)
4. Come configurare i domini virtuali in postfix

 
1. Come configurare postfix per usare un relay host (smarthost) remoto

Ipotizziamo che usiate Linux e il vostro provider sta filtrando il traffico sulla porta 25, impedendoti di fatto di spedire la posta direttamente dalla vostra macchina.
L'unica possibilita' in questi casi e' configurare il vostro mailserver per girare tutta la vostra posta in uscita attraverso il server del provider.
Con postfix questo e' molto semplice.

in /etc/postfix/main.cf, settate la variabile:
relayhost = smtp.yourisp.com
poi rilanciate postfix:
/etc/init.d/postfix restart
2. Consentire a postfix di accettare posta in relay da ip address specifici.

Per default, postfix consente il relay (ricezione e reinvio verso un destinatario remoto) anonimo solo ai computer della proria rete. Potete aggiungerer uno o piu' IP address che dopo il riavvio di postfix verranno considerati come IP "virtuosi" da cui puo' essere accettata posta in relay.

In /etc/postfix/main.cf cambiare:
mynetworks = 127.0.0.0/8
in
mynetworks = 127.0.0.0/8, 192.168.0.1/24, 62.35.x.x/30, x.x.x.x
 Ovvero una lista di ip address (sia sottoreti che singoli host) separati da virgole. 


3. Come ritrasmettere (relay) mail per domini specifici (ad esempio quelli locali)
 
Potete utilizzare il file /etc/postfix/transport con il seguente formato

somedomain.com     smtp:[10.0.0.1]:25
otherdomain.com    smtp:10.0.0.2:25 







ovvero:
dominio_per_cui_fare_relay    smtp:ip_server_remoto:porta








La versione con l'IP address racchiuso tra [] disabilita la verifica del record MX relativa al dominio in questione.

N.B. Verificare che in /etc/postfix/main.cf ci sia la riga seguente:
transport_maps = hash:/etc/postfix/transport
N.B. dopo ogni modifica al file /etc/postfix/transport lanciare il comando seguente:
postmap hash:/etc/postfix/transport


4. Come configurare i domini virtuali in postfix

/etc/postfix/virtual e' un file di testo dove specificare i domini e gli utenti per cui accettare le email. Ogni dominio virtuale dovrebbe cominciare con una singola linea contenente il nome del dominio.
Le righe seguenti definiscono gli indirizzi del dominio da gestire.
Le mail saranno consegnate agli utenti locali indicati sulla destra (come nell'esempio seguente). La clausola @nomedominio consente di recapitare tutte le altre mail all'utente indicato (catchall).
Potete gestire piu' di un dominio in questo file, basta ripeterne la struttura mostrata qui sotto:
dominio.com        this-text-is-ignored
postmaster@dominio.com     postmaster
address1@dominio.com     utentelocale1
address2@dominio.com     utentelocale2
@dominio.com        utentelocale1
This e-mail address is being protected from spambots. You need JavaScript enabled to view it This e-mail address is being protected from spambots. You need JavaScript enabled to view it This e-mail address is being protected from spambots. You need JavaScript enabled to view it Dovete dire a postfix dove cercare queste mappature per gli alias virtuali. La direttiva corretta si trova nel file /etc/postfix/main.cf e dice a postfix di usare la versione hash del file appena creato. Il file hash non viene creato  finche' non lanciate il comando "postmap virtual" come vedremo piu' avanti.

Il /etc/postfix/main.cf deve contenere la seguente riga
virtual_alias_maps = hash:/etc/postfix/virtual
Avendo modificato il file main.cf, dovete riavviare il demone postfix. Il secondo comando aggiorna la mappatura degli alias virtuali. Dovete rilanciare il comando postmap ogni volta che modificate il file /etc/postfix/virtual.
postfix reload
postmap /etc/postfix/virtual
Ora provate a recapitare una mail agli indirizzi del dominio virtuale. Se ci fossero problemi, verificate i log relativi al server di posta. e controllate che i due comandi precedenti siano stati eseguiti.

Mantenere un programma in esecuzione

Capita che dobbiate utilizzare un programma 24 ore su 24 ma che questo, per qualche motivo, ogni tanto si chiuda. Potete usare supervise, una utility contenuta nei daemontools (vedremo come in un altro post), ma vediamo che e' possibile anche con un semplice script (in questo esempio proccheck.sh) in cui dovete sostituire nome_servizio con il nome del processo da controllare:
progname=nome_servizio
if [ "$(/sbin/pidof $progname)" = "" ]
then
  /etc/init.d/nome_servizio start
else
  echo nome_servizio is running OK
fi
Se il processo e' in esecuzione viene visualizzato un messaggio tranquillizzante, altrimenti viene fatto partire. Per essere veramente efficace, lo script deve essere lanciato da crontab con la seguente linea:
*/15 * * * * /usr/local/bin/proccheck.sh 2>&1 > /dev/null

venerdì 9 aprile 2010

Aumentiamo la sicurezza di phpmyadmin: cambiamo URL

Tutte le installazioni di phpmyadmin sono configurate in modo da rispondere all'URL:
www.nostrosito.com/phpmyadmin
Puo' essere utile modificarlo in qualcos'altro che sia un po' meno intuitivo per i malintenzionati che possono gironzolare sul nostro server. Ad esempio
www.nostrosito.com/nonsapraimaicosacequi  :)
Per raggiungere questo risultato dobbiamo editare il file /etc/apache2/conf.d/phpmyadmin.conf
e modificare la riga:
Alias /phpmyadmin  /usr/share/phpmyadmin
in
Alias /nonsapraimaicosacequi  /usr/share/phpmyadmin

Che linguaggi o character set sono supportati da MySQL?

Per determinare quali linguaggi (character set) sono supportati in MySQL, seguite queste istruzioni:
1. Aprire l'interfaccia phpMyAdmin
2. Click sul nome del database da modificare
3. Click su SQL

4. Inserite la query seguente:
SHOW CHARACTER SET;
5. Cliccate Go per eseguire la query.


Il risultato sara' piu' o meno questo:


Charset Description Default collation Maxlen
big5 Big5 Traditional Chinese big5_chinese_ci 2
dec8 DEC West European dec8_swedish_ci 1
cp850 DOS West European cp850_general_ci 1
hp8 HP West European hp8_english_ci 1
koi8r KOI8-R Relcom Russian koi8r_general_ci 1
latin1 cp1252 West European latin1_swedish_ci 1
latin2 ISO 8859-2 Central European latin2_general_ci 1
swe7 7bit Swedish swe7_swedish_ci 1
ascii US ASCII ascii_general_ci 1
ujis EUC-JP Japanese ujis_japanese_ci 3
sjis Shift-JIS Japanese sjis_japanese_ci 2
hebrew ISO 8859-8 Hebrew hebrew_general_ci 1
tis620 TIS620 Thai tis620_thai_ci 1
euckr EUC-KR Korean euckr_korean_ci 2
koi8u KOI8-U Ukrainian koi8u_general_ci 1
gb2312 GB2312 Simplified Chinese gb2312_chinese_ci 2
greek ISO 8859-7 Greek greek_general_ci 1
cp1250 Windows Central European cp1250_general_ci 1
gbk GBK Simplified Chinese gbk_chinese_ci 2
latin5 ISO 8859-9 Turkish latin5_turkish_ci 1
armscii8 ARMSCII-8 Armenian armscii8_general_ci 1
utf8 UTF-8 Unicode utf8_general_ci 3
ucs2 UCS-2 Unicode ucs2_general_ci 2
cp866 DOS Russian cp866_general_ci 1
keybcs2 DOS Kamenicky Czech-Slovak keybcs2_general_ci 1
macce Mac Central European macce_general_ci 1
macroman Mac West European macroman_general_ci 1
cp852 DOS Central European cp852_general_ci 1
latin7 ISO 8859-13 Baltic latin7_general_ci 1
cp1251 Windows Cyrillic cp1251_general_ci 1
cp1256 Windows Arabic cp1256_general_ci 1
cp1257 Windows Baltic cp1257_general_ci 1
binary Binary pseudo charset binary 1
geostd8 GEOSTD8 Georgian geostd8_general_ci 1
cp932 SJIS for Windows Japanese cp932_japanese_ci 2
eucjpms UJIS for Windows Japanese eucjpms_japanese_ci 3