phpList è un pacchetto script in php opensource che permette di mettere su una mailing list via web. In questi giorni mi sono dovuto imbattere nell’installazione e configurazione su un server Linux remoto (con LAMP) dalla mia macchina client Windows, ecco la mia diretta esperienza…
Come requisiti di base phplist richiede O.S. GNU/Linux, server web Apache, MySQL 4.x o superiori, PHP 4.3.x o superiori.
Phplist gira anche su Windows con Apache, PHP e MySQL (viene raccomandato XAMPP) vedere documentazione phplistIIS.
Suggerimento: non perdere l’articolo-tutorial Email marketing a costo zero con phpList!
Per prima cosa dopo aver acceduto in remoto ad una macchina linux tramite SSH (in particolare tramite il noto client free putty) con credenziali di root (amministratore) occorre creare un database vuoto e un db user da utilizzare nel file di configurazione di phplist.
Da console remota ho creato il database chiamato “phplist”:
mysqladmin -h localhost -u root -ppassword create phplist
Ho poi creato nuovo utente e dato tutti i permessi relativamente al db “phplist” appena creato:
GRANT ALL ON phplist.* TO 'admin'@'localhost' IDENTIFIED BY 'phplistpassword ' WITH GRANT OPTION;
dove admin è il db utente e phplistpassword la relativa password (localhost è ovviamente la macchina linux locale)
Mi sono quindi disconnesso da Putty, ho scaricato da qui l’ultima versione di phplist (v2.10.5) nel mio caso il file .zip e decompressa sul desktop.
Verrà creata la cartella “phplist-2.10.5” con dentro tutti i files. Prima di procedere con il caricamento sul server web occorre innanzitutto configurarlo a dovere.
Aprire il file config.php presente dentro la cartella public_html/lists/config ed andare ad editare le seguenti righe in base a come abbiamo precedentemente impostato il db:
$language_module = "italian.inc";
(per impostare la lingua italiana nella parte frontend)
$database_host = "localhost";
(dove risiede il database mySQL)
$database_name = "phplist";
(il nome del database, nel nostro caso phplist)
$database_user = "admin";
(il nome del db user, nel nostro caso admin)
$database_password = 'phplistpassword';
(la pwd del db user, nel nostro caso phplistpassword)
Opzionalmente si possono editare le seguenti righe cambiando al posto di “lists” il nome che poi identifica la directory radice di phplist che verrà caricata nel server:
$pageroot = '/lists';
$adminpages = '/lists/admin';
Infine per togliere la modalità “testing mode” editare nel seguente modo questa riga presente un po più sotto (ciò permetterà l’effettivo funzionamento di phplist)
define ("TEST",0);
(originariamente è impostato ad 1)
Possiamo poi mettere anche la parte di amministrazione in italiano. Aprire il file languages.php contenuto all’interno di public_html/lists/admin e decommentare eliminando il simbolo # alla riga:
"it"=>array("Italian "," iso-8859-1, windows-1252 "),
Se poi quando si andrà a browsare l’indirizzo di phplist ovvero http://www.sito.com/phplist o la parte admin http://www.sito.com/phplist/admin si incorre in un errore Not set or found: Array occorre anche andare a modificare un’altra parte dello stesso file, sostituire questa intera parte:
function phplist_I18N() {
$this->basedir = dirname(__FILE__).'/lan/';
if (isset($_SESSION['adminlanguage']) && is_dir($this->basedir.$_SESSION['adminlanguage']['iso'])) {
$this->language = $_SESSION['adminlanguage']['iso'];
} else {
print "Not set or found: ".$_SESSION['adminlanguage'];
exit;
}
}
con questa:
function phplist_I18N() {
$this->basedir = dirname(__FILE__).'/lan/';
if (isset($_SESSION['adminlanguage']) && is_dir($this->basedir.$_SESSION['adminlanguage']['iso'])) {
$this->language = $_SESSION['adminlanguage']['iso'];
} else {
$_SESSION['adminlanguage'] = array(
"info" => 'en',
"iso" => 'en',
"charset" => $LANGUAGES['en'][1],
);
if (!is_dir($this->basedir.$_SESSION['adminlanguage']['iso'])) {
print "Not set or found: ".$_SESSION['adminlanguage'];
exit;
}
else
$this->language = $_SESSION['adminlanguage']['iso'];
}
}
Scarichiamo poi da questo sito i files veri e propri tradotti in italiano, avremo tre parti, cartelle LAN, INFO, HELP.
Estrarre le rispettive cartelle “it” dentro LAN, INFO e HELP presente dentro public_html/lists/admin.
Posso quindi caricare tutta la cartella lists tramite FTP (utilizzando l’ottimo client free Filezilla) nel server Linux (nella cartella htdocs per antonomasia dove vengono “pubblicati” i files sul web da Apache) e col browser in locale sul mio client Windows puntare al seguente indirizzo per inizializzare phplist ed il relativo db: http://www.sito.com/lists/admin
Se si incorre in errori consultare i siti di supporto elencati sotto, comunque in generale potrebbe essere dovuto ad un’errata configurazione dei files .htaccess oppure dei permessi sul server, oppure verificare che punti a http://www.sito.com/lists/admin/index.php e per la parte frontend http://www.sito.com/lists/index.php)
Una volta correttamente acceduti si avrà la pagina di admin già in italiano con i campi di username e password per accedere al pannello di amministrazione (lo username è “admin” e la password “phplist”, che poi per ragioni di sicurezza potrà essere cambiata successivamente); per accedere alla parte frontend puntare a http://www.sito.com/phplist
Link utili:
Documentazione ufficiale
Forum ufficiale
FAQ ufficiali
Ciao, la tua è la guida per l' installazione di phplist più completa che ho trovato.
Tuttavia, puntando a http://www.sito.com/lists/index.php
e anche per l' installazione, con Tophost mi dà errore 500.
Quindi il problema è o nei permessi o nell' htaccess.
Mi dici per prima cosa per quali cartelle devo modificare i permessi? e poi 755 o 777? Ciao e grazie ancora per la tua guida.
Ciao Angelo ti ringrazio!
Si il problema dovrebbe essere li, io per i permessi o chmodato tutto a 777 (almeno per eseguire l'inizializzazione della parte admin) poi tanto dopo ho visto mi viene riportato tutto a 755 come "default", o eventualmente lo reimposti manualmente. Questo è il file htaccess che ho io:
<code>
<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !/phplist
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</ifmodule>
</code>
al posto di <code>!/phplist</code> dovrai mettere naturlmente la directory radice per es. <code>!/lists</code>, io lo ho impostato così perchè come test qui nel mio spazio lo faccio puntare a http://www.digitalking.it/phplist
poi al max se continui ad avere problemi apri un ticket presso Tophost, loro poi mi hanno risolto nel giro di qualche giorno
Purtroppo continua a non andare… mi sa che aprirò anche io un ticket tophost 😀
allora… per i posteri: se incorrete nel mio stesso errore, vi basta aggiungere un cancelletto all' ultima riga dell' htaccess situato in /lists/
Ciao!
…davanti all' ultima riga! 😀
Come funziona phplist ti trovi bene?
ciao, l'ho utilizzato solo per scrivere il tutorial, poi non l'ho più usato da tempo ma so che è il top per la sua categoria di prodotto, inoltre non risulta complicatissimo da utilizzare
Ciao e Grazie per il prezioso aiuto.
Grazie della spiegazione. L’unica cosa che non va nella traduzione in italiano è nella pagina di admin li lista dei messaggi. Vedo la pagina bianca. Invece se entro in inglese la vedo correttamente.
Dov’è l’errore, grazie
Ciao Stefano, intendi questa pagina: admin/?page=messages ? A me sinceramente non da problemi (ho verificato qui sul mio spazio web che ancora ho su la copia di prova di phplist che ho utilizzato per scrivere l'articolo), come da articolo ho utilizzato i files scaricati da questo sito: http://www.adrianoperuffo.com/index.php?option=co… e opportunamente configurato il file config.php e languages.php. Simone
il problema relativo alla pagina
admin/?page=messages
su alcuni server lo fa su altri no.
per tutti coloro che vedono una pagina vuota basta editare
il file /admin/lan/it/messages.php
e modificare il secondo rigo
$lan = array (
con
$lan = array(
in pratica senza lo spazio e tutto funzionerà.
@ Angelo:
salve,
in questi giorni sto provando a installare php…ho seguito tutto il tutorial e ho avuto il problema anch'io dell'errore 500, ho inserito il cancelletto, ma continua a darmi errore 500!!
😥
qualche altro suggerimento?
grazie
Il # canceletto bisogna inserirlo all'inizio dell'ultima riga del file .htaccess presente in lists. 😉