Dreamhost: personalizzare php.ini

22 03 2009

Suggerimento rapidorapido pescato dal forum di supporto di Dreamhost.

Nel caso si abbia la necessità di personalizzare il PHP.INI, ad esempio (come è servito a me) per aumentare il timeout di uno script, la procedura è questa:

  1. Se non presente, creare una directory ‘cgi-bin’ all’interno della directory che ospita il dominio (mkdir ~/domain.com/cgi-bin/)
  2. Nella home del proprio utente, creare un file (php_update.sh) contenente il seguente script:
    #/bin/sh
    
    CGIFILE="$HOME/dominio.com/cgi-bin/php.cgi"
    INIFILE="$HOME/dominio.com/cgi-bin/php.ini"
    
    cp /usr/local/bin/php "$CGIFILE"
    cp /etc/php/php.ini "$INIFILE"
    
    perl -p -i -e '
    s/.*post_max_size.*/post_max_size = 100M/;
    s/.*upload_max_filesize.*/upload_max_filesize = 100M/;
    s/.*max_execution_time.*/max_execution_time = 600/;
    s/.*memory_limit.*/memory_limit = 90M/;
    ' "$INIFILE"
    
  3. Renderlo eseguibile (chmod +x php_update.sh) ed eseguirlo (./php_update.sh).
  4. Aggiornare il file .htaccess nella root del sito (o crearlo se non presente) e aggiungere la riga seguente: “AddHandler php-cgi .php” (senza i “)
  5. Aggiungere lo script al crontab in modo da farlo eseguire a scadenza settimanale, in modo da mantenere la propria copia locale di php.ini aggiornata con quello principale.




Eeepc e Xandros: connessione a internet con UMTS Tre.it e Nokia E61

3 05 2008

Ne avevo già parlato con un articolo dedicato ai Mac Users: i telefonini brandizzati da Tre creano spesso qualche problema in più per la realizzazione di connessioni ad internet utilizzandoli come modem.

Di recente ho acquistato un Asus Eeepc (bel giocattolino, non c’è che dire), e subito mi sono scontrato con il solito problema di configurare il mio Nokia E61 per la connessione ad internet del sub-notebook.

In primis la mancanza del bluetooth mi obbliga ad utilizzare il cavo dati: questo non è comunque un problema. Quello vero è lo stesso da me riscontrato anche nella configurazione del mio iBook: i telefoni Tre hanno la loro bella connessione dati sempre attiva che se non viene fermata prima di avviare lo script di connessione nel 99% dei casi compromette la riuscita dello stesso.

Forte delle scoperte fatte precedentemente, ho studiato come la distribuzione linux ‘Xandros’ (di serie sull’eeepc) si occupa di salvare gli script di connessione, venendone finalmente a capo.

Quindi, per prima cosa collegate il Nokia all’eeepc con il suo cavo dati, poi quando il telefono lo richiede scegliete la modalità ‘PC Suite’.

A questo punto, se avviate la creazione di una nuova ‘Connessione Remota’ dall’utility di sistema dovreste trovare i vostro nokia tra i modelli di modem disponibili sul sistema.

Portate a termine la configurazione, preoccupandovi solamente di inserire *99# come numero di telefono da comporre.

A questo punto iniziamo a lavorare ‘alla console’: aprite un terminale (con la combinazione di tasti CTRL+ALT+T) e scrivete il comando

sudo kwrite /etc/chatscripts/dialup1

si aprirà l’editor di testo kwrite con il quale andremo ad editare lo script di connessione.

Per prima cosa, cancellate tutto il contenuto del file (lo script generato automaticamente dal sistema) e sostituitelo con il contenuto di QUESTO FILE.

Salvate il tutto e provate ad avviare la connessione.





Apple Leopard: disabilitare il dock 3D

18 12 2007

In un precedente post confermavo in parte i dubbi di Andrea Beggi riguardo le performance di Leopard sul vecchio iBook G4: benche’ utilizzabilissimo, alcuni ‘finezze’ dell’interfaccia grafica (come il dock trasparente e in 3d) mettevano a dura prova la scheda grafica del piccolo notebook.

