mercoledì 28 gennaio 2009

iPhone PDF/CHM/DOC/XLS viewer with Safari and Lighttpd


Ciao a tutti,
stasera abbiamo finalmente un bel post geeky!

Tanto tempo fa ... sul mio iPhone avevo fantastico pacchetto trovato tramite il caro vecchio Installer che forniva un carino tema per il directory listing su lighttpd per iPhone in modo che fosse possibile navigare nelle cartelle del webserver e usare i plugin nativi di Safari per aprire i file supportati senza che fosse necessario installare alcuna applicazione aggiuntiva.

Sfortunatamente questo pacchetto non è più nelle repository nè di Cydia nè di Installer (o almeno io non l'ho trovato).
Per questo stasera ho girato per Internet cercando questo fantomatico pacchetto e ho trovato questa pagina con qualche informazione a riguardo e (cosa più importante) il pacchetto con lo script php per il directory listing carino.
Dopo qualche esperimento mixando le informazioni con questo altro tutorial ho trovato il modo per farlo funzioanre sul mio iPhone di prima generazione con il Firmware versione 2.1

Eccovi i passi di installazione.


1. Scaricate tutti i file necessari


Scaricate questo .zip contenente lo script php per il directory listing migliorato per lighttpd
  • Dal link originario
  • Dal mio sito personale (un mirror verrà attivato nei prossimi giorni).


2. Installate i pacchetti necessari


Installate tramite Cydia i seguenti pacchetti:
  • lighttpd
  • PHP


3. Connettete l'iPhone via ssh (come utente root)


$ ssh root@[iphone IP address]

ottenendo

[iphone host name]:~ root#

nel mio caso

$ ssh root@192.168.1.xxx
Bilbo:~ root#



4. Create una cartella di log per lighttpd e settate i permessi con chown in modo appropriato


Bilbo:~ root# mkdir /var/log/lighttpd
Bilbo:~ root# chown nobody:nobody /var/log/lighttpd



5. Create un file .plist di startup per lighttpd


Bilbo:~ root# nano /Library/LaunchDaemons/com.http.lighttpd.plist



Potete semplicemente utilizzare un file manage che supporta ssh come Dolphin e Konqueror su KDE4 o semplicemente Konqueror in KDE3. Per usare uno di questi file manager grafici con ssh dovrete usare il protocollo fish:// scrivendo qualcosa del genere nella barra degli indirizzi:

fish://root@[iphone-IP-address]

for me

fish://root@192.168.1.xxx



6. Create il file di configurazione di lighttpd


Bilbo:~ root# nano /usr/etc/lighttpd.conf


Copiate al suo interno quanto segue:



Come potrete notare questo file è diverso rispetto a quello contenuto nel pacchetto .zip
La prima differenza è che ho scelto di usare come cartella per i dati /private/var/mobile/Sites invece di /private/var/root/Sites

L'altra differenza (più importante) è che il file binario php-cgi si trova in /usr/bin nella mia installazione piuttosto che in /opt/iPhone/bin come nella vecchia installazione di PHP.

Dopo aver impostato il file lighttpd.conf potrete controllare la correttezza della sua sintassi lanciando questo comando da terminale:

Bilbo:~ root# lighttpd -t -f /usr/etc/lighttpd.conf



7. Testate la vostra configurazione di lighttpd e PHP


Ora potete creare un file chiamato test.php nella cartella /private/var/mobile/Sites per testare le configurazioni di lighttpd e PHP:

Bilbo:~ root# nano /private/var/mobile/Sites/test.php

Copiateci questo codice per verificare il funzionamento di PHP:


Fate partire il webserver manualmente con questo comando:

Bilbo:~ root# lighttpd -D -f /usr/etc/lighttpd.conf

Ora aprendo Safari putate su http://localhost/test.php per vedere il file.
Se notate l'avviso in verde tutto sta funzionando correttamente.
Dopo questo test potete semplicemente stoppare lighttpd con un CTRL-C nel terminale.


8. Copiate la cartella dello script per il directory listing e rinominatela


Ho fatto questo passaggio con Dolphin usandolo con ssh come ho precedentemente descritto, controllando successivamente i permessi della cartella, il suo proprietario e il suo gruppo propietario con il teminale.
Se non riuscite ad effettuare la copia con un filemanager potete sempre usare scp o sftp da linea di comando.

Dopo la copia della cartella dirlist dentro a /private/var/mobile/Sites rinominatela così:

Bilbo:~ root# mv dirlist .dirlist



9. Copiate i vostri file nell'iPhone


È ora di mettere i vostri file preferiti in /private/var/mobile/Sites per sfruttare i plugin di Safari per aprirli nativamente sull'iPhone grazie a questi collegamenti alle applicazioni e alle librerie del sistema operativo di iPhone.


10. Divertitevi!


Ora avere impostato il vostro webserver. Avete i vostri file nel posto giusto... l'ultima cosa da fare è far partire il sistema per abilitare la visualizzazione.

Bilbo:~ root# launchctl load -w /Library/LaunchDaemons/com.http.lighttpd.plist

Questo dovrebbe far partire il webserver come un demone (servizio).
Se avete problemi in questo punto non preoccupatevi poichè potete usare anche altri comandi per chiudere tutto prima di un altro tentativo:

Bilbo:~ root# launchctl unload -w /Library/LaunchDaemons/com.http.lighttpd.plist

e

Bilbo:~ root# killall lighttpd


In ogni caso la cosa migliore da fare ora è riavviare l'iPhone perchè il server parta da solo come servizio all'avvio (questo è sicuramente il modo "corretto" per avviarlo).

Una volta che il server sarà attivo vi basterà puntare Safari su http://localhost per vedere la vostra cartella e poter aprire i vostri file



Spero davvero che lo sforzo nel fare questa guida sia utile non solo a me come riferimento per il futuro, ma anche a qualcuno di voi internauti che siete capitati da queste parti!

Vedremo...

Per ora è tutto gente!

Keep on hackin'

Andy

Nessun commento:

Posta un commento