Here's a step-by-step to setup a RackSpace Cloud Server with CentOS for PHPList (http://phplist.com):
Install PHP, PHP IMAP module, PHP MySQL module, MySQL Server and FTP server:
> yum install php > yum install php-imap > yum install php-mysql > yum install mysql-server > yum install vsftpd
Apache and a number of other related packages are installed automatically as dependencies.
Set Apache, MySQL and FTP service to start on boot:
> /sbin/chkconfig --level 345 httpd on > /sbin/chkconfig --level 345 mysqld on > /sbin/chkconfig --level 345 vsftpd on
Start Apache, MySQL and FTP:
> /sbin/service httpd start > /sbin/service mysqld start > /sbin/service vsftpd start
Set MySQL root password:
> /usr/bin/mysqladmin -u root password 'somepass' > /usr/bin/mysqladmin -u root -h ENS password 'somepass'
Download PHPList distribution:
> mkdir /root/archive > cd /root/archive > wget http://downloads.sourceforge.net/project/phplist/phplist/2.10.10/phplist-2.10.10.tgz?use_mirror=voxel
Unpack and install
> tar -xvzf phplist-2.10.10.tgz
> rsync -avz phplist-2.10.10/public_html/lists \
/var/www/html/
Add FTP user and set file ownership:
> /usr/sbin/useradd -d /var/www/ webmaster > passwd webmaster > chown --recursive webmaster.webmaster /var/www/html/
Create database:
> echo "CREATE DATABASE lists" | mysql --password=somepass -u root
> echo "GRANT ALL PRIVILEGES ON lists.* TO 'lists_web'@'localhost'
identified by 'yyyyyy';" | \
mysql --password=somepass -u root
> echo "FLUSH PRIVILEGES" | \
mysql --password=somepass -u root
Configure firewall:
> system-config-securitylevel-tui
From the security level menus, set SELinux to disabled, then customize and allow incoming WWW and FTP.
Setup PHPList config file:
> vi /var/www/html/lists/config/config.php
In the editor, set database parameters.
In your web browser go to:
http://your.domain.com/lists/admin/
You'll be prompted to initialize the database. Follow the installation screens to complete the install process.
http://your.domain.com/lists/admin
To view trusted networks as the zimbra user:
/opt/zimbra/bin/zmprov gs {servername} zimbraMtaMyNetworks
To set trusted networks as the zimbra user do:
/opt/zimbra/bin/zmprov ms {servername} zimbraMtaMyNetworks {space delimited list of address and/or cidr ranges}
To cleanly handle double bounces:
1. Create a dot-qmail file at /var/qmail/mailnames/yourdomain.com/.qmail-doublebounce containing:
|exit 0
2. Route double bounces to this file:
echo yourdomain.com > /var/qmail/control/doublebouncehost
echo doublebounce > /var/qmail/control/doublebounceto
On a server, if outgoing email is being blocked by spam filters, I can sometimes get around the problem by using an IPTables rule to force the email out through a different IP address like this:
/sbin/iptables -t nat -A POSTROUTING -p tcp --dport 25 -j SNAT --to-source w.x.y.x
To export the mailbox for user@acme.com as a zip file use this command:
/opt/zimbra/bin/zmmailbox -z -m user@acme.com getRestURL \
'//?fmt=zip&query=is:anywhere' > user_at_acme_com.zip
Here is the same as a tgz file:
/opt/zimbra/bin/zmmailbox -z -m user@domain.com getRestURL \
“//?fmt=tgz” > /tmp/account.tgz
And here's a restore of the tgz file:
/opt/zimbra/bin/zmmailbox -z -m user@domain.com postRestURL \
“//?fmt=tgz&resolve=reset” /tmp/account.tgz