Qualcuno mi ha scritto chiedendo se conoscevo un modo per disabilitare la visualizzazione in 3d del dock e recuperare un pochino di performance sui sistemi piu’ datati.

Il metodo c’e’ e prima di me ne ha parlato Paolo Di Leo nel suo blog:

 Scrivete nel terminale (/Applicazioni/Utility/Terminal):

defaults write com.apple.dock no-glass -boolean YES

-premere invio

killall Dock

-premere invio

Per tornare al nuovo Dock 3D, basta sostituire YES con NO.





Utilizzare lo stack bluetooth di Windows XP SP2 per i device dei laptop HP

16 12 2007

Mi è capitato con il laptop di un cliente: portatile HP, con Bluetooth integrato e driver widcomm fornito in bundle.

Il nuovo cellulare Sony Ericsson del cliente in questione riusciva a fare il pairing ma non veniva riconosciuto dal PCSuite per effettuare la sincronizzazione. Operazione che invece andava tranquillamente a buon fine utilizzando una antennina bluetooth USB, riconosciuta da windows XP e configurata in automatico utilizzando i drivers inclusi nel sistema operativo.

Il bluetooth integrato HP  tuttavia, benchè probabilmente compatibile, non veniva riconosciuto dallo stack nativo di windows. Perchè non ‘forzarlo’ ad utilizzare il driver di windows?

Per farlo, è necessario per prima cosa rimuovere i vecchi drivers, disinstallando il pacchetto da ‘Aggiungi-Rimuovi programmi’.

Poi aprire il file  BTH.inf nella directory C:\WINDOWS\inf ,cercare la linea seguente:

[HP.NT.5.1]
“HP USB BT Transceiver [1.2]“=       BthUsb, USB\Vid_03F0&Pid_0C24

e modificarla in questo modo:

[HP.NT.5.1]
“HP USB BT Transceiver [1.2]“=       BthUsb, USB\Vid_03F0&Pid_0C24
“HP USB BT Transceiver [Patched]“=  BthUsb, USB\Vid_03F0&Pid_011D

(in pratica aggiungiamo il Product-ID del device integrato in modo da convincere winXP ad utilizzare il driver di sistema).

A questo punto, al successivo restart del PC windowsXP riconoscerà il bluetooth integrato come compatibile e lo gestirà utilizzando il driver di sistema.

p.s.
fatta la modifica, il cellulare del cliente ha iniziato a sincronizzare senza problemi. :-)

[via X-Setup]





Safari 3: abilitare il Web Inspector

9 12 2007

Ho sempre rimpianto la mancanza su Safari di un plugin per il debug estremamente utile come FireBug, disponibile per Firefox.

A quanto pare parte delle funzionalità fornite da FireBug sono già comprese nell’ultima versione del browser di mamma Apple.

Aprendo una finestra di terminale e digitando

defaults write com.apple.Safari WebKitDeveloperExtras -bool true

safari_developer_2.gif

safari_developer_3.png

al successivo avvio di Safari, selezionando una parte di pagina e cliccando sulla selezione con il tasto destro (o Ctrl+Click) troveremo nel menù la voce ‘Inspect Element’ che, se scelta aprirà una finestra di debug estremamente accurata. :-)

[via Tech-Recipes]





SYDI, tool per la documentazione dei servers

8 11 2007

Oggi un gentile collega (grazie Massimo!) mia ha fatto scoprire un tool utilissimo e a mio avviso molto ben sviluppato.
Si tratta di SYDI (Network Documentation Project), una raccolta di vbscripts che, utilizzando delle query alle estensioni wmi dei server Windows da documentare realizza degli ottimi report (in formato Microsoft Word e fortunatamente anche in XML) contenenti tutte le informazioni sul sistema analizzato (dotazione hardware, software installato, service packs e patchs).

Attualmente gli script del progetto SYDI permettono di realizzare la documentazione nello specifico anche di server Microsoft Exchange e Microsoft SQLServer.

Ultimo ma non meno importante il supporto (non completissimo, tuttavia) per i sistemi Linux.

Alcuni tutorial sull’utilizzo degli script li potete trovare QUI.





Mac Tips: evitare la creazione dei files .DS_Store sulle unita’ di rete

17 08 2007

