To begin, you'll need an AWS account and lunch EC2 instance with your specific requirement. I have used AWS EC2 t4g.small instance with Ubuntu OS, as it provides a balance between computing power and cost-efficiency, making it ideal for hosting applications like Sendy.
Installing Necessary Software
Connect to your instance via SSH, proceed with the environment setup. Update your server's package index and install the necessary software packages:
sudo apt update
sudo apt install mysql-server apache2
sudo apt install php-fpm php-mysql php-xml php-mbstring
These commands install MySQL for database management, Apache2 for serving your application, and PHP along with essential extensions that Sendy requires to function properly.
Configuring MySQL
create a database and user for Sendy
sudo mysql
CREATE DATABASE sendy_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'sendy_user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON sendy_db.* TO 'sendy_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Replace, sendy_db with your actual database name, sendy_user with your actual database user and password with your password
Uploading and Configuring Sendy
Upload Sendy's files to your server, typically in the /var/www/sendy directory.
Update /var/www/sendy/includes/config.php for configuring database and domain in sendy
sudo vi /var/www/sendy/includes/config.php
define('APP_PATH', 'https://domain_name.com'); // Domain
$dbHost = ''; //MySQL Hostname
$dbUser = ''; //MySQL Username
$dbPass = ''; //MySQL Password
$dbName = ''; //MySQL Database Name
Configuring Apache
Set up a virtual host for Sendy in Apache:
sudo vi /etc/apache2/sites-available/sendy.conf
<VirtualHost *:80>
ServerName domain_name.com // Use Sendy Hosting Domain
DocumentRoot /var/www/sendy
<Directory /var/www/sendy>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Enable the site and necessary modules, then restart Apache and PHP to apply the changes:
sudo a2ensite sendy.conf
sudo a2enmod rewrite
sudo systemctl restart apache2
sudo systemctl restart php8.1-fpm
Securing Your Server with SSL
Install Certbot and set up an SSL certificate to secure your Sendy installation:
sudo apt-get install certbot python3-certbot-apache
sudo certbot --apache
Installing Sendy
Navigate to https://domain_name.com/install.php to run the Sendy installer. Follow the on-screen instructions to complete the setup.
Enable Cronjob
Set up a Cron job to handle scheduled tasks:
sudo crontab -u www-data -e
Add Line below
*/5 * * * * /usr/bin/curl -s http://domain_name/scheduled.php > /dev/null 2>&1
sudo systemctl reload cron
Please note that Sendy is not officially tested on Nginx. Sendy is only officially supported and tested on Apache.
Top comments (1)
SENDY especially use for send newsletter or blog notification email.