Usage & Enterprise Capabilities
Key Benefits
- Cost-Effective Scaling: Send millions of emails without per-subscriber pricing constraints.
- Data Sovereignty: Complete ownership of your subscriber data, crucial for GDPR and CCPA compliance.
- Robust Throttling: Highly configurable send speeds ensure you stay within your email provider's rate limits and maintain a healthy domain reputation.
- Advanced Segmentation: Create granular subscriber segments based on custom attributes (e.g., location, sign-up date, past engagement) for targeted campaigns.
Production Architecture Overview
- Web Server: Nginx or Apache handling the administrative interface and public subscription pages.
- Application Logic (PHP): The core phpList application software executing via PHP-FPM.
- Database (MariaDB/MySQL): Stores subscriber data, campaign history, bounce logs, and tracking metrics.
- Background Worker (Cron): Scheduled tasks that process the message queue and handle bounce reconciliation asynchronously.
- SMTP Gateway: An external transactional email provider (Amazon SES, SendGrid) to actually deliver the messages over the internet reliably.
Implementation Blueprint
Implementation Blueprint
Prerequisites
sudo apt update && sudo apt upgrade -y
sudo apt install nginx mariadb-server php-fpm php-mysql php-cli php-mbstring php-xml php-curl php-gd unzip -yDatabase Setup
sudo mysql -u root
CREATE DATABASE phplistdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'phplistuser'@'localhost' IDENTIFIED BY 'secure_db_password_here';
GRANT ALL PRIVILEGES ON phplistdb.* TO 'phplistuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;Application Installation
cd /tmp
wget https://sourceforge.net/projects/phplist/files/phplist/3.6.14/phplist-3.6.14.zip/download -O phplist.zip
unzip phplist.zip
# Move the 'lists' directory into the web root
sudo mv phplist-*/public_html/lists /var/www/html/phplist
sudo chown -R www-data:www-data /var/www/html/phplist/Configuration
config.php. sudo nano /var/www/html/phplist/config/config.php$database_host = 'localhost';
$database_name = 'phplistdb';
$database_user = 'phplistuser';
$database_password = 'secure_db_password_here';config.php:define('PHPMAILERHOST', 'email-smtp.us-east-1.amazonaws.com');
define('PHPMAILERPORT', 587);
define('PHPMAILER_SECURE', 'tls');
// define('PHPMAILER_SECURE', 'ssl'); // Alternative if required
$phpmailer_smtpuser = 'your_ses_smtp_username';
$phpmailer_smtppassword = 'your_ses_smtp_password';// Send at most 3600 emails per batch
define('MAILQUEUE_BATCH_SIZE', 3600);
// Wait 3600 seconds (1 hour) before starting the next batch
define('MAILQUEUE_BATCH_PERIOD', 3600);
// Sleep for 1 second in between messages (1 email/sec max)
define('MAILQUEUE_THROTTLE', 1);Nginx Configuration
server {
listen 80;
server_name newsletters.mycompany.com;
root /var/www/html/phplist;
index index.php index.html;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; # Adjust PHP version
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# Deny access to internal files
location ~ ^/config/ {
deny all;
}
}sudo ln -s /etc/nginx/sites-available/phplist.conf /etc/nginx/sites-enabled/
sudo systemctl reload nginxSetting up Command Line Cron Jobs
sudo crontab -e -u www-data*/5 * * * * /usr/bin/php /var/www/html/phplist/admin/index.php -p processqueue -c /var/www/html/phplist/config/config.php > /dev/null 2>&1
0 */2 * * * /usr/bin/php /var/www/html/phplist/admin/index.php -p processbounces -c /var/www/html/phplist/config/config.php > /dev/null 2>&1Security and Best Practices
- Initialize Database: Complete the setup by accessing
https://newsletters.mycompany.com/adminin your browser and following the database initialization wizard. - SSL/TLS: Secure the administrative login and public subscription pages with Let's Encrypt (Certbot).
- Domain Authentication: Configure SPF, DKIM, and DMARC DNS records for your sending domain. phpList alone does not guarantee inbox placement; your domain reputation and SMTP provider setup do.
- Update Regularly: As a widely deployed PHP application, staying up to date with security patches is critical. Subscribe to the phpList announcements newsletter for update alerts.
Recommended Hosting for phpList
For systems like phpList, we recommend high-performance VPS hosting. Hostinger offers dedicated setups for open-source tools with one-click installer scripts and 24/7 priority support.
Get Started on HostingerExplore Alternative Marketing Infrastructure
WordPress
WordPress is a powerful open-source content management system (CMS) for building websites and blogs. It is production-ready, scalable, and highly extensible with plugins and themes.
Chatwoot
Chatwoot is an open-source customer engagement suite, a self-hosted alternative to Intercom and Zendesk. It provides a unified view of customer conversations across live chat, email, WhatsApp, and social media.