Hướng dẫn cài đặt Sendy trên VPS CentOS 6

Nếu bạn là một người đang nghiên cứu về email marketing chắc hẳn bạn đã từng nghe đến Sendy. Phần mềm gửi email với mức giá siêu rẻ sử dụng dịch vụ Amazon Web Service. Để có thể cài đặt Sendy, bạn sẽ cần chuyển bị Linux hosting hoặc VPS. Nếu bạn không biết quá nhiều về kỹ thuật, tôi khuyên bạn nên sử dụng Shared Hosting của Hawkhost hoặc Siteground. Ngược lại, bạn nên cài đặt trên VPS chuyên dụng để đạt được hiệu quả tốt nhất.

Cài đặt Sendy trên CentOS 6 VPS

Cài đặt Sendy trên CentOS 6 VPS

Tại sao không nên sử dùng shared hosting

Mọi người đều biết, chi phí sử dụng hosting khá rẻ, tuy nhiên do sử dụng chung IP với rất rất nhiều các website khác nên khả năng bị dính blacklist rất cao. Điều đó khiến việc gửi email không hiệu quả, thậm chí tài khoản Amazon bị khóa.

Chúng tôi khuyến khích bạn nên sử dụng VPS để có IP riêng để khi gửi email sẽ không lo bị dính SPAM.

Hiện nay có rất nhiều những nhà cung cấp VPS giá rẻ như Digital Ocean, Vultr, Linode, Ramnode… Bạn nên sử dụng những nhà cung cấp có dung lượng RAM tối thiểu là 512 MB. Trong trường hợp này gói $5/tháng 768MB RAM của Vultr hoặc $5/tháng 1GB RAM của Linode là tốt nhất.

Cài đặt Sendy trên CentOS6

Trong bài viết này, chúng tôi sử dụng VPS có cấu hình như sau:

  • Hệ điều hành: CentOS 6 x64
  • Server Location: Singapore;
  • Server Size: $5/tháng – 1CPU – 768MB RAM

Để cài đặt Sendy, bạn sẽ phải sử dụng LAMP (Linux – Apache – MySQL – PHP). Nếu server của bạn sử dụng Nginx  cũng có thể cài được nhưng sẽ config khác một chút. Chúng tôi sẽ hướng dẫn ở cuối bài này.

1. Cài đặt LAMP

Cài đặt LAMP

Cài đặt LAMP

Với thủ thuật wordpress để chạy các câu lệnh Linux, bạn sẽ phải sử dụng SSH. Có rất nhiều công cụ để có thể làm việc này như PuTTY… Bạn nên sử dụng ZOC vì giao diện sẽ sử dụng và có thể copy paste.

a. Cài đặt Apache

Để cài đặt Apache, bạn chạy câu lệnh bên dưới:

sudo yum -y install httpd
service httpd start

Sau đó, kiểm tra xem Apache đã hoạt động hay chưa?

sudo service httpd status

Nếu kết quả như sau nghĩa bạn đã cài đặt thành công

httpd (pid  2002) is running...

Lưu ý: Nếu sử dụng Vultr, bạn sẽ không thể kiểm tra Apache đã chạy hay chưa bằng cách truy cập vào địa chỉ IP của server từ trình duyệt. Bởi mặc định, cổng 80 sẽ bị chặn bởi tường lửa. Chính vì thế bạn sẽ phải mở cổng 80 để chắc chắn là truy cập thành công.

/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/etc/rc.d/init.d/iptables save

b. Cài đặt MySQL

Để cài đặt MySQL, bạn copy paste đoạn code bên dưới:

sudo yum -y install mysql-server
service mysqld start

Sau đó chạy câu lệnh sau để tối ưu bảo mật cho MySQL:

/usr/bin/mysql_secure_installation

Câu lệnh sẽ hỏi bạn mật khẩu MySQL hiện tại của root. Hãy để trống bằng cách ấn ENTER.

Sau đó, trả lời các câu hỏi bảo mật như bên dưới:

Set root password? [Y/n] Y
New password: matkhaucuaban
Re-enter new password: matkhaucuaban
Remove anonymous user? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

c. Cài đặt PHP

Để cài đặt PHP, bạn chạy câu lệnh bên dưới:

sudo yum -y install php php-mysql

Sau đó cài đặt thêm 2 module là php-mcrypt và php-mbstring:

sudo yum -y install php-mcrypt.x86_64
yum -y install php-mbstring.x86_64

Cài đặt Apache & MySQL chạy tự động khi khỏi động VPS:

chkconfig httpd on
chkconfig mysqld on

Khỏi động lại Apache để hoàn tất quá trình:

sudo service httpd restart

Vậy là xong, bạn đã cài đặt thành công LAMP trên VPS.

2. Cài đặt Sendy

cài đặt sendy

cài đặt sendy

Trước tiên, bạn phải mua source code của Sendy với giá $59 cho một lần duy nhất, sử dụng và update trọn đời.