Lavorando in rete con sistemi diversi si puo’ notare un comportamento di MacOsX che talvolta puo’ essere fastidioso:
la creazione sulle unita’ condivise in rete da altri sistemi dei file .DS_Store.

Tali files contengono le informazioni necessarie al finder per ‘ricordare’ le impostazioni date a un determinato folder (dimensioni, modalita’ di visualizzazione ecc…).
Sui sistemi Mac questi file sono resi invisibili dallo stesso finder, tuttavia se si accede via rete a una unita’ condivisa da un diverso sistema operativo i .DS_Store vengono creati e vengono visualizzati.

Esiste la possibilita’ di disabilitare questa funzione, digitando da terminale

defaults write com.apple.desktopservices DSDontWriteNetworkStores true

Naturalmente in questo modo viene inibita la creazione dei files .DS_Store esclusivamente sule unita’ remote, non sui dischi locali.

[da http://docs.info.apple.com/article.html?artnum=301711]





MySQL: script per backup ’selettivo’

15 08 2007

Puo’ capitare di dover metter mano a siti o web application di clienti che, per risparmiare, hanno attivato sul proprio hosting un unico database MySQL e, col crescere delle applicazioni installate su di esso, hanno iniziato a differenziare le tabelle con un prefisso (es. applicazione1_nometabella, applicazione2_nometabella ecc…).

Puo’ capitare altresi’ di dover migrare una sola di queste applicazioni su un’altro server…come fare un backup del database salvando solo le tabelle con un determinato prefisso? Con questo script:

echo "SHOW TABLES" | mysql -uUSERNAME -pPASSWORD -D DBNAME | grep ^prefisso_ | xargs mysqldump -uUSERNAME -pPASSWORD DBNAME | gzip -c > backup.sql.gz

(sostituite naturalmente USERNAME, PASSWORD, DBNAME e prefisso_ con i rispettivi dati)





Aggiornare Twitter da riga di comando

14 08 2007

Usando cURL e’ possibile aggiornare twitter direttamente da console, funziona sia su Linux che su MacOsX:

curl -u username:password -d status="Cosa stai facendo?" http://twitter.com/statuses/update.xml

(al posto di username e password naturalmente vanno messi i dati di accesso al vostro account)

Abbinato a fortune (magari con frasi in italiano) e schedulato con cron puo’ diventare un metodo simpatico per riempire di fuffa la propria pagina di Twitter.





Scaricare files di grosse dimensioni con cURL

9 08 2007

cURL e’ un tool molto comodo per il download di file da internet: da linea di comando, simile al famoso wget.
Supporta il resume dei download ma purtroppo non permette di riavviare automaticamente un download interrotto (per disconnessione dal server o un qualche problema di rete).

La mancanza si puo’ colmare tranquillamente con un brevissimo shell script:

while ! curl -C - -O 'http://download.com/GrossoFile.zip'; do sleep 10; done

Nel caso il download si dovesse interrompere per qualsiasi motivo lo script attende 10 secondo e lo riavvia dal punto in cui si era interrotto.

[via]





Contare le linee di codice PHP con uno script Bash

3 08 2007

Mi è capitato di dover fare la stima del lavoro effettuato su un progetto in PHP: una delle prime cose da verificare è il numero di righe di codice sorgente scritte.

Esistono parecchi tool dedicati a questa operazione, quasi tutti commerciali.

Tramite TextSnippets ho messo mano su questo breve script bash che, lanciato nella directory radice del progetto, si occupa di contare le linee di codice effettive, escludendo commenti su uno o più righe:

find . -name '*.php' | xargs cat | sed -re ':top /\/\*.*\*\// { s/\/\*.*\*\///g ; t top }; /\/\*/ { N ; b top }' | awk '$0 !~ /^[\t[:space:]]*($|(\/\/)|(#))/' | wc -l

Notevole, e funziona senza problemi su Linux, Mac e Windows con Cygwin! :-)
[Via TextSnippets]






Mac OS X Tip: resettare una password dimenticata.

25 07 2007

Al bravo sysadmin non dovrebbe capitare, ma dimenticare la password del proprio account su MacOsX e’ un imprevisto da considerare.

