Cài WordPress trên VPS RunAbove với EasyEngine

RunAbove là 1 khu vực nghiên cứu OVH mọi thứ ở đây có giá rất tốt thậm chí miễn phí. CloudVPS có giá cả rất cạnh tranh chỉ 2.5$/tháng cho gói SandBox cho cấu hình như sau:

  • 1 Core
  • 2GB RAM
  • 20GB SSD
  • 1TB bandwidth

Với cấu hình tốt như vậy ta nên làm gì với nó? Mình đã thử cài WordPress lên. Kết quả rất đã, rất nhanh. Vì mình đam mê tốc độ mà. Hehe! Bắt đầu nào.

Mình đang dùng VPS RunAbove cho mục đích nghiên cứu. Anh em không nên sử dụng chính thức. Chỉ nên sử dụng vọc vạch thôi nhé!

Cập nhật (28/03/2016): Hiện tại, RunAbove đã hoàn tất nghiên cứu Cloud VPS của mình và họ đã chuyển qua OVH để kinh doanh. Chỉ còn ARMCloud và VPS-HDD.

Anh em có thể tham khảo 1 số VPS giá rẻ, chất lượng sau:

Cài đặt RunAbove Linux

Thay vì chọn Windows các bạn chon Linux Ubuntu thiết lập các bước như bài trước.

Điểm chú ý của RunAbove không cung cấp cho ta mật khẩu Root mà chỉ cung cấp mình địa chỉ IP mà thôi. do đó chúng ta cần kết nối qua SSH key để login vào VPS thay cho việc dùng mật khẩu.

Bây giờ chúng ta tạo SSH Key:

Download PuttyGen tại đây Chọn PuTTYgen chứ không phải PuTTY nhé.

Mở PuTTYgen lên và click Generate sau đó di chuột bên trong sửa sổ (vị trí sô 2) của PuTTYgen để tool tạo SSH key cho bạn.

Bạn Copy key(2) Save private key(1) và đặt tên

Sau đó Chúng ta tạo SSH Key Cho RunAbove.

Paste key vừa copy vào, ấn Add

Xong bước này coi như chúng ta đã hoàn thành

Login vào VPS

Có rất nhiều phần mềm hỗ trợ để chúng ta login vào VPS. Mình thích sử dụng WINSCP

  • Host: Nhập IP VPS của bạn
  • Port: 22
  • Username: admin
  • Password: bạn làm theo hướng dẫn bên dưới

Bạn click chọn Advanced… chọn Authentication. Load key của bạn vào.

Ấn login, bạn thấy giống hình bên dưới là thành công.

Cài NGINX dành riêng cho WordPress

EasyEngine là một bash script có chức năng tự động cài đặt webserver toàn diện dành riêng cho WordPress trên hệ điều hành Debian/Ubuntu, đây quả thực là điều khá bất ngờ vì đại đa số các bash script hiện nay đều hoạt động tốt nhất và chú trọng vào RHEL/CentOS.

Các chức năng chính của EasyEngine

  • Tự động cài đặt NGINX + PHP-FPM kèm theo các modules quan trọng nhất như Zend Opcache, Zend Optimizer, Ioncube,…
  • Tự động cài đặt và cấu hình Postfix để gửi mail không vào spam box.
  • Tự động cài đặt phpMyAdmin và cấu hình bảo mật.
  • Cài đặt Memcached và cấu hình tối ưu.
  • Hỗ trợ các ứng dụng GUI theo gõi cache.
  • Cấu hình riêng dành cho WordPress.
  • Hỗ trợ các plugin cache của WordPress.
  • Tạo website nhanh với 1 dòng lệnh duy nhất.
  • Tích hợp WP CLI.
  • Sử dụng ít tài nguyên nhất.
  • Tự động update script và các ứng dụng bên trong.
  • Có thể cấu hình như một host bình thường, tức là mỗi user sẽ có 1 tài khoản sFTP riêng để quản trị website của họ.

Cài đặt EasyEngine Script cho RunAbove

Đầu tiên là chạy lệnh dưới đây để tải chiếm quyền root

sudo su –

Chạy lệnh dưới đây để tải script về và nạp script vào máy chủ.