Ở dưới cùng bên tay phải, bạn sẽ thấy phần “Get your copy of Sendy”, hãy điền tên , email và tên miền bạn muốn cài đặt Sendy rồi bấm nút “BUY NOW VIA PAYPAL”.

Lưu ý: bạn chỉ có thể sử dụng  cài đặt Sendy trên tên miền đã đăng ký bên trên và trên subdomain.

Hiện nay trên thị trường có rất nhiều bản crack nhưng tôi khuyên bạn nên mua trực tiếp từ Sendy để an toàn và hoạt động ổn định.

a. Tạo Database

Việc đầu tiên chúng ta cần làm là tạo cơ sở dữ liệu cho Sendy. Bắt đầu bằng việc đăng nhập vào MySQL thông qua SSH:

mysql -u root -p

Bạn sẽ phiền điền mật khẩu đã được cài đặt ở bước trên.

Sau đó tạo database mới:

create database sendy;

Lưu ý: kết thúc câu lệnh phải bằng dấu ; Nếu thiếu, câu lệnh sẽ không chạy được.

Kiểm tra xem database đã tạo được hay chưa

show databases;

Kết quả sẽ trả lại như sau:

+--------------------+
| Database |
+--------------------+
| information_schema |
| sendy |
| mysql |
+--------------------+
3 rows in set (0.00 sec)

Bạn sẽ thấy tên database vừa tạo trên kết quả trả về. Như vậy là đã thành công rồi nhé.

b. Upload Sendy

Bạn hãy upload và giải nén source code của sendy vào thư mục dưới đây. Tôi khuyên bạn nên sử dụng phần mềm WinSCP (Windows) hoặc CyberDuck (Mac) để quản lý file.

/var/www/html

Mặc định CentOS không hỗ trợ nén và giải nén file. Chính vì thế, bạn sẽ phải cài zip và unzip để làm việc này:

sudo yum install zip
sudo yum install unzip

Để giải nén, bạn chỉ cần vào thư mục vừa upload source code Sendy và chạy câu lệnh:

cd /var/www/html
unzip sendy.zip

Bước 1: Cấu hình file config.php

Mở file includes/config.php và điền thông tin server của bạn như hình bên dưới. Trong đó APP_PATH là url cài đặt Sendy & các thông tin đăng nhập MySQL. Thông thường sẽ là:

$dbHost = 'localhost';
$dbUser = 'root';
$dbPass = 'matkhaucuaban';
$dbName = 'ten_database_cua_ban';

Bước 2: Sửa quyền cho thư mục uploads thành 777

Bước 3: Cài đặt

1. Truy cập vào tên miền bạn muốn cài đặt Sendy, ví dụ:

http://tenmien.com/

2. Điền thông tin của bạn bao gồm License key, EmailPassword. Bạn có thể điền AWS Access Key ID và AWS Secret Access Key sau khi cài đặt nếu chưa có tài khoản Amazon Web Service.

3. Bấm nút Install để tiến hành cài đặt.

Bước 4: Đăng ký dịch vụ Amazon Web Service (AWS)

  1. Đăng ký tài khoản AWS nếu chưa có. Chọn “I am new user” trong lúc đăng ký.
  2. Sau khi có tài khoản tại AWS, bạn sẽ phải tạo bộ key value “IAM Credentials” cho sendy và làm theo hướng dẫn video bên dưới

3. Sau khi copy paste giá trị key value từ AWS. Sendy đã có thể sử dụng tài khoản của bạn để gửi email.

4. Cuối cùng, hãy yêu cầu Amazon gỡ bỏ hạn chế trong tài khoản của bạn. Mặc định tài khoản mới sẽ ở chế độ “sandbox mode”. Ở chế độ này, bạn chỉ có thể gửi tối đa 200 email/ngày và chỉ cho những email đã được xác thực.

Vậy là xong, giờ hãy truy cập vào trang web và hưởng thụ thành quả lao động.

c. Khắc phục lỗi 404 sau khi cài đặt Sendy

Sendy sử dụng “Pretty URLs” nên thay vì sử dụng cấu trúc /login.php, trên trình duyệt sẽ hiển thị /login. Chính vì lẽ đó, sẽ có bạn gặp phải lỗi 404. Nếu bạn có thể sử dụng bình thường vui lòng bỏ qua bước này:

  1. Mở file .htaccess và thêm đoạn code bên dưới ngay sau dòng RewriteEngine On:
RewriteBase / nếu tên miền cài đặt có dạng http://tenmien.com hoặc http://sendy.tenmien.com

hoặc

RewriteBase /sendy nếu tên miền cài đặt có dạng http://tenmien.com/sendy

Lúc này file .htaccess sẽ có dạng như sau:

ErrorDocument 404 "[404 error] If you're seeing this error after install, check this FAQ for the fix: https://sendy.co/troubleshooting#404-error"

Options +FollowSymLinks
Options -Multiviews

RewriteEngine On
RewriteBase /
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^([a-zA-Z0-9-]+)$ $1.php [L]

# Link tracker
RewriteRule ^l/([a-zA-Z0-9/]+)$ l.php?i=$1 [L]

# Open tracker
RewriteRule ^t/([a-zA-Z0-9/]+)$ t.php?i=$1 [L]

# Web version
RewriteRule ^w/([a-zA-Z0-9/]+)$ w.php?i=$1 [L]

# unsubscribe
RewriteRule ^unsubscribe/(.*)$ unsubscribe.php?i=$1 [L]

# subscribe
RewriteRule ^subscribe/(.*)$ subscribe.php?i=$1 [L]

2. Chỉnh sửa file /etc/httpd/conf/httpd.conf. Tìm đến dòng <Directory '/var/www/html'> và sửa nội dung bên trong AllowOverride None thành AllowOverride All.

3. Khởi động lại Apache để kiểm tra kết quả:

service httpd restart

Nếu bạn vẫn còn gặp lỗi, thì hãy để lại bình luận hoặc liên hệ trực tiếp với chúng tôi để được giúp đỡ.

3. Cài đặt cron job cho autoresponder

Sendy cung cấp chức năng autoresponder – tự động gửi email sau khi người dùng đăng ký nhận newsletter hoặc nhân dịp sự kiện nào đó. Đây là một chức năng vô cùng hữu ích nên chắc chắn bạn sẽ phải cài.

Lưu ý: nếu bạn sử dụng shared hosting thì khả năng cao là sẽ không dùng được chức năng này. Sendy yêu cầu chạy cronb job mỗi phút một lần. Nhưng đa số nhà cung cấp không cho phép người dùng chạy liên tục như vậy trên shared hosting vì có thể ảnh hưởng đến máy chủ trừ Siteground & Hawkhost mà chúng tôi đã thử nghiệm.

Để cài đặt autoresponder trên CentOS, bạn chỉ cần thêm đoạn code bên dưới vào file

*/1 * * * * root php /var/www/html/autoresponders.php > /dev/null 2>&1

Hãy chỉ lại đường dẫn đến file  cho đúng với đường dẫn trên server của bạn.

Kết quả sẽ trông như thế này:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
# Sendy Autoresponsder Dieu Hau
*/1 * * * * root php /var/www/html/autoresponders.php > /dev/null 2>&1

Refresh lại trình duyệt và thử bấm vào link Autoresponder, nếu popup không hiển thị nữa là bạn đã hoàn tất quá trình cài đặt Sendy.

4. Hướng dẫn cài đặt Sendy trên Nginx

Sau đây wordpress dieuhau.com sẽ hướng dẫn các bạn cài đăt Sendy  trên Nginx .Sendy hoạt động tốt nhất Apache, nhưng nếu bạn nào thích sử dung Nginx thì bạn chỉ cần chỉnh lại file .conf như sau:

Cấu hình Sendy trên Nginx
  • Nếu cài đặt Sendy ở thu mục gốc:
location ~ /(l|t|w|(un)?subscribe)/ {
rewrite ^/([^/]+)/([a-zA-Z0-9/]+)$ /$1.php?i=$2 last;
}
location / { rewrite ^/([a-zA-Z0-9\-]+) /$1.php?$args last; }
  • Nếu cài đặt trong sub folder sendy :
location ~ /sendy/(l|t|w|(un)?subscribe)/ {
rewrite ^/sendy/([^/]+)/([a-zA-Z0-9/]+)$ /sendy/$1.php?i=$2 last;
}
location /sendy/ {
rewrite ^/sendy/([a-zA-Z0-9\-]+) /sendy/$1.php?$args last;
}

Tổng kết

Quá trình cài đặt Sendy khá phức tạp, nên đòi hỏi bạn nên có chút kiến thức về Linux. Hướng dẫn trên chúng tôi sử dụng CentOS để cài đặt Sendy. Bạn cũng có thể sử dụng Ubuntu để thực hiện quá trình này.

Nếu không cài được hoặc có bất ký vấn đề gì hãy liên hệ với chúng tôi tại đây hoặc để lại bình luận bên dưới.

Sendy là một dịch vụ email marketing rất đáng sử dụng bởi giá thành rất rất rẻ. Có thể nói là rẻ nhất hiện nay rồi. Bạn sẽ tiết kiệm được hàng triệu đồng mỗi tháng nếu sử dụng dịch vụ này.

Về tác giả

Duy Anh

Chào các bạn,

Mình là coder, đang sống và làm việc ở Mỹ. Mình thích viết lách nên muốn dành khoảng thời gian trống để chia sẻ các thủ thuật giúp các bạn xây dựng được trang web riêng của mình. Bạn nào cần xây dựng blog, web thì cứ ới, rảnh là mình giúp, tất cả FREE nhé!

5 Bình luận

Ý kiến cá nhân của bạn

bộ công cụ Wordpress hữu ích dành cho mọi website

Bộ công cụ hữu ích dành cho mọi website Wordpress

Bao gồm theme & plugin tốt nhất và được sử dụng nhiều nhất!

Xin vui lòng kiểm tra email để xác thực tài khoản!