La procedura per il reset e’ molto semplice:

  • Tenere premuti i tasti MELA+S durante il boot, entrando cosi’ in single-mode
  • #sh /etc/rc
  • #passwd tuousername: alla richiesta digitare la nuova password
  • #reboot

Fatto! :-)





Bash e la modalità ‘VI’

30 06 2007

Presupponendo che chi legge conosca i comandi principali di VI (e se non li ricorda, li  puo’ ripassare in questo post), vi passo questo interessante tip:

avviando la bash con l’opzione “-o vi”

#> bash -o vi

oppure una volta nella shell, digitando “set -o vi” :

#> set -o vi

sara’ possibile far riconoscere alle shell i comandi di VI, utilissimi per lo spostamento nelle righe e la loro modifica, ad esempio:

. : ripeti ultimo comando
c$ : sostituisci dal cursore al fine riga
0 : vai all’inizio della riga 
$
: vai alla fine della riga
cw : sostituisci 1 parola
r : sostituisci 1 carattere

ecc… :-)





Velocizzare Mail.app

18 04 2007

A quanto pare non sono stato l’unico a notare che il client di posta fornito con MacOsX tende a rallentare quando i messaggi di posta archiviati cominciano a diventare parecchi.

E’ possibile tuttavia rendere Mail.app piu’ performante svuotando il suo ‘Envelop Index’, un piccolo database SQLite contenente una ‘cache’ dei dati delle mail.

I passi da effettuare sono pochi e semplici:

  1. Chiudere Mail
  2. Aprire il terminale e digitare:
    • cd ~/Library/Mail
    • sqlite3 Envelope\ Index
  3. Viene avviato il prompt di SQLite. A questo punto digitare

    • vacuum subjects;
  4. Dopo qualche secondo verrà riproposto il prompt di SQLite. Premere CTRL+D per uscire.
  5. Aprire Mail.app

La procedura sopra descritta può essere anche inglobata in un AppleScript e schedulata con iCal in modo da essere eseguita automaticamente a scadenze regolari:
http://www.hawkwings.net/2007/03/03/scripts-to-automate-the-mailapp-envelope-speed-trick/





Generare la lista dei font disponibili su Microsoft Word

21 03 2007

Oggi solita richiesta ‘inusuale’:

Cliente: Ho bisogno di creare la lista dei font disponibili sul mio PC, per poi stamparli e avere un prontuario rapido, invece che andare a scorrere la tendina della scelta font.

Io: (Gh!) ok, vedo che posso fare….

Come al solito, google trova quasi immediatamente la soluzione: una semplice macro per Ms Word, direttamente dal sito di supporto della Microsoft.

La seguente macro di esempio di Visual Basic Applications Edition crea un nuovo documento vuoto e inserisce un esempio di ogni carattere disponibile:

Sub ListFonts()
Dim varFont As Variant
‘ Speeds macro processing and suppresses display.
Application.ScreenUpdating = False
‘ Create new document.
Documents.Add Template:=”normal”

‘ Loop through each available font.
For Each varFont In FontNames
With Selection
‘ Format for name of font.
.Font.Name = “times new roman”
.Font.Bold = True
.Font.Underline = True
‘ Insert Font name.
.TypeText varFont
‘ Insert a new paragraph after the Font Name.
.InsertParagraphAfter
‘ Move to the new paragraph.
.MoveDown unit:=wdParagraph, Count:=1, Extend:=wdMove
‘ Format for the font example.
.Font.Bold = False
.Font.Underline = False
.Font.Name = varFont
‘ Enter example text(Alphabetic characters.)
.TypeText “abcdefghijklmnopqrstuvwxyz”
‘ Insert a new paragraph.
.InsertParagraphAfter
‘ Move to the new paragraph.
.MoveDown unit:=wdParagraph, Count:=1, Extend:=wdMove
‘ Insert example text(Numeric characters.)
.TypeText “0123456789?$%&()[]*_-=+/<>”
‘ Insert two new paragraphs and move down.
.InsertParagraphAfter
.InsertParagraphAfter
.MoveDown unit:=wdParagraph, Count:=1, Extend:=wdMove
End With

Next varFont
Application.ScreenUpdating = True

End Sub