Archivio

Posts Tagged ‘Php’

AfterLogic Webmail

25 settembre 2009 Nessun commento

wmUna comoda webmail con un buon front-end che supporta il protocollo POP3 ed IMAP e’ la AfterLogic Webmail. Il presente articolo si riferisce all’installazione della versione gratuita della webmail, la versione Webmail Lite ed in particolare la versione scritta in PHP.

La procedura e’ abbastanza semplice:

si scarica il pacchetto:

wget http://www.afterlogic.com/download/webmail_php.zip

Di decomprime il pacchetto installato:

unzip webmail_php.zip

Una volta estratto viene creata una cartella con nome ‘web’ al cui interno e’ contenuta tutto il software necessario, un file di readme (che potete tranquillamente eliminare). La prima operazione da fare quindi e’ rinominare la cartella ‘web’ con un altro nome tipo ‘webmail’!

All’interno della cartella webmail c’e’ la cartella ‘data’ molto importante per la configurazione della webmail.

E’ importante impostare i permessi di chmod a 777 sulla cartella ‘data’ affinche l’utente web riesca a scrivere al suo interno i file necessari alla configurazione. In alternativa si puo’ effettuare il chown e il chgrp della cartella con l’utente web. Assumiamo quindi che l’utente web si chiami www-data dovra’ quindi essere eseguito il comando:

chown www-data.www-data data

Si predisponga prima di avanzare con l’installazione della webmail un database Mysql con relativo utente e password.

Si esegue la procedura indicata dall’installer della webmail. La URL da digitare per eseguire l’installer e’ la seguente:

http://your_server_name/webmail/adminpanel/install.htm

In particolare e’ importante inserire il server di connessione al mysql (se si riferisce alla stessa macchina si puo’ inserire ‘localhost’) e i dati di accesso.

Nel punto 4 viene richiesto di inserire un eventuale prefisso da assegnare alle tabelle che creera’ la webmail sul database mysql. Si inserisca ad esempio “al_” in modo che tutte le tabelle avranno il nome “al_<nome_tabella>”.

Il bello della procedura e’ che per ogni step viene fatta una verifica per cui non permette di andare avanti se prima non si verificano le condizioni di funzionamento. Quindi ci sara’ un test per la connessione a mysql con le credenziali indicate, un tentativo di connessione al server POP3, Imap e SMTP.

In fase di installazione viene richiesto l’inserimento della password dell’utente mailadm che vi permette di accedere al’linterfaccia di configurazione:

http://your_server_name/webmail/adminpanel

Da qui e’ possibile impostare una serie di personalizzazioni come il tema, il formato del login e molto altro.

In particolare si presti attenzione alla sezione “login” che permette di scegliere le modalita’ di accesso all’account compatibilmente con il server di posta utilizzato.

Se l’accesso alla casella viene autorizzato con la username identica all’indirizzo email si deve spuntare la voce “hide login field” e si selezioni la voce dal menù a tendina “use email as login”. Se invece c’e’ un account vero e proprio (senza il simbolo @ per intenderci) allora dal menu’ a tendina si selezioni “Use account name as login”.

Se la webmail viene installata per essere utilizzata su un solo dominio potrebbe essere utile allora selezionare la voce “hide email field”. In questo caso si puo’ scegliere di specificare direttamente dall’amministrazione il nome di dominio con la possibilità di inserire solo la username anche se l’accesso al server mail viene effettuato attraverso l’indirizzo email. In questo caso pero’ si deve flaggare la voce “.

In alternativa, se l’accesso vuole essere consentito a piu’ domini si puo’ predisporre l’immissione da parte dell’utente del nome di dominio in aggiunta alla username e password. In questo caso si deve flaggare la voce “.

Se si flagga la voce “Allow advanced login” si da la possiblita’ all’utente addirittura di modificare il server SMTP.

