jQuery(document).ready(function($) { $("input[id^='delete_option1']").prop("checked", true); });
Chặn truy cập từ tất cả, ngoài trừ 1 IP cụ thể
iptables -I INPUT -p tcp -m tcp –dport 3306 -j DROP
iptables -I INPUT -i eth0 -s 1.1.1.1 -p tcp –destination-port 3306 -j ACCEPT
Tối ưu truy vấn với Timestamp của MySQL
Bình thường khi muốn tìm những dòng có timestamp là hôm nay chúng ta thường có truy vấn như sau:
SELECT * FROMTable
WHERE DATE(`timestamp`
) = CURDATE();
Nếu table chỉ với vài ngàn dòng thì không sao, nhưng khi đến cả triệu dòng thì truy vấn trên hơi chậm.
Chúng ta có thể đối thành truy vấn như sau:
SELECT * FROM Table
WHERE timestamp BETWEEN '2018-12-07 00:00:01' AND '2018-12-07 23:59:59';
Hoặc
SELECT * FROMTable
WHERE`timestamp`
>= NOW() - INTERVAL 1 DAY
Full-Text Search cho MySQL
Thêm FullText
ALTER TABLE `Table` ADD FULLTEXT (`Cot`);
Truy vấn
SELECT * FROM `Table` WHERE MATCH (`Cot`) AGAINST ('giá trị cần tìm');
Chuyển file HTML thành PDF hoặc Image với Linux
Cách 1.
yum install fontconfig libXrender libXext xorg-x11-fonts-Type1 xorg-x11-fonts-75dpi freetype libpng zlib libjpeg-turbo
wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm
rpm -Uvh wkhtmltox-0.12.5-1.centos7.x86_64.rpm
Cách 2
Cài đặt evince
yum install evince
Cài đặt wkhtmltopdf
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
Giải nén
tar -xvf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
Copy tới /usr/bin/
cp wkhtmltox/bin/wkhtmltopdf /usr/bin/ cp wkhtmltox/bin/wkhtmltoimages /usr/bin/
Lệnh chuyển HTML thành PDF
wkhtmltopdf file.html file.pdf
Lệnh chuyển HTML thành IMAGE
wkhtmltoimages file.html file.jpeg
Nguồn: https://www.tecmint.com/wkhtmltopdf-convert-website-html-page-to-pdf-linux/
Kill nhiều processes cùng lúc trong Linux
To kill all PHP Processes
kill $(ps aux | grep '[p]hp' | awk '{print $2}')
To kill all Nginx Processes
kill $(ps aux | grep '[n]ginx' | awk '{print $2}')
To kill all MySQL Processes
kill $(ps aux | grep '[m]ysql' | awk '{print $2}')
Dùng rSync và SSH key để đẩy Data từ Nas lên Server Linux Centos
Ví dụ
IP của server là: 100.100.100
IP của nas là: 111.111.111
CHẠY TRÊN SERVER
Tạo SSH Key trên server Linux centos
ssh-keygen -t rsa
Tạo authorized_keys
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Chmod cho Folder .ssh và File authorized_keys vừa tạo
chmod 700 ~/.ssh
chmod 600 ~/ssh/authorized_keys
Cấu hình server Linux Centos
nano /etc/ssh/sshd_config
Sửa thành
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
Khởi động lại sshd
service sshd restart
Copy Privacy key lên trên NAS
rsync -avzhe “ssh -p 22” ~/.ssh/id_rsa [email protected]:/volume1/homes/user_nas/.ssh/
CHẠY TRÊN NAS
chmod 600 cho id_rsa
chmod 600 ~/.ssh/id_rsa
Chạy rsync
rsync -avzhe “ssh -p 22” /volume1/nas [email protected]:/server
Phân quyền files và thư mục cho WordPress
Tìm tất cả thư mục trong /home và phân quyền là 755
find /home/ -type d -exec chmod 755 {} \;
Tương tự, tìm tất cả files trong /home và phân quyền là 644
find /home/ -type f -exec chmod 644 {} \;
Sau đó mới chmod lại 2 file quan trọng wp-config.php và nginx.conf thành 444
chmod 444 nginx.conf
chmod 444 wp-config.php
Để bảo mật hơn khuyên dùng (chú ý sẽ không update, chỉnh sửa được plugin khi dùng cái này)
chown -R root:root /home/
Một số dòng code hay tùy chỉnh functions.php của WordPress
//Làm đẹp code HTML ngay hàng thẳng lối
add_action('get_header', 'gkp_html_minify_start'); function gkp_html_minify_start() { ob_start( 'gkp_html_minyfy_finish' ); } function gkp_html_minyfy_finish( $html ) { // Suppression des commentaires HTML, // sauf les commentaires conditionnels pour IE $html = preg_replace('/<!--(?!s*(?:[if [^]]+]|!|>))(?:(?!-->).)*-->/s', '', $html); // Suppression des espaces vides $html = str_replace(array("\r", "\r\n", "\n\r", "\n\n", "\t"), '', $html); while ( stristr($html, ' ')) $html = str_replace(' ', ' ', $html); return $html; }
//Loại bỏ một chuyên mục nào đó ra khỏi trang chủ
function exclude_category_home( $query ) { if ( $query->is_home ) { $query->set( 'cat', '-62' ); } return $query; } add_filter( 'pre_get_posts', 'exclude_category_home' );
//Loại bỏ phiên bản wordpress trong code.
function wpbeginner_remove_version() { return ''; } add_filter('the_generator', 'wpbeginner_remove_version');
//Loại bỏ phiên bản trong đuôi CSS và Script dạng ?ver=4.6.1
function vc_remove_wp_ver_css_js( $src ) { if ( strpos( $src, 'ver=' ) ) $src = remove_query_arg( 'ver', $src ); return $src; } add_filter( 'style_loader_src', 'vc_remove_wp_ver_css_js', 9999 ); add_filter( 'script_loader_src', 'vc_remove_wp_ver_css_js', 9999 );
//Loại bỏ hentry trong class
function isa_remove_hentry_class( $classes ) { $classes = array_diff( $classes, array( 'hentry' ) ); return $classes; } add_filter( 'post_class', 'isa_remove_hentry_class' );
Tiếp tục cập nhật….
Cẩn thận khi sử dụng VPS của Vultr
Phải nói là trước khi có trãi nhiệm đau đớn này, mình là 1 fan trung thành tuyệt đối với Vultr.
Mình sử dụng Vultr cũng được 2-3 năm nay, khi được giới thiệu trên chiasecoupon.com nay là canhme.com. Phải nói là trước đây chất lượng dịch vụ của Vultr khá tốt, thì thời gian down time rất hiếm gặp. Hoặc khi có update mình luôn nhận được thông báo trước, thời gian trả lời ticket cũng rất nhanh.
Điều đó làm mình chuyển hầu hết cách website hiện có của mình sang sử dụng dịch vụ của Vultr.
Nhưng rồi cách đây 10 ngày khi mình truy cập được vào tài khoản được thông báo là sai Password hoặc Username.
Mình nghĩ chắc là do lỗi gì thôi, nên thử khôi phục lại Password. Thì nhận được thông báo “giật mình” là email của mình không có trên Database của Vultr.
Lúc này mình lo lắng thật sự vì tất cả hệ thống của mình gốm 5 VPS chứa database và source của hơn 100 domain đều nằm trên Vultr.
Và xui hơn nữa là server Backup 6 tháng gần nhất, nằm trên Ramnode đã hết hạn từ này 01-04 mình chủ quan không gia hạn vì chờ Coupons giảm giá. Thường thì trên Server Backup mình mua với coupon tầm 20$/year nhưng nếu gia hạn thì phải mất 48$.
Vậy là tất cả dữ liệu, bao gồm code của rất nhiều dự án đều nằm trên Vultr. và không có bất kì 1 File backup nào cả.
Ngay lập tức mình đã Contact với Vultr và nhận được thư trả lời của bạn nhân viên Lloyd Slade, bảo mình cung cấp 1 số thông tin liên quan đến tài khoản.
Ngay lập tức mình đã cung cấp các thông tin đó.
Nhưng từ đó đến nay gần 10 ngày, mình không nhận được bất kì câu trả lời nào cả.
Tất cả dữ liệu của mình bốc hơi mà không có 1 lời giải thích nào.
Mình đã có liên lạc với Vultr qua các kênh khác như: Gửi tin nhắn trên Twitter, Trên diễn đàn của họ…
Nhưng có vẻ Vultr đang làm ngơ nó đi, không 1 câu trả lời nào cả.
Đây là log thanh toán cho Vultr bằng Paypal:
Xin nói thêm là :
- Mình chỉ sử dụng 1 tài khoản duy nhất của Vultr
- Thanh toán đầy đủ bằng Paypal và Master card.
- Mình có chạy Aff cho vultr và cũng có 1 ít tiền hàng tháng.
- Trong tài khoản Balance còn 60-70$.
Bài học rút ra:
- Backup + Backup + Backup + Backup…
- Lưu file Backup ở nới an toàn.
- Sử dụng nhiều nhà cung cấp lớn cho nhiều domain: hiện tại đang dùng: Linode, Digitalocean, Ramnode…
- Không nên tin tưởng vào 1 dịch vụ nảo cả.