wget -qO ee rt.cx/ee && sudo bash ee

Đợi một xíu để nó chạy và sẽ hỏi, điền kết quả và ấn Enter:

  • Enter your name [root]: Nhập tên của bạn vào, không dấu.
  • Enter your email address [[email protected]]: Nhập email của bạn vào.

Sau khi bước cài đặt ban đầu hoàn tất, hãy gõ thêm lệnh dưới đây để cài các ứng dụng như webserver, postfix,….

ee stack install

Trường hợp bạn làm bước này mà nó có hiện dòng nào lỗi kiểu “Unable to download xx, exit status = xx” thì hãy gõ lại lệnh ee stack install để chạy lại.

Để tránh lỗi cú pháp PHP trong các themes/plugin thì bạn chạy lênh:

nano /etc/php5/fpm/php.ini

tìm short_open_tag = Off thay Off thành ON. Ctrl+X, ấn Y và Enter.

Chạy tiếp

service php5-fpm restart

Trong vài trường hợp nó sẽ bị lỗi xung đột cổng 80, tốt nhất bạn cứ chạy lệnh này 1 lần sau khi cài đặt:

sudo fuser -k 80/tcp

Cài mới một website WordPress nhiệm vụ này đơn giản vô cùng, chạy lệnh

ee site create domaincuaban.com –wp

Ở đoạn trên, nó sẽ tự thêm domain example.com vào máy chủ, đồng thời tự setup một website WordPress với username và email là thông tin mà bạn đã nhập lúc cài đặt EasyEngine script, tên database cũng tự đặt luôn. Quá sướng phải không. Hoặc nếu bạn cần tự cài đặt một website WordPress Multi Site thì chỉ cần thêm tham số --wpsubdir hoặc --wpsubdom vào. Ví dụ:

ee site create domaincuaban.com –wpsubdir

Trong đó,

  • –wpsubdir: Website multi site sử dụng tên miền dạng example.com/site1, example.com/site2
  • –wpsubdom: Website multi site sử dụng tên miền dạng site1.example.com, site2.example.com

Vì một lý do nào đó bạn muốn Del site vừa tạo thì nhập lệnh sau:

ee site delete domaincuaban.com

Nó hỏi tới đâu bạn chọn (Y) và Enter thôi. Ví dụ:

[email protected]:~# ee site delete tainghe.co

Do you want to delete database[Y/N]: y

Do you want to delete webroot[Y/N]: y

Do you want to delete NGINX configuration [Y/N]: y

Deleted site tainghe.co

Bây giờ, bạn trỏ IP về VPS để bắt đầu sử dụng.

Chúc các bạn thành công.

Thiết lập Auto Restart MySQL cho EasyEngine

EasyEngine là một bash script dành riêng cho WordPress nó rất nhanh và nhẹ. Đây là lựa chọn ưu tiên khi mình thiết lập các website cho khách hàng nhưng với các VPS Unmanaged cấu hình thấp thường xảy ra tình trạng Error establishing a database connection mặc dù mình đã chọn các VPS uy tín cao như Digital Ocean(DO), Vultr,..

Để khắc phục tình trạng trên mình tạo db-error.php lưu trong thư mục wp-content của WordPress

đây là trang db-error của mình:

ezgif-3330919129

 https://lamdesign.vn/error/

Đùa tí thôi, chúng ta có làm trang db-error vui vẻ cỡ nào thì khách hàng vẫn không thích gặp cái trang này đâu. Hehe

Để khắc phục mình sử dụng đến tính năng Cronjob trong Linux để thực thi các Shell Script:

Bước 1: Bạn tạo một file autorestartmysql.sh với nội dung sau:

#!/bin/bash
/usr/bin/mysqladmin ping| grep 'mysqld is alive' > /dev/null 2>&1
if [ $? != 0 ]
then
    sudo service mysql restart
fi

Bước 2: Bạn chép file vừa tạo vào thư mục home và thiết lập chown 0755 cho em nó bằng lệnh sau:

 chmod 0755 autorestartmysql.sh

Bước 3: gõ crontab -e chọn giống hình

thiet-lap-auto-restart-mysql-cho-easyengine

cửa sổ nano mở ra bạn paste dòng sau vào:

* * * * * sh -x /home/autorestartmysql.sh

Ấn Ctrl+X chọn tiếp Y để lưu lại.

Chạy tiếp lệnh:

service cron restart

Cuối cùng kiểm tra lại xem nó có hoạt động chưa

grep CRON /var/log/syslog

Xong, vậy là chỉ với vài thao tác nhỏ anh em mình không phải mệt mỏi vì lỗi trên rồi. Bạn nào chưa làm được có thể comment bên dưới hoặ teamview mình có thể làm giúp nhé!

Chúc anh em thành công!

Hướng dẫn cài SSL Let’s Encrypt cho EasyEngine

Cách đây không lâu StableHostHawkHost và một số đại gia đã tích hợp Let’s Encrypt cung cấp miễn phí chứng nhận SSL cho người dùng. Hôm nay, LAMNOTES sẽ hướng dẫn các bạn cài đặt Let’s Encrypt cho EasyEngine.

Lets-Encrypt-Free-SSL-Certificate

Yêu cầu chuẩn bị:

  1. Một VPS đã cài sẵn EasyEngine.
  2. Khoảng 10 phút và 1 ly cafe.

Cài đặt Let’s Encrypt cho website đang hoạt động

Thường anh em đang có VPS cài sẵn EasyEngine thì cũng đã có luôn các website hoạt động trên đó. Vậy phải làm như thế nào?

Update EasyEngine

Phiên bản mình thử nghiệm là EasyEngine v3.0.6

 ee update

Sau khi chạy lệnh này bạn có đã EasyEngine mới nhất rồi. Tiếp theo, cài bổ sung SSL cho website.

 ee site update domaincuaban.com --letsencrypt

Đoạn mã sẽ chạy như thế này

Letsencrypt is currently in beta phase.
Do you wish to enable SSl now for in?
Type "y" to continue [n]:y
Downloading LetsEncrypt          [Done]
Let's Encrypt successfully setup for your site
Your certificate and chain have been saved at /etc/letsencrypt/live/domaincuaban.com/fullchain.pem
Configuring Nginx SSL configuration
Adding /var/www/domaincuaban.com/conf/nginx/ssl.conf
Adding /etc/nginx/conf.d/force-ssl-domaincuaban.com.conf
Added HTTPS Force Redirection for Site  http://domaincuaban.com
Creating Cron Job for cert auto-renewal
Reload : nginx     [OK]
Congratulations! Successfully Configured SSl for Site  https://domaincuaban.com
Your cert will expire within 89 days.

Bạn sẽ thấy thông báo sau thì gõ y và enter nhé! Đợi 1 tý là xong

Cài mới WordPress với SSL Let’s Encrypt

 ee site create domaincuaban.com --wp --letsencrypt

Với lệnh này bạn sẽ thấy một thông báo như mình, gõ y là xong việc.

Lets-Encrypt-Free-SSL-Certificate-2

Gia hạn giấy phép Let’s Encrypt

Hiện tại giấy phép SSL của Let’s Encrypt sẽ bị thu hồi sau 90 ngày nên bạn cần phải gia hạn nó. Ác, kiểu này thì mệt lắm. Nhưng EasyEngine có một giải pháp cho bạn. Chạy ngay lệnh sau

~ # Crontab -l

gõ tiếp luôn

0 12 * * * ee site update domaincuaban.com --le=renew --min_expiry_limit 30 2> /dev/null # Renew letsencrypt SSL cert. Set by EasyEngine

Với lệnh này bạn đã gia hạn thêm giấy phép của mình 30 ngày. Hoặc một lý do nào đó bạn muốn tự gia hạn, ok vẫn được

ee site update domaincuaban.com --letsencrypt=renew

Không thích SSL nữa, giờ thì tắt nó

ee site update domaincuaban.com --letsencrypt=off

Kiểm tra thử xem SSL đã hoạt động chưa?

ee site info domaincuaban.com

Đây là kiểm tra của mình

Lets-Encrypt-Free-SSL-Certificate-3

Với các bạn đang sử dụng SSL của Cloudflare, bạn cần phải tắt nó đi để SSL của Let’s Encrypt hoạt động