Se invece si flagga la voce “Automatically detect and correct if user inputs e-mail instead of account-name” la AfterLogic webmail tenta di correggere l’eventuale immissione errata di un utente. Se si scrive ad esempio ‘pipo’ in luogo di ‘pippo’ la webmail corregge automaticamente la username (non la password ovviemente) senza fornire al’lutente il messaggio “username errata”.

Tutto qui…. buon divertimento

Installare la suexec e mod_fcgid con apache2 in Debian Lenny

14 settembre 2009 2 commenti

apacheDi default il web server apache esegue gli script php di un sito con l’utente “www-data”. Per permettere ad uno script di memorizzare dati all’interno di una directory, allora i permessi di quest’ultima devono essere settati a 777 oppure il proprietario della cartella deve essere l’utente “www-data”. In questo caso, se sul vostro server web e’ attivo piu’ di un sito internet, allora uno script di un dominio potrebbe modificare i dati di un’altro. Come fare per ovviare a questo problema?  Eseguendo gli script di ogni sito con un utente distinto installando la suexec, mod_fcgid ed utilizzando il php in modalita’ cgi. Piu’ difficile a dirsi che a farsi, bastano difatti pochi comandi e qualche minuto per configurare il tutto:

1) Innanzitutto e’ necessario installare la suexec, il modulo fcgid ed il
php come cgi:

apt-get install apache2-suexec libapache2-mod-fcgid php5-cgi

2) Abilitiamo questi due moduli:

a2enmod suexec
a2enmod fcgid

3) Adesso dovremo forzare il PHP a correggere il percorso del cgi in modo conforme alle specifiche PATH_INFO/PATH_TRANSLATED. Bastera’ aggiungere nel php.ini (/etc/php5/cgi/php.ini) questa direttiva:

cgi.fix_pathinfo = 1

4)Andiamo a creare l’utente proprietario del sito:

adduser utente-sito

5) Creiamo le directory che conterra’ il sito web ed impostiamo su essa il
corretto proprietario:

mkdir -p /var/www/vhosts/sito1/htdocs
chown utente-sito:utente-sito /var/www/vhosts/sito1/htdocs

N.B. La suexec e’ precompilata per contenere i siti in /var/www
Potrete verificarlo eseguendo questo comando e leggendo il contenuto della
variabile AP_DOC_ROOT:
/usr/lib/apache2/suexec -V
Per modificarlo purtroppo dovrete ricompilare la suexec

6) Creiamo il wrapper che utilizzeremo per avviare il php e configurare mod-fcgid:

mkdir -p /var/www/fcgid-conf-sito1

Inseriamo nel file /var/www/fcgid-conf-sito1/sito1.conf questo:

#!/bin/sh
export PHPRC=/etc/php5/cgi
export PHP_FCGI_MAX_REQUESTS=400
export PHP_FCGI_CHILDREN=2
exec /usr/lib/cgi-bin/php

PHPRC,PHP_FCGI_MAX_REQUESTS e PHP_FCGI_CHILDREN sono opzionali e se verranno omessi sara’ impostato il valore di default. Sono utili per poter indicare il percorso del php.ini, permettendo cosi’ di utilizzare una configurazione diversa da sito a sito, oppure per definire il numero di child per processo ed il numero di richieste che puo’ gestire prima di terminare.

7) Impostiamo i permessi ed il corretto proprietario del wrapper:

chmod 755 /var/www/fcgid-conf-sito1/sito1.conf
chown -R utente-sito:utente-sito /var/www/fcgid-conf-sito1

8 ) Non ci rimane che inserire questo codice nella configurazione del sito:

<IfModule mod_fcgid.c>
SuexecUserGroup utente-sito utente-sito
PHP_Fix_Pathinfo_Enable 1
<Directory /var/www/vhosts/sito1/htdocs>
Options +ExecCGI
AllowOverride All
AddHandler fcgid-script .php
FCGIWrapper /var/www/fcgid-conf-sito1/sito1.conf .php
Order allow,deny
Allow from all
</Directory>
</IfModule>

9) Riavviamo il server web:

/etc/init.d/apache2 restart