Tự backup Database và Source code bằng Crontab trong CentMinMod

Tạo file Backup

Tạo thư mục backups trong /var và set full quyền 777

mkdir /var/backups/

Tạo 1 file backup.sh trong /root với nội dung như sau và set có quyền thực thi 755:

#!/bin/bash
{
 printf "subject:Backup for VPS\nfrom:[email protected]\n\n"
 mkdir /var/backups/$(date +"%Y-%m-%d")/
 mkdir /var/backups/$(date +"%Y-%m-%d")/websitecuaban.com/
 echo "Starting backup database for websitecuaban.com..."
 mysqldump --single-transaction --routines --triggers --add-drop-table --extended-insert -u username -h 127.0.0.1 -p'matkhau' database | gzip -9 > /var/backups/$(date +"%Y-%m-%d")/websitecuaban.com/db_$(date +"%Y-%m-%d").sql.gz
 echo "Starting backup files for websitecuaban.com..."
 zip -r /var/backups/$(date +"%Y-%m-%d")/websitecuaban.com/file_$(date +"%Y-%m-%d").zip /var/www/websitecuaban.com/public_html/ -q -x /var/www/websitecuaban.com/public_html/wp-content/cache/**\*
} | /usr/sbin/sendmail "[email protected]"

Thay đổi các phần màu xanh ứng với website của bạn.

Bây giờ bạn có thể chạy để kiểm tra file backup có hoạt động hay không bằng lệnh:

/root/backup.sh

Tạo crontab để tự động chạy file backup.sh

Cấu trúc của Crontab

 .---------------- 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 
 | | | | |
 * * * * * <command to be executed>

Ví dụ để tự động chạy backup vào 2h30 sáng bạn gõ

crontab -e

nhập

30 2 * * * /root/backup.sh

Lưu lại bằng:

Ctrl + X --> Y --> Enter

Chạy crontab

service crond start

Khởi động lại

service crond restart

Chạy khi hệ thống khởi động

chkconfig crond on

Xong!

4 cách loại bỏ chức năng bình luận của WordPress

I: Áp dụng cho các bài viết về sau

Wp-admin -> Setting -> Discussion -> Uncheck (Allow people to post comments on new articles)

II: Áp dụng cho từng bài viết

Wp-admin -> Posts -> All Post -> Di chuột vào bài viết cần sửa -> Quick edit -> Uncheck (Allow Comments)

hoặc

Wp-admin -> Posts -> All Post -> Edit -> Screen Options -> Check (Discussion) -> Kéo xuống dưới cùng -> Uncheck (allow comment)

III: Áp dụng cho tất cả các bài viết.

Cách 1:

Wp-admin -> Posts -> All Post -> Check vào title để chọn tất cả bài post -> Edit -> Apply --> Do not allow -> Update

tat-comment_2

tat-comment_1

tat-comment_3

Cách 2. Edit file single.php

Edit file

/wp-content/themes/themecuaban/single.php

Tìm và xóa dòng

<?php comments_template(); ?>

Cách 3: Ẩn khung comment với css Edit style.css

hide-comment

/wp-content/themes/themecuaban/style.css

Tìm class comment và thêm dòng

display:none;

IV: Sử dụng Plugin Disable Comments

 

Cách xóa các hình ảnh không sử dụng trong WordPress

Khi upload ảnh bằng wordpress mặc định sẽ tạo là nhiều file ảnh với những kích thước khác nhau, tùy thuộc vào setting, plugin và theme. Lâu ngay nhưng file ảnh này sẽ làm cho website rất cồng kềnh. Đến lúc này chúng ta thường tìm cách đơn giản là xóa chúng đi.

Sử dụng Plugin Force Regenerate Thumbnails

Rất nhiều người sử dụng plugin Regenerating Thumbnails nhưng có 1 thực tế rằng, nó chỉ tạo ra thumbnail với những kích thước mới nhưng không xóa các file không dùng đến.

Giải pháp thay thế là sử dụng plugin Force Regenerate Thumbnails chức năng cũng giống như Regenerating Thumbnails nhưng khi tạo ra file mới thì nó xóa các định dạng cũ. Rất tuyệt

Force_Regenerate_Thumbnails

Dùng lệnh trong VPS

Di chuyển đến thư mục upload

cd /home/nginx/domains/websitecuaban.com/public/wp-content/uploads/

Tìm các file có đuôi .phg có tên chứa 320 hoặc 300 hoặc 200

find / \( -name *320*.png -o -name *300*.png -o -name *140*.png \)

Tìm và xóa đi

find / \( -name *320*.png -o -name *300*.png -o -name *140*.png \) -exec rm -rf {} \;

Hoặc di chuyển vào thư mục nào đó

find / \( -name *320*.png -o -name *300*.png -o -name *140*.png \) -exec mv {} /home/nginx/domains/websitecuaban.com/public/images \;

Chú ý:

  • Chú ý backup trước khi sử dụng plugin
  • Bài viết có thể bị lỗi ảnh, nếu lúc trước bạn sử dụng không phải file ảnh gốc (image-full).
  • Hãy thận trọng khi sử dụng lệnh rmmv

Hướng dẫn cách chạy WordPress Multisite trên CentMinMod

WordPress Multisite là chức năng có sẵn của WP giúp chúng ta có thể chạy nhiều website, trên duy nhất 1 Source và Database rất thuận tiện để quản lý.

Trước giờ thấy chỉ có hướng dẫn cài đặt WordPress Multisite trên Apache chứ không thấy hướng dẫn WordPress Multisite trên Nginx mà cụ thể là CentMinMod.

Cách làm thì cũng giống như trên các server bình thường như có cấu hình lại xíu.

Bước I. DNS Wildcard cho tên miền.

Add record là A – Hostname là * or @ – Value là IP của VPS

Bước II. Cài đặt CentMinMod

Xem hướng dẫn: Cách cài đặt Centminmod.

Đăng nhập MYSQL băng root.

mysql -u root -p

Tạo database.

CREATE DATABASE wordpress;

Tạo user và grant permissions đến database:

CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wordpress_user'@'localhost';

Nhớ đổi mấy cái thông tin màu đỏ thành của riêng bạn

FLUSH PRIVILEGES;
exit

Các thông tin cần nhớ

Database Name: wordpress
Database User: wordpress_user
Database Password: password

Bước III. Cài đặt WordPress Multisite

1.Download và cài đặt WP

wget https://wordpress.org/latest.tar.gz
tar -xf latest.tar.gz
mv wordpress/* /home/nginx/domains/websitecuaban.com/public/

2.Chmod để sau này cài đặt và update plugin.

chown -R www-data:www-data /home/nginx/domains/websitecuaban.com/public/

3.Truy cập vào website

https://websitecuaban.com/

4.Tiến hành cài đặt như thông thường

wordpress_multisite

5.Edit file wp-config.php thêm đoạn code sau để kích hoạt tính năng Multisite

/* Multisite settings */
define( 'WP_ALLOW_MULTISITE', true );

Nhớ thêm trước dòng

/* That's all, stop editing! Happy blogging. */

6.Đăng nhập vào wp-admin

Tools > Network Setup chọn Sub-domains, Tùy chỉnh Network Title và click Install.

7.Thêm đoạn code sau vào wp-config.php

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', 'examplewp.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

Vì trong nginx không sử dụng .htaccess nên bạn có thể bỏ qua bước add code vô .htaccess.

8. Đăng xuất wp-admin và đăng nhập lại

Từ bên trái của thanh admin toolbar click My Sites > Network Admin > Sites

site

 

9.Click Add New để thêm site mới.

Ví dụ mình thêm cái site là: site1.com, site2.com, siteN.com

khi thêm vào các site mới sẽ có dạng:

site1.websitecuaban.com
site2.websitecuaban.com
siteN.websitecuaban.com

10. Cài đặt plugin Domain Mapping -> cài đặt như bình thường.

Nhiệm vụ của plugin này là chuyển subdomain có dạng:

site1.websitecuaban.com -> site1.com
site2.websitecuaban.com -> site2.com
siteN.websitecuaban.com -> siteN.com

11. Sau khi cài đặt xong copy file sunrise.php từ trong plugin đến thư mục wp-content.

cp /home/nginx/domains/websitecuaban.com/public/wp-content/plugins/wordpress-mu-domain-mapping/sunrise.php /home/nginx/domains/websitecuaban.com/public/wp-content/

12. Sửa file wp-config.php và thêm dòng code sau trước /* That’s all, stop editing! Happy blogging. */.

define('SUNRISE', 'on');

lưu lại và làm mới trình duyệt

13. Settings > Domain Mapping thay đổi một số thông tin sau:

Uncheck Remote Login
Check Permanent Redirect
Uncheck Redirect administration pages to site's original domain

14. vào Settings > Domains

Nhập ID của các site đã add lúc trước.

Nhập Domain

Check vào Primary

Save

15. Tuy nhiên để cho WordPress Multisite hoạt động tốt với Plugin Domain Mapping bạn cần chỉnh sửa file sau:

nano /usr/local/nginx/conf/conf.d/wesitecuaban.com.conf

16.Tìm

server_name websitecuaban.com www.websitecuaban.com

17.Thêm vào sau:

server_name websitecuaban.com www.websitecuaban.com *.websitecuaban.com site1.com site2.com siteN.com;

18.Lưu lại và restart lại nginx

service nginx restart

Quản trị Network

https://websitecuaban.com/wp-admin/network/

Quản trị Wp-admin từng site

https://websitecuaban.com/wp-admin/
https://site1.com/wp-admin/
https://site2.com/wp-admin/
https://siteN.com/wp-admin/

done!

Hướng dẫn cách sửa lỗi “Error Establishing A Database Connection”

Như cái thông báo lỗi Error Establishing A Database Connection: Lỗi thiết lập kết nối cơ sỡ dữ liệu.

Error-Establishing-a-Database-Connection

Một số nguyên nhân chính gây lỗi Error Establishing A Database Connection như:

  • Thiết lập sai user, database, localhost trong wp-config.php dẫn đến tính trạng không kết nối được.
  • Database bị lỗi
  • MySQL không chạy.

1. Xem file wp-config.php nội dung thông thường sẽ như thế này:

define('DB_NAME', 'tenDatabase');
define('DB_USER', 'tenUser');
define('DB_PASSWORD', 'matkhau');
define('DB_HOST', 'localhost');

Xem Database và User bằng cách sau ?

#Đăng nhập MySQL
mysql -u root -p
#Xem danh sách database
SHOW DATABASES;
#Xem danh sách user
SELECT User FROM mysql.user;
#Nếu không chắc chắn về mật khẩu bạn có thể thay đổi bằng lệnh
mysql> SET PASSWORD FOR
 -> 'jeffrey'@'localhost' = PASSWORD('mypass');

2. Database bị lỗi

a. Trong trường hợp chỉ bị lỗi ở trang Wp-admin thì làm như sau:

Thêm dòng này ở wp-config.php

define('WP_ALLOW_REPAIR', true);

Vào đường link : websitecuaban.com/wp-admin/maint/repair.php

để tiến hành sửa và tối ưu database cho phần wp-admin.

db_repair

b. Trong trường hợp bị lỗi toàn website.

  1. Login vào phpmyadmin
  2. Phía bên trái chọn vào Database của website bạn đang cần sửa hoặc tối ưu ( nếu có nhiều quá thì nhìn trong file wp-config.php nhé)
  3. Nếu biêt Table nào bị lỗi thì chỉ cần chọn table đó thôi, còn không thì cứ chọn tất cả rồi click vào -> Repair table như hình.

phpmyadmin-repair-table

hoặc có thể làm theo cách sau nếu VPS của bạn không có phpmyadmin

Login to your shell
Enter ‘mysql -u username -p database_name‘ to access databases
Enter ‘show databases;’ to view all databases
Enter ‘use database_name;‘ to engage the database
Enter ‘show tables;‘ to show all tables within the database
Enter ‘check table wordpress_table_name;‘ to verify this is the corrupted table
Fix it with ‘repair table wordpress_table_name;

3. Trong trường hợp MySQL không chạy

Tạm dừng MySQL

service mysql stop

Chạy MySQL

service mysql start

Khởi động lại MySQL

service mysql restart

Kiểm tra lỗi tất cả database trên VPS

mysqlcheck -c -u root -p --all-databases

Xem thử table nào bị lỗi thì repair là xong !

Sẽ có 1 bài chuyên sâu về Check và Repair MySQL của VPS bằng câu lệnh, sẽ cập nhật sớm.

Hướng dẫn cài đặt CentMinMod từ cơ bản đến nâng cao

I.Cài đặt CentMinMod

Yêu cầu cấu hình RAM tối thiểu 256 MB cho CentOS 6 và 1 GB cho CentOS 7.

Cài đặt CentOS cho VPS login và làm theo các bước sau:

Bước 1:

Vào https://github.com/centminmod/centminmod/branches để xem gói cài đặt mới nhất. Hiện tại khi đang viết bài này thì là 123.08stable

branchname=123.08stable

Bước 2:

yum -y install wget nano bc unzip
branchname=123.08stable
wget -O /usr/local/src/${branchname}.zip https://github.com/centminmod/centminmod/archive/${branchname}.zip
cd /usr/local/src
unzip ${branchname}.zip
mv centminmod-${branchname} centminmod
cd centminmod

Bước 3:

./centmin.sh

Rồi chọn 1.
Hoặc có thể gõ trực tiếp bằng dòng lệnh

./centmin.sh install

Quá trình cài đặt CentMinMod có thể mất từ 20-30 phút tùy cấu hình.

Sau khi quá trình cài đặt hoàn tất sẽ xuất hiện các thông tin quan trọng nhớ copy và lưu lại ở đâu đó.

Chú ý phần PassWord Root của MySQL để xíu nữa thêm hoặc add Database.

II. Chuyển Website về VPS CentMinMod vừa tạo

Bước 1:

Chuyển DNS domain về IP của VPS ở trên.

Sau khi thay đổi xong bạn có thể kiêm tra bằng cách ping thử domain xem có trỏ về IP mới chưa.

Trong Windows thì vào:

RUN -> cmd -> gõ "ping websitecuaban.com"

Trong trường hợp vẫn chưa cập nhật thì bạn có thể edit file hosts để sử dụng tạm thời trong thời gian chờ DNS cập nhật.

C:\Windows\System32\drivers\etc

chỉnh sửa file hosts bằng cách thêm nội dung:

111.111.111.111     websitecuaban.com

trong đó 111.111.111.111 là địa chỉ IP của VPS.

Bước 2:

Thêm tên miền vào máy chủ CentMinMod

cd /usr/local/src/centminmod
./centmin.sh

Chọn số 2 -> Enter -> gõ websitecuaban.com (không có www.) -> gõ n (không sử dụng SSL) -> gõ user cho FTP -> gõ y (tự động tạo pass).

Chú ý lưu thông tin đăng nhập FTP sau này cần dùng.

Gõ 24 để thoát ra.

Bước 3: Tạo Database, User 

mysql -u root -p

nhập pass Root của MySQL lúc tạo, nếu quên thì dùng lệnh này

cat ~/.my.cnf

Login vô được rồi tiếp tục

create database dbcuaban;
create user 'usercuaban'@'localhost' identified by 'passcuaban';
grant all on dbcuaban.* to usercuaban@localhost;
FLUSH PRIVILEGES;
exit

Bước 4: Retore website site của bạn.

Gõ:

cd /home/nginx/domains/websitecuaban.com/public

và upload Source code và Database lên trên đó. (Có thể sử dụng FileZilla với thông tin FTP lúc nãy hoặc wget tùy bạn)

Giải nén Source code

tar -xvf *.tar.gz

hoặc

unzip *.zip

Giải nén database nếu có

gunzip *.sql.gz

Import database

mysql -u usercuaban -p'passcuaban' dbcuaban < *.sql

Chỉnh sửa file wp-config.php với database, user và pass đã tạo.

Bước 4: Tối ưu

Cấp quyền cho WordPress có thể cài dặt và update Plugin

chown -R nginx:nginx /home/nginx/websitecuaban.com/

Cho phép nginx  permalink

edit file: /usr/local/nginx/conf/conf.d

Tìm đoạn:

location / {

# block common exploits, sql injections etc
#include /usr/local/nginx/conf/block.conf;

# Enables directory listings when index file not found
#autoindex on;

# Shows file listing times as local time
#autoindex_localtime on;

# Enable for vBulletin usage WITHOUT vbSEO installed
#try_files / /index.php;

}

Thay bằng đoạn:

location / {
try_files $uri $uri/ /index.php?$args;
}

Sửa lỗi 404 permalink

Edit file: /usr/local/nginx/conf/staticfiles.conf

Tìm và xóa đoạn:

location ~* \.(html|html|txt)$ {
……
}

Cuối cùng là khởi động lại Nginx

service nginx restart

III. Một số câu lệnh khởi động trong Nginx

1. Nginx
Trên centos 6:

Restart:

service nginx restart

Stop :

service nginx stop

Start:

service nginx start

Trên centos 7:

Restart:

systemctl restart nginx.service

Stop:

systemctl stop nginx.service

Start:

systemctl start nginx.service

2. PHP-FPM

Restart:

service php-fpm restart

Stop :

service php-fpm stop

Start:

service php-fpm start

Trên centos 7:

Restart:

systemctl restart php-fpm.service

Stop:

systemctl stop php-fpm.service

Start:

systemctl start php-fpm.service

3. MariaDB (MySQL)

Restart:

service mysql restart

Stop :

service mysql stop

Start:

service mysql start

Trên centos 7:

Restart:

systemctl restart mariadb.service

Stop:

systemctl stop mariadb.service

Start:

systemctl start mariadb.service

Done!

 

Phân tích Log của VPS từ cơ bản đến nâng cao

Chú ý: Demo được thực hiện trên CentMinMod những VPS khác thì thay được dẫn File log nhé

Tham khảo thêm: Các dòng lệnh bỏ túi trong Linux

Lệnh tail để liệt kê các dòng cuối cùng trong file, ở đây ví dụ là 10 bạn có thể thay đổi thành 100, 1000… tùy theo muốn xem nhiều hay ít.

log

I. Đơn giản

Check log chung của Server

tail -10 /usr/local/nginx/logs/access.log
tail -10 /usr/local/nginx/logs/error.log

Check log từng Domain:

tail -10 /home/nginx/domains/domainname.com/log/access.log
tail -10 /home/nginx/domains/domainname.com/log/error.log

Kiểm tra trong /var/log

ls -lhrt /var/log

Check PHP-FPM

tail -10 /var/log/php-fpm/www-error.log
/var/log/php-fpm/www-php.error.log

Kiểm tra log trong cơ sơ dữ liệu MySQL / MariaDB

tail -10 /var/log/mysqld.log

Kiểm tra log trong CSF firewall

tail -10 /var/log/lfd.log

Kiểm tra log trong Mail

tail -10 /var/log/maillog

For Cron job

tail -10 /var/log/cron

II. Nâng cao

Lấy tất cả các log trong 1 ngày

Ví dụ mình lấy các log trong ngày 5/12/2015

grep -w '05/Dec/2015' /home/nginx/domains/domain.com/log/access.log

Lấy log trong nhiều ngày bất kỳ

Lấy tất cả các log trong ngày 5/12/2015 ngày 4/12/2015

grep -w '05/Dec/2015\|04/Dec/2015' /home/nginx/domains/domain.com/log/access.log

Lấy tất cả IP trong file log

grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' /home/nginx/domains/domain.com/log/access.log

Lấy log trong ngày được và chuyển hướng google

Chỉ lấy các dòng có chuổi là “05/Dec/2015”  “google” (Được hiểu là Log của ngày 5/12/2015 và được chuyển hướng từ google)

grep -w '05/Dec/2015.*google' /home/nginx/domains/domain.com/log/access.log

Xuất ra log trong ngày và điều kiện “hoặc”

Chỉ lấy các dòng có chuổi là “05/Dec/2015” và “google”  HOẶC có chuổi là “04/Dec/2015” và “google”

grep -w '05/Dec/2015.*google\|04/Dec/2015.*google' /home/nginx/domains/domain.com/log/access.log

Xuất ra tất cả IP với điều kiện

Xuất tất cả các IP được chuyển hướng từ Google được ghi nhận từ ngày 4 và 5/12/2015

grep -w '05/Dec/2015.*google\|04/Dec/2015.*google' /home/nginx/domains/domain.com/log/access.log | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'

Xuất số kết nối của IP đến server trong ngày

Đếm xem số lần kết nối của một IP được chuyển hướng từ Google trong ngày 5/12/2015

grep -w '05/Dec/2015.*google' /home/nginx/domains/domain.com/log/access.log | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | soft | uniq -cd | sort -nr

Xuất ra tất cả các IP có >10 kết nối trong ngày

Kiểm tra tất cả các IP có > 10 kết nối trong ngày 5/12/2015

grep -w '05/Dec/2015' /home/nginx/domains/domain.com/log/access.log | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | sort | uniq -cd | sort -nr | grep -v '^ *[1-9] '

Xem toàn bộ chuyển hướng từ google trong 1 tháng

Xuất ra màn hình toàn bộ log được chuyển hướng từ google tháng 12/2015 nhưng không chứa bot.html

grep -w 'Dec/2015.*google.com' /home/nginx/domains/domain.com/log/access.log | grep -v 'bot.html'

Xem link có nhiều lượt truy cập nhất trong tháng

Link có nhiều lượt truy cập nhất từ google trong tháng 12/2015, không tính bot

grep -w 'Dec/2015.*google.com' /home/nginx/domains/domain.com/log/access.log | grep -v 'bot.html' | grep -oP '(?<=GET ).*/ ' | sort | uniq -cd | sort -nr | grep -v '^ *1 '

Loại bỏ dữ liệu trùng nhau bằng Notepad ++

Xóa các hàng trùng nhau trên notepad ++ thiệt dễ dàng chỉ với 1 vài thao tác đơn giản. Đôi khi bạn cần loại bỏ các dữ liệu trùng nhau trong nội dung văn bản. Có 2 cách cho bạn sử dụng đó là dùng Replace và TextFX.

Tham khảo thêm: Hướng dẫn thủ thuật dùng notepad ++

Cách 1: Dùng TextFX Characters

Để remove dữ liệu trùng nhau trong Notepad ++ chúng ta cần Install một plugin đó là TextFX Characters bằng cách:

Plugins -> Plugin Manager -> Show Plugin Manager -> Available tab -> TextFX -> Install

Sau khi cài đặt xong khởi động lại Notepad ++.

Hãy đảm bảo rằng “Sort outputs only unique…” đã được check. Kiểm tra trong TextFX -> TextFX Tools

notepad

Sau đó bôi đen toàn bộ văn bản (Ctrl + A) -> TextFX -> TextFX Tools -> Click vào “Sort lines case sensitive” hoặc “Sort lines case insensitive”.

Cách 2: Dùng trực tiếp Replace

Kể từ phiên bản 6.0 trở đi người dùng có thể trực tiếp loại bỏ các dòng trùng nhau bằng regex của notepad++.

(.*?)$\s+?^(?=.*^\1$)

Chỉnh như cấu hình bên dưới.

remove_duplicate

 

Bonus: Xóa dòng ít hơn 40 kí tự

Tìm và thay thế cụm từ sau:

^.{0,40}(\r\n?|\n|$)

Thêm vào cuối dòng thì

Find What: $ --> Replace With: "Nội dung cần thêm"

nhớ check vào Regular exprission

Done!

 

Hướng dẫn sử dụng Ahrefs và giúp kiểm tra liên kết miễn phí

Như chúng ta đã biết Ahrefs là công cụ tuyệt với dành cho anh em SEO, chỉ có điều quá nhiều chức năng mà chúng ta không biết hoặc chưa sử dụng tới mà giá cả thì rất cao. tangduongtrieu sẽ hướng dẫn cách sử dụng Ahrefs cơ bản và kiểm tra và xuất liên kết miễn phí có các bạn có comment bên dưới.

Ahrefs share accous

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

1. Site Explorer:

Đây là tính năng mặc định của Ahrefs, giúp bạn kiểm tra liên kết của hầu hết* trang web nào bạn muốn, chỉ việc gõ URL của trang đó vào và nhấn “Try it for free” (miễn phí chỉ được 03 truy vấn/ngày) hoặc “Search Links” (bản thương mại). Bạn lưu ý chọn URL hoặc URL/* nếu muốn kiểm tra backlinks đến một trang web (không phải của cả domain) nhé.

Site Explorer

Ở tab Overview, bạn sẽ thấy các thông số như:

  • Overview: Tổng quan về tên miền của bạn, tổng số backlink/tổng số trang web, biểu đồ thể hiện sự phát triển Backlink.
  • Backlink: Tất cả các liên kết trỏ về website bạn
  • Domain: Thông kế các tên miền trỏ về
  • Top pages: Các trang web được trỏ liên kết về nhiều nhất
  • Anchor: Thống kê Anchor text
  • Linked Domain: Các liên kết mà website bạn đang liên kết đến
  • Raw Export: Xuất các thông tin có được ra tập tin RAW

Kéo xuống, bạn sẽ thấy nhiều hình đồ thị và biểu đồ thống kê Backlinks, Referring Domains, Top Referring TLDs, và đặc biệt là các thống kê về Anchor Text. Rê chuột lên các đồ thị, biểu đồ, bạn sẽ biết con số chính xác.
Nhìn vào Anchors Cloud, bạn sẽ cái nhìn chung nhất về sự phân bổ anchor text của cả site, hoặc một trang đích bất kỳ. Bạn sẽ biết trang đích đang nhắm đến (những) từ khóa nào, và đã đa dạng hay chưa để từ đó có điều chỉnh thích hợp.

Trong phần Site Explorer này, ngoài Overview, bạn có thể xem thêm Backlinks, New / Lost (cấp độ Page và Domain), Referring Domains, Top Pages, Anchor, Linked Domains. Trong số này, phần New / Lost giúp bạn kiểm tra liên kết mới và đã mất (bạn có thể chọn ngày để xem).

2. SEO Reports

Nếu như Site Explorer giúp bạn thấy được phần “Off-page” thì SEO Reports báo cáo các vấn đề “On-page” như HTTP Status Response Codes, Redirects, Page Title, Meta Description, Headings, Page Size, Encoding… Tất cả dữ liệu trên bạn đều có thể filter/sort để xem, và xuất ra CSV/Excel (UTF-16) để lưu vào máy, dành cho các phân tích “local” của bạn.

3. Backlinks Report

Trong Backlinks Reports bạn sẽ thấy:

  • Overview
  • Backlinks
  • Pages
  • Subdomains
  • Countries
  • Anchors
  • TLDs
  • Domains
  • IPs
  • Subnets (để kiểm tra Class C IPs)

Ngoài các hình minh họa, dữ liệu có thể sắp xếp (sort) và tải về máy (Excel, CSV) như Site Explorer, phần Backlinks Reports cho phép bạn xem và trích lọc (filter) liên kết theo Countries, TLDs, IPs, Subnets, URLs…

Ngoài ra, bạn thấy có chỉ số Ahrefs Rank (AR), một tiêu chí riêng của Ahrefs, đánh giá tầm quan trọng của một liên kết, tương tự Toolbar Pagerank của Google, Domain Authority hay Page Authority của (Moz) OpenSiteExplorer.

Một điểm mình đặc biệt thích là phần Anchor Text trong Backlinks Report. Mình xếp Ahrefs Rank từ thấp đến cao và phát hiện ra rất nhiều anchor text vớ vẩn được tạo ra (bởi ai đó, thường là spammer) và từ đó có cách xử lý thích hợp.

4. Domain comparison & Batch analysis (vẫn đang thử nghiệm / Labs)

Tính năng Domain comparison cho phép bạn so sánh tối đa 05 tên miền (tương tự OpenSiteExplorer mà các bạn hay dùng). Đáng tiếc là bạn không xuất dữ liệu ra Excel hoặc CSV.

Bạn có thể tải hình ảnh minh họa dạng biểu đồ về máy tính.

Để so sánh nhiều (tối đa 200 URL) tên miền và landing page bất kỳ trên website, bạn dùng chức năng Batch Analysis. Lúc này bạn cũng có thể xuất báo cáo với dạng CSV.

Mình vừa giới thiệu tương đối khái quát về công cụ Ahrefs. Và chân thành khuyên các bạn hãy dùng thử (nếu chưa).

Thường các chuyên gia họ sẽ dùng kết hợp nhiều công cụ khác nhau để phân tích dữ liệu, trong trường hợp này là liên kết. Dùng nhiều để có cái nhìn tổng quát và đầy đủ hơn, chứ không phải là đầy đủ. Vì không công cụ nào có cái nhìn giống như của Google.

Ở Việt Nam cũng vậy, khảo sát cho thấy rất nhiều bạn dùng kết hợp nhiều công cụ cùng lúc, thậm chí tự xây dựng ra công cụ riêng.

Còn bạn, trên con đường chuyên nghiệp hóa và trong một môi trường ngày càng cạnh tranh hơn, nên chăng cân nhắc trang bị cho mình một (số) công cụ thực sự hữu ích?

Nhân tiện chia sẻ lại một số lời khuyên từ Ahrefs để xây dựng 01 chiến lược link thành công:

  • Để site tăng uy tín, hãy tìm liên kết từ các site giáo dục và chính phủ. Hiển nhiên link càng khó kiếm thì thường giá trị cao hơn.
  • Nên theo nguyên tắc “một link trên một site”. Nguồn link càng đa dạng càng có lợi cho việc xếp hạng. Chỉ Dofollow link truyền tải link juice và ảnh hưởng việc xếp hạng cho nên hãy chú trọng vào loại này.
  • Cẩn trọng khi sử dụng link dạng sitewide (những link được đặt ở tất cả trang trên site, đặc biệt là ở footer) vì chúng có thể ảnh hưởng xấu đến thứ hạng, đặc biệt là khi được đặt ở rất nhiều trang (còn nhiều đến mức nào thì khó nói).
  • Nên tìm kiếm link ở khu vực, quốc gia mà site bạn đang nhắm đến, ví dụ site bạn tiếng Việt thì nên tập trung liên kết ở Việt Nam.
  • Google cập nhật giải thuật thường xuyên. Để an toàn, bạn nên khống chế lượng link chứa các từ khóa thương hiệu, không có anchor và anchor là URL khoảng 50%.

nguồn: Manseo

Hiện tại tangduongtrieu đang sử dụng acc Ahrefs Pro mà 1 người thì không sử dụng hết được, nên sẽ nhận giúp phân tích backlink và xuất ra file excel cho bạn nào cần. Các bạn vui lòng like bài này và comment tên domain bên dưới nhé, mỗi người 1 domain chậm nhất trong 3 ngày sẽ có file down backlink cho các bạn.

Chú ý:

  • Nếu bạn muốn bảo mật chỉ 1 mình bạn có thể download được file Backlink thì cung cấp cho mình địa chỉ Gmail để mình chia sẻ Drive google.
  • Mỗi người chỉ được 1 site thôi nhé

Tất cả về VPS: cài VPS, chuyển web về, backup, tối ưu, tường lửa…

Vì mỗi lần cài lại VPS là mỗi lần mình lại đi search các câu lệnh, rất mất thời gian mà đôi khi lại bị sai xót nên mình tổng hợp lại thành một bài duy nhất, trước giờ vẫn ém làm của riêng, giờ thì mình share ai có dùng thì dùng, không dùng cũng không sao :) Tất cả các bước dưới đây mình đều làm trên VPS digitalocean.

vps

Đầu tiên

I.Cài VPS Lamp trên Centos 6.5

1. Cài đặt APACHE
——————

sudo yum install httpd
sudo service httpd start

2. Cài đặt MYSQL
——————

sudo yum install mysql-server
sudo service mysqld start
sudo /usr/bin/mysql_secure_installation

cứ Enter + và chọn Y

3. Cài đặt PHP
——————

sudo yum install php php-mysql

4. Tự động chạy khi khởi động
——————

sudo chkconfig httpd on
sudo chkconfig mysqld on

Khởi động lại Apache

sudo service httpd restart

II. Add tên miền vào VPS

1. Tạo thư mục chưa Source
——————-

sudo mkdir -p /var/www/example.com/public_html

2.Chmod cho thư mục
——————-

sudo chown -R apache:apache /var/www/example.com/public_html
sudo chmod 755 /var/www

3. Chỉnh sửa httpd.conf
——————-
sudo nano /etc/httpd/conf/httpd.conf tất nhiên bạn có thể dùng các chường trình edit khác. ( Mình thì dùng FileZilla chỉnh sửa cho nhanh)

thêm dòng sau đây

<VirtualHost *:80>
 ServerAdmin [email protected]
 DocumentRoot /var/www/example.com/public_html
 ServerName www.example.com
 ServerAlias example.com
 ErrorLog /var/www/example.com/error.log
 CustomLog /var/www/example.com/requests.log common
 </VirtualHost>

4.Khởi động lại Apache
——————-

sudo apachectl -k stop
sudo /etc/init.d/httpd start

5.Virtual Hosts
—————–
Trong trường hợp thêm nhiều website bạn vẫn add tương tự như trên nhưng thêm dòng sau vào httpd.conf

NameVirtualHost *:80

III. Tạo Database + User

1.Đăng nhập vào MySQL
—————–

mysql -u root -p

2.Tạo database
—————–

create database dbname;

3.Tạo user
———–

create user 'username'@'localhost' identified by 'password';

4.Connect Database + User

——————

grant all on dbname.* to username@localhost;
FLUSH PRIVILEGES;
 exit

IV. Upload source + Import databse

Đầu tiên bạn vào website bạn đang dùng nén source lại và đặt tên là source.zip, export database và đặt tên là database.sql.tar cả 2 file đặt ở thư mục gốc của website.

1.Chuyển Source từ host cũ lên VPS mới
—————–

chuyển đến thư mục gốc website.

cd /var/www/example.com/public_html

Download source về VPS.

wget https://domain.com/source.zip

giải nén.

unzip source.zip

Trong trường hợp chưa cài wget và unzip thì bạn gõ các lệnh sau:

yum install wget
yum install unzip
yum install tar
yum install gzip

2.Import Database
——————-

cd /var/www/example.com/public_html
wget https://domain.com/database.sql.tar
gunzip *.sql.gz
mysql -u username -p'password' dbname < *.sql

3.Chỉnh wp-config.php và edit user + database giống như lúc tạo

 

V. Trong trường hợp bị lỗi không update và cái đặt Plugin được thì các bạn gõ lên sau:

cd /var/www/example.com/public_html
chown -R apache:apache *

VI. Kích hoạt MOD_REWRITE

Chỉnh sửa file httpd.conf

nano /etc/httpd/conf/httpd.conf

Tìm dòng

<Directory “/var/www/html”>

đổi dòng AllowOverride None thành AllowOverride All

Khởi động

service httpd restart

VII. Cài đặt CSF làm tường lửa và chống DDoS

1.Cài đặt CSF

rm -fv csf.tgz
 wget https://www.configserver.com/free/csf.tgz
 tar -xzf csf.tgz
 cd csf
 sh install.sh

2.Cấu hình CSF

chỉnh sửa file /etc/csf/csf.conf

Cho phép CSF

mặc định TESTING = “1” chỉnh lại thành

TESTING = "0"

Giới hạn số connect từ 1 IP

CT_LIMIT = "500"

Đổi thành Email của bạn để nhận thông báo bảo mật từ VPS

LF_ALERT_TO = "your_email@your_domain.com"

Mỗi IP được 20 kết nối từ cổng 80

CONNLIMIT = "80;20"

Nếu nhiều hơn 20 kết nối tcp đến port 80 trong vòng 5s thì block IP đó tối thiểu 5s tính từ packet cuối cùng của IP đó. Sau 5s IP đó sẽ tự động được unlock và truy cập bình thường.

PORTFLOOD = "80;tcp;20;5"

Sau đó gõ lệnh

csf -x

để tắt CSF

và lệnh

csf -e

để chạy CSF

3. Kiểm tra Website có bị DDoS hay không bằng lệnh

a.Chỉ kiểm tra kết nối cổng 80

netstat -ntu | grep ':80' | awk '{print $5}' | sed 's/::ffff://' | cut -f1 -d ':' | sort | uniq -c | sort -n

b.Kiểm tra tất cả các kết nối

netstat -ntu | grep ':' | awk '{print $5}' | sed 's/::ffff://' | cut -f1 -d ':' | sort | uniq -c | sort -n

c.Mấy cái IP nào có nhiều kết nối thì Block lại mình thì cứ trên 300 là block bằng lệnh

csf -d ip (trong đó ip là địa chỉ IP cần block)

d.Mở IP đã block trước đó bằng lệnh

csf -dr ip (trong đó ip là địa chỉ IP đã block trước đó)

Hoặc bạn không cần làm 2 bước c + d nhưng có thể update vào file csf.deny tất nhiên khi update xong bạn cần phải khởi động lại csf để tuyd chỉnh có hiệu lực.

csf -r

4. Các IP nên thêm vào White list để tránh bị Ban oan

Google bot

216.239.32.0/19
64.233.160.0/19
72.14.192.0/18
209.85.128.0/17
66.102.0.0/20
74.125.0.0/16
66.249.64.0/19

Cloudflare

199.27.128.0/21
173.245.48.0/20
103.21.244.0/22
103.22.200.0/22
103.31.4.0/22
141.101.64.0/18
108.162.192.0/18
190.93.240.0/20
188.114.96.0/20
197.234.240.0/22
198.41.128.0/17
162.158.0.0/15
104.16.0.0/12
2400:cb00::/32
2606:4700::/32
2803:f800::/32
2405:b500::/32
2405:8100::/32

VIII. Chỉnh lại múi giờ

Để kiểm tra múi giờ bạn gõ lệnh

date

trong trường hợp không đúng múi giờ bạn update lại như sau:

sudo rm /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Ho_Chi_Minh /etc/localtime

sau đó kiểm tra lại

date

IX. Giải phóng RAM cho VPS

Tạo 1 tập tin /root/cacheclear.sh với nội dung sau:

#!/bin/sh
sudo sh -c "sync; echo 3 > /proc/sys/vm/drop_caches"

Quy định 1 giờ sẽ giải phóng RAM 1 lần

sudo crontab -e
0 * * * * /root/cacheclear.sh

Lưu lại và thoát ra. Từ giờ VPS của bạn sẽ được giải phóng RAM mỗi giờ 1 lần :)

X. Tạo File Backup Tự Động Cho VPS

Tạo tập tin /root/backup.sh với nội dung:

#!/bin/bash
{
 printf "subject:Backup for VPS\nfrom:[email protected]\n\n"
 mkdir /var/backups/$(date +"%Y-%m-%d")/
 mkdir /var/backups/$(date +"%Y-%m-%d")/yourdomain.com/
 
 echo "Starting backup database for yourdomain.com..."
 mysqldump --single-transaction --routines --triggers --add-drop-table --extended-insert -u TaiKhoanUser -h 127.0.0.1 -p'MatKhau' DataBase | gzip -9 > /var/backups/$(date +"%Y-%m-%d")/yourdomain.com/db_$(date +"%Y-%m-%d").sql.gz
 echo "Starting backup files for yourdomain.com..."
 zip -r /var/backups/$(date +"%Y-%m-%d")/yourdomain.com/file_$(date +"%Y-%m-%d").zip /var/www/yourdomain.com/public_html/
} | /usr/sbin/sendmail "[email protected]"

Chú ý: nhớ thay đôi Domain + User + Database cho phù hợp

Quy định 1 ngày backup một lần:

crontab -e

Nhận o để thêm dòng mới với nội dung:

0 0 * * * /root/backup.sh >/dev/null 2>&1

Để lưu lại và thoát bạn nhấn ESC, rồi gõ vào :wq nhấn Enter.

Chú ý: Set quyền thực thi cho tập tin backup.sh, trong trường hợp bị lỗi /bin/sh^M: bad interpreter: No such file or directory thì làm như sau:

sửa file backup bằng lệnh vi

vi /root/backup.sh

Chuyển sang định dạng unix

:set ff=unix

Lưu và thoát khỏi vi bằng lệnh

:x

Làm tương tự với file cacheclear.sh