Archivio

Archivio per la categoria ‘PHP il turbo nel web’

PHP e MySQL 5 su CentOS 4.5

8 August 2007 maxgrante Nessun commento

Di seguito vedremo come installare php e mysql in versione 5 su CentOS 4.5 (o simili).

Partendo da un’installazione nuda (ovvero base senza alcun pacchetto aggiuntivo di CentOS 4.5) è sufficiente eseguire prima i comandi:

yum update yum (per aggiornare eventualmente yum prima di qualunque altra attività )
E poi:
yum update

Una volta installati tutti gli update per installare php e mysql 5 è sufficiente eseguire il comando:

yum –enablerepo=centosplus install php php-gd php-mysql php-mbstring php-imap mysql-server (ho definito di installare già  alcuni pacchetti utili, se non essenziali, come php-mysql)
Il sistema automaticamente prenderà  anche le dipendenze (tra cui apache) e installerà  i nuovi pacchetti.

Per poterlo fare verificare di disporre nella conf di yum (/etc/yum.repos.d/) il repository di CentOS Plus:

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever – Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
priority=2
protect=1

Se tutto fila liscio, buon php e mysql 5 a tutti.
Ciao. Maxgrante
info[AT]massimo-caselli[DOT]com

Rimuovere caratteri “sporchi” da una stringa in PHP

3 August 2007 maxgrante 11 commenti

Capita spesso di dover ripulire una stringa da caratteri diciamo “non standard” come lettere accentate, & commerciali, parentesi etc…

In php per farlo è sufficiente sfruttare la potentissima: ereg_replace() in combinazione con str_replace().

Di seguito ecco una funzione utile e la relativa spiegazione.

function cleanString($string)
{
$string = str_replace(“è”, “e”, $string);
$string = str_replace(“à “, “a”, $string);
$string = str_replace(“à”, “o”, $string);
$string = str_replace(“ì”, “i”, $string);
$string = str_replace(“ù”, “u”, $string);
$string = ereg_replace(“[^A-Za-z0-9 ]“, “”, $string );
return $string;
}

Alla funzione viene passata la stringa sorgente da ripulire, successivamente (per scelta) vengono sostituite le classiche lettere accentate con le corrispettive non accentate, giusto per non tagliare brutalmente pezzi di stringa.
A seguito di questo viene eseguita ereg_replace() con una semplice espressione regolare che consente di accettare solo i caratteri da A a Z (maiuscoli), a -> z (minuscoli), i numeri da 0 a 9 e gli spazi.
Infine la stringa viene ritornata ripulita.

Per utilizzare la suddetta funzione è sufficiente richiare un codice di questo tipo:

$stringa_sporca = “Ciao, il mio nome è Massimo & questo è il mio blog”;
echo cleanString($stringa_sporca);

La stringa si trasforma a video in:
“Ciao il mio nome e Massimo questo e il mio blog”

Naturalmente alla funzione si possono applicare diverse alternative di sostituzione caratteri “pre-pulizia” ed estenderla con argomenti in ingresso che definiscano differenti comportamenti a seconda del caso.

Se qualcuno volesse dilettarsi a farlo e volesse postarlo nei commenti con piacere aggiornerà il post riportando le sue modifiche.

Ciao. Maxgrante
info[AT]massimo-caselli[DOT]com

Categorie:PHP il turbo nel web Tag:

Potenziale debolezza di php, memory limit

13 July 2007 maxgrante 5 commenti

Casualmente mi sono imbattuto nel dover variare l’impostazione di memory limit su un server di cui non avevo il minimo accesso.
Solitamente infatti sono abituato a sviluppare su server Linux sui quali ho anche poteri di amministratore, in questo caso trattandosi di un hosting su server di un altro provider mi sono imbattuto nel dover aumentare memory_limit per poter far funzionare il noto CRM Sugar Force.

La variabile presente nel php.ini denominata memory_limit ha il compito di limitare il consumo di memoria massimo per uno script php in modo tale da evitare potenziali problemi al server web stesso in caso di cattiva gestione dello script o per qualche loop.
Per default tale valore è impostato ad 8 Mbyte, valore secondo me più che ragionevole.

In pratica Sugar Force richiede la bellezza di 32 Mbyte di memoria (se non erro) per poter funzionare.

Fatto sta che il provider in questione (giustamente) aveva l’impostazione di memory limit globale settata a 8 Mbyte e non funzionava una mazza…

Dubbioso sul poter realmente variare tale impostazione sono andato sul sito di php e nell’appendix ho scoperto quello che MAI mi sarei aspettato:

memory_limit “8M” PHP_INI_ALL

PHP_INI_ALL per intenderci indica che il valore è variabile da QUALUNQUE script php! Nemmeno come PHP_INI_PERDIR che indica invece che il valore è variabile o per directory da configurazione generale di apache o da .htaccess (se consentito Override da apache).

Insomma, nel caso specifico mi è anche andata bene perchà© ho potuto comodamente caricare in .htaccess “php_value memory_limit 64M” per poter far funzionare il CRM  perà questa cosa per me ha aperto un forte dubbio su tale scelta fatta dagli sviluppatori di php e in particolare dalla Zend.

Fortunatamente la soluzione è abbastanza facile, è infatti sufficiente disabilitare l’Override di apache ([per altro impostazione di default] non rendendo effettive le direttive di .htaccess che vengono quindi ignorate) e disattivando da php.ini la possibilità  di utilizzare la funzione ini_set().

Perà per un provider che eroga hosting per chiunque acquista uno spazio web (magari a prezzi stracciati) diventa limitativo e restrittivo.
Penso che un approccio diverso da parte della Zend e degli sviluppatori di php in merito a tale configurazione sarebbe più opportuno… almeno per le nuove versioni e configurazioni di default.

Ciao. Maxgrante
info[AT]massimo-caselli[DOT]com

Round Cube Webmail, PHP+MySQL Webmail Client

Round Cube Webmail è un sistema interamente basato su php e mysql per fornire un’interfaccia webmail completa, veloce e funzionale.
Il progetto è scaricabile da Sourceforge:

http://sourceforge.net/projects/roundcubemail/

Screenshot:

http://sourceforge.net/project/screenshots.php?group_id=139281

Di seguito vedremo i pochi passi per poterlo installare.

Scaricare da Sourceforge l’ultima versione del software.
Decomprimere con il comando:

tar -zxvf roundcubemail-0.1-rc1.1.tar.gz

Inserire i files del progetto all’interno della document root del vostro virtualhost per la gestione del webmail client (o anche su sottocartella).

Creare il database roundcubemail sul vostro mysql server.
Importarlo con il comando:

mysql -u root -p roundcubemail < SQL/mysql.initial.sql

Assegnare all’utente con cui si connetterà  RoundCube Webmail con i comandi:

GRANT SELECT, INSERT, UPDATE, DELETE ON roundcubemail .* TO roundcube@mysqlhost IDENTIFIED BY ‘password’

FLUSH PRIVILEGES

A questo punto procedere a utilizzare lo scheletro dei files presenti nella cartella config e generare quelli che utilizzerà  Round Cube così:

cp db.inc.php.dist db.inc.php
cp main.inc.php.dist main.inc.php

Editare il file db.inc.php e cambiare la stringa di connessione alla base dati secondo i valori da voi scelti.
Editare mail.inc.php impostando server SMTP, server IMAP etc…

Per una visione più completa dell’installazione consultare in file INSTALL presente nella ROOT delle pagine del progetto.

Rendete logs/ e temp/ scrivibili dal server web e possibilmente impedite che richiamando da browser la directory o i files direttamente questi siano visibili dal mondo (proteggere con .htaccess o da virtualhost vincolando ad esempio per indirizzo IP e/o con login e password).

Mantenere aggiornato!

Ciao. Maxgrante
info[AT]massimo-caselli[DOT]com

Cos’è eZPA

16 May 2007 guandalf 1 commento

eZPA è quello che noi riteniamo essere il primo progetto italiano per la realizzazione di un portale aperto per la pubblica amministrazione locale di medie/piccole dimensioni.

E’ nato dallo sforzo congiunto di [nizan] Soluzioni Open Source e il Comune di Ozzano dell’Emilia che, credendo nelle possibiltà  del modello di sviluppo dell’Open Source, ha investito tempo e denaro nella sua realizzazione.

Utilizza il Framework di sviluppo eZ publish, realizzato in php dal team di sviluppo di eZ systems riscrivendone in toto la parte dei templates di visualizzazione per ottenere la conformità  con lo standard XHTML 1.0 Strict e, con opportuni accorgimenti in fase di implementazione, la compatibilità  con la legge 4/2004 (Stanca), la legislazione italiana in merito alla fruibilità  dei siti Internet da parte delle person con diverse abilità .
A oggi, eZPA è arrivato alla versione 2 (vedi la demo).

E’ stato recentemente implementato il sito del progetto dal quale è possibile scaricare una versione di sviluppo da testare, per chiunqe volesse contribuire alla sua crescita.

Categorie:PHP il turbo nel web Tag: