Thứ Năm, 12 tháng 11, 2015

[Woocommerce] Sửa lỗi không thêm hàng vào giỏ cho ngôn ngữ tiếng Việt

Trong lần cập nhật phiên bản của Woocommerce mới đây, mình thấy rất nhiều bạn đăng câu hỏi lên hoidap.thachpham.com về lỗi không thể thêm hàng vào giỏ nếu bật tính năng tự chuyển về trang giỏ hàng khi dùng ngôn ngữ tiếng Việt.

Sau nhiều lần tìm kiếm giải pháp thì mình cũng đã được WooThemes trả lời và chỉ ra điểm bị lỗi tại đây.

Như tác giả trả lời, vấn đề xảy ra với chuỗi ký tự “%s has been added to your cart” được dịch sang tiếng Việt. Và khi có ký tự tiếng Việt vào đây thì nó đã vô tình xung đột với tính năng loại bỏ các ký tự đặc biệt bên trong code này. Vả lại, cũng do lỗi dịch thuật là họ thiếu chữ s trong cặp ký tự %s.

Do vậy, trong khi chờ đợi Woocommerce ra bản vá lỗi thì nếu bạn muốn sửa lỗi này đi thì chỉ đơn giản là sửa lại chuỗi tiếng Việt của từ đó mà thôi.

Cách làm là bạn cài plugin Loco Translate vào. Sau đó vào Loco Translate -> Manage translations và tìm đến ngôn ngữ tiếng Việt của Woocommerce.

fix-woocommerce-cart-01

Sau đó tìm chuỗi “added to your cart” rồi chọn chuỗi “%s has been added to your cart” và sửa thành “%s đã được thêm vào giỏ hàng”

fix-woocommerce-cart-02Cuối cùng là ấn nút Save ở phía trên và hoàn tất.

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

.

Cài đặt VestaCP để tạo host trên máy chủ Linux

https://www.youtube.com/watch?v=i6xuPU2Cyxc

VestaCP đã được mình nhắc đến trong bài Những control panel miễn phí tốt nhất cho máy chủ Linux vì tính chất dễ cài đặt, hỗ trợ nhiều chức năng quan trọng và đặc biệt là mình dùng trong vài tháng thì chưa thấy lỗi gì xảy ra nên mình nghĩ nó có thể là sự lụa chọn tốt để thay thế CWP vốn mình đã giới thiệu trước đó.

vestacp

VestaCP tuy gọn nhẹ nhưng lại có khá nhiều tính năng quan trọng để bạn có thể tự tạo ra cho mình những gói host cho chính mình hoặc thậm chí là cho khách hàng.

Hỗ trợ nhiều hệ điều hành khác nhau như RHEL/CentOS 5 và 6, Debian 7, Ubuntu 12.04 đến 14.04. Sử dụng Apache Webserver kèm với NGINX làm proxy để tăng tốc website. PHPMySQL / phpMyAdminDoveCotEximVsFTPDWebalizerRoundCubeHỗ trợ Backup/Restore cho người dùng

Và dĩ nhiên, mặc dù nói ra hơi thừa nhưng mà với VestaCP bạn có thể tạo ra các gói host để chạy WordPress như các gói host bình thường, có khi tốt hơn tùy theo chất lượng máy chủ của bạn.

Trước khi cài đặt VestaCP, bạn phải chắc chắn là cài trên máy chủ chưa được cài đặt bất cứ cái gì ngoại trừ hệ điều hành để tránh gây lỗi trong quá trình cài đặt.

Tham khảo: Những nhà cung cấp máy chủ/VPS Linux tốt nhất

Để cài đặt VestaCP, bạn chạy lệnh sau:

$ curl -O http://vestacp.com/pub/vst-install.sh$ bash vst-install.sh

Và đợi, nó sẽ hỏi bạn có muốn cài đặt VestaCP vào máy chủ hay không, ấn y và Enter.

Cài đặt VestCPCài đặt VestCP

Sau đó bạn nhập email của bạn vào vì email đó sẽ thiết lập email cho quản trị. Phần hostname, bạn có thể điền kiểu sv.domain.com hoặc để mặc định cũng được.

Sau đó bạn sẽ cần đợi khoảng 15 phút để nó cài đặt.

Sau khi cài xong thì nó sẽ cung cấp thông tin quản trị VestaCP cho bạn như hình dưới.

cai-dat-vestacp-02

Trong đó, tài khoản admin là tài khoản có quyền cao nhất, bạn sẽ sử dụng nó để quản lý các tài khoản con khác nếu có hoặc có thể thêm website vào.

Bây giờ hãy truy cập vào địa chỉ đăng nhập VestaCP là https://IP-của-bạn:8083 và dùng tài khoản admin đăng nhập vào. Lưu ý, nếu có thông báo cảnh báo HTTPS thì hãy bỏ qua nó.

Mặc định khi cài xong thì bạn sẽ có tài khoản admin để quản trị website và các thiết lập trong VestaCP. Nhưng nếu bạn cần tạo một tài khoản khác cấp nhỏ hơn chỉ để quản lý website thì có thể tạo ra. Cách tạo là bạn hãy truy cập vào phần User và ấn vào nút tạo.

vestacp-tao-user

Và nhập thông tin user cần tạo.

vestacp-tao-user-02

Và tất cả mọi người dùng đều sẽ đăng nhập qua địa chỉ https://IP-của-bạn:8083 hoặc có thể đăng nhập vào với giao thức FTP.

Trước tiên là đăng nhập vào VestaCP với tài khoản mà bạn cần thêm website. Sau đó vào phần Web và ấn nút thêm.

vestacp-them-website

Và sau đó, các bạn trỏ tên miền của website vừa thêm về địa chỉ IP của máy chủ là nó chạy được. Còn lại các bạn tự mò nhé, dễ thôi.

Mặc dù VestaCP có hỗ trợ địa chỉ DNS của riêng bạn nhưng ở đây mình sẽ hướng dẫn bạn cách trỏ tên miền về host sử dụng VestaCP. Còn cách đăng ký DNS riêng thì bạn có thể làm thông qua nhà cung cấp Namecheap hoặc Godaddy vì họ có sẵn chức năng đó.

Và mình sẽ sử dụng dịch vụ DNS trung gian của CloudFlare để có thể sửa DNS linh hoạt hơn.

Xem thêm: Các thêm website vào CloudFlare.

Trước tiên, bạn nên thêm tên miền vào VestaCP như hướng dẫn trên.

Sau đó vào mục DNS, chọn tên miền bất kỳ và chọn List 11 Records.

vestacp-dns-rieng

Ở đây bạn sẽ thấy toàn bộ các bản ghi trong DNS mà bạn cần phải trỏ về. Bây giờ chúng ta sửa DNS của tên miền giống y hệt như vậy.

vestacp-dns-rieng-02

Thế là xong.

Khi tạo ra người dùng, thì bạn có thể đăng nhập vào FTP thông qua chính thông tin người dùng đó, cụ thể bạn có thể đăng nhập với thông tin như sau:

FTP Hostname: Địa chỉ IP hoặc domain đã trỏ về hoặc hostnameFTP Username: tên người dùngPassword: mật khẩu người dùngPort: 22

Khi vào đó, bạn truy cập vào thư mục web/ sẽ thấy thư mục của tất cả các domain đã thêm vào người dùng đó.

Việc sử dụng VestaCP chỉ có như vậy, còn lại các thao tác thì mình đã có nói rõ trong video hết nên mình nghĩ là nó cũng dễ sử dụng thôi. Nếu các bạn có thắc mắc gì thì hãy vào hoidap.thachpham.com để mình và mọi người hỗ trợ thêm nhé.

.

Cài đặt SSL và giao thức HTTP/2 cho NGINX trên CentOS 7

Bài viết này thuộc tác giả Công Hải của Vietstar. Net gửi đến độc giả thachpham.com.

Trong tháng 2 vừa qua, một kiểu giao thức web mới vừa được IESG chấp thuận mang nhiều tính năng vượt trội hơn, giúp website tối ưu tốc độ hơn đó là giao thức HTTP/2. Vậy thì HTTP/2 là gì, nó có những ưu điểm nào thì trong bài này, tác giả Công Hải tại VietStart. Net sẽ giới thiệu và hướng dẫn các độc giả tại thachpham.com cách cài đặt nó vào máy chủ Linux sử dụng CentOS 7.

HTTP (Hypertext Transfer Protocol) là một giao thức truyền chuẩn về mạng (truyền tải siêu văn bản – nói nôm na là giao thức web). HTTP 1.1 ra đời vào năm 1997 và vẫn được sử dụng đến hiện tại mà chưa hề có một nâng cấp nào. Có lẽ đã quá cũ nên vào 12/2014 nhóm phát triển của Hypertext Transfer Protocol đã đề xuất lên IESG xem HTTP/2 như là một tiêu chuẩn mới. Và đã được IESG chấp thuận vào ngày 17/02/2015.

HTTP 2 phát triển dựa trên SPDY (pronounced speedy) một giao thức mạng mở được phát triển bởi Google.

Có thể bạn cần:

Sự khác biệt thì rất nhiều nhưng mình tóm lại sự khác biệt lớn nhất giữa 2 giao thức là: HTTP2 hỗ trợ các truy vấn ghép, nén nội dung, ưu tiên và quản lý thông minh hơn các luồng dữ liệu. Điều đó gây ra việc giảm độ trễ và tăng tốc tải nội dung web.

HTTPS (Hypertext Transfer Protocol Secure) là một sự kết hợp giữa giao thức HTTP và giao thức bảo mật SSL hay TLS cho phép trao đổi thông tin một cách bảo mật trên Internet.

Hiện có rất nhiều bài hướng dẫn cài đặt SSL nhưng thật sự rất ít bài làm đúng. Ngay cả tinhte.vn cũng chưa thực sự cài đúng.

Các bạn có thể test SSL của website tại: https://www.ssllabs.com/ssltest/index.html

Kết quả test của tinhte.vn.

ssl-report-tinhte

Kết quả test của vietstar.net.

ssl-report-vietstar

Nên hôm nay, mình sẽ hướng dẫn bạn cài đặt và cấu hình HTTPS với HTTP2 lên chuẩn A+.

Ngày 22/09/2015 vừa rồi NGINX đã ra phiên bản mainline 1.9.5 chính thức hỗ trợ HTTP 2, và từ này chính thức say goodbye SDPY một thời hùng hậu. Như vậy, điều này có nghĩa là bạn chỉ có thể sử dụng HTTP 2 trên NGINX phiên bản 1.9.5 trở lên, nếu bạn đang dùng NGINX thì hãy gõ nginx -v để kiểm tra phiên bản NGINX hiện tại của bạn.

Nếu bạn đang dùng Centminmod, thì từ phiên bản Centmin Mod 1.2.3-eva2000.09 beta đã hỗ trợ NGINX 1.9.5.

Để cài NGINX 1.9.5, bạn cần nạp package vào. Hãy tạo file /etc/yum.repos.d/nginx.repo và chèn đoạn dưới đây vào hoặc nếu có rồi thì sửa nội dung:

[nginx]name=nginx repobaseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/gpgcheck=0enabled=1

Sau đó cập nhật lại gói yum.

yum update -y

Và cài NGINX vào với lệnh sau:

yum install nginx

Sau khi cài đặt bạn kiểm tra lại có phải là version 1.9.5 và có module http 2 (--with-http_v2_module) bằng lệnh sau:

nginx -V

Sau khi cài đặt xong, hãy thiết lập NGINX sử dụng HTTP 2 bằng cách mở tập tin cấu hình NGINX của bạn tại /etc/nginx/conf.d và đổi phần listen 80 thành thế này:

server { listen 443 ssl http2; server_name domain.com www.domain.com; .}

Và bạn hãy tạo chứng chỉ SSL, sau đó upload lên server giống như bài này (trừ bước số 5 chúng ta sẽ sửa lại 1 xíu ở bên dưới)

Thiết lập chứng thực vùng nhớ (Session cache)

Điều này là khá quan trọng vì khi truy cập giao thức SSL thì lần đầu sẽ xử lý rất nặng và nhiều (Nên khi truy cập vào trang web https lần đầu tiên thường lâu hơn so với lần sau). Thiết lập này sẽ giúp NGINX nhớ session của user và  không cần chứng thực cho request kế tiếp.

ssl_session_cache shared:SSL:20m;ssl_session_timeout 180m;

Ý nghĩa dòng 1 là tạo vùng nhớ 20MB cho chứng thực SSL. Theo tài liệu của NGINX thì 1MB chứ 4000 session. Vậy 20MB tương đương với 80.000 Session (bạn có thể điều chỉnh cho phù hợp với nhu cầu server bạn).

Dòng thứ 2 là lưu nó trong 180 phút (3 tiếng) con số này phù hợp với khoảng thời gian User truy cập website bạn. Nếu website bạn cần bảo mật hơn thì có thể giảm con số này xuống nhưng KHÔNG NÊN giảm dưới 10 phút.

Vô hiệu hóa SSL

Có thể là bạn nói tôi khùng, đang setup SSL giờ là vô hiệu hóa nó.

Nói vậy thôi, chứ thực ra là thay thế SSL (Secure Sockets Layer) bằng TLS (Transport Layer Security). Vì thực tế là SSL còn nhiều điểm yếu hơn là TLS. Tuy nhiên IE6 không hỗ trợ TLS (nhưng chắc là IE6 đã quá cổ rồi, tìm cũng chẳng còn đâu).

Thêm dòng sau tiếp theo 2 dòng trên:

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

Tối ưu hóa Cipher Suites (Bộ mã hóa)

Trung tâm xử lý, mã hóa, giải mã của SSL/TLS là chổ này (tạm hiểu vậy vì mình không phân tích sâu vào cơ chế hoạt động của nó).

Khai báo NGINX bật bộ mã hóa:

ssl_prefer_server_ciphers on;

Khai bao danh sách các cơ chế mã hóa được chấp nhận:

ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5

Tạo ra các thông số DHParam

Tạo file DH (Diffie-Hellman) với 2048 bit (đủ chết cho những thằng muốn hack):

openssl dhparam 2048 -out /etc/nginx/cert/dhparam.pem

Sau đó thêm vào config dòng sau:

ssl_dhparam /etc/nginx/cert/dhparam.pem;

@Lưu ý: Nếu client của bạn dùng JAVA 6 trở xuống thì nên dùng 1024 bit thôi nhé 😀

Kích hoạt OCSP

OCSP (Online Certificate Status Protocol) được hiểu như là kiểm tra chứng thức của bạn với nhà cùng cấp SSL (theo bài tạo chứng chỉ SSL đây là COMODO). Tạo ra file Khai báo với NGINX của bạn đây là giấy thức bằng cách sử dụng lệnh sau:

cat AddTrustExternalCARoot.crt PositiveSSLCA2.crt > trustchain.crt

File AddTrustExternalCARoot.crt là file gốc, file PositiveSSLCA2.crt là file chứng thực trung gian có kèm theo trong file zip khi bạn mua SSL hoặc download của COMODO tại đây.

Tiếp theo là cấu hình NGINX stapling

ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /etc/nginx/cert/trustchain.crt; resolver 8.8.8.8 8.8.4.4;

Ở đây là mình dùng qua DNS Google, bạn có thể dùng DNS nào khác mà bạn tin tưởng hoặc nhanh hơn.

Cấu hình Strict Transport Security

Sau khi server đã chứng thực xong thì trả về trình duyệt thời gian chứng thực được chấp nhận, trong thời gian này khi request trình duyệt không cần gửi chứng thực với Server nữa (Dó là lý do tại sao chỉ nặng lúc đầu).

Thêm dòng sau vào config file:

add_header Strict-Transport-Security "max-age=31536000" always;

Trong trường hợp chứng thực này được dùng cho nhiều subdomain thì sửa lại như sau:

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

That All, chỉ thế thôi. Bạn save lại file và restart NGINX và có thể kiểm tra xem SSL của bạn được loại gì rồi nào?

Sau khi cấu hình xong bạn sẽ có file cấu hình NGINX của domain như thế này đây:

server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name your_domain.com; ssl_certificate /etc/nginx/cert/your_key.certchain.crt; ssl_certificate_key /etc/nginx/cert/your_key.key; ssl_session_cache shared:SSL:20m; ssl_session_timeout 60m; ssl_prefer_server_ciphers on; ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5; ssl_dhparam /etc/nginx/cert/dhparam.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /etc/nginx/cert/trustchain.crt; resolver 8.8.8.8 8.8.4.4; add_header Strict-Transport-Security "max-age=31536000" always; #add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; # Cấu hình của bạn ở dưới này …}

Sau đó bạn có thể kiểm tra server đã dùng HTTP 2 chưa bằng cách cài plugin HTTP/2 and SPDY indicator của Chrome.

http2-enabled

Thế thôi, rất đơn giản phải không nào? Nhìn chung cách cài đặt SSL và bật HTTP/2 cũng khá đơn giản, nó cũng giống như mình kích hoạt SPDY mà thôi nhưng chỉ khác là thay spdy thành http2 trong phần listen của tập tin cấu hình mà thôi. Nhưng ngoài việc đó, trong bài này bạn cũng đã biết thêm một vài kỹ thuật quan trọng để cấu hình SSL an toàn hơn để đạt chuẩn A+ tại SSLLabs.

Chúc các bạn làm thành công và đừng quên vào hoidap.thachpham.com nếu bạn cần hỗ trợ.

.

12 themes WordPress miễn phí tháng 9/2015

Đầu tiên mình xin gửi lời xin lỗi đến các độc giả do một tháng vừa qua mình không hề viết bài vì lo một số việc cá nhân cũng như chuẩn bị một số dự định mới cho thachpham.com. Nên mình hy vọng rằng điều đó không gây trở ngại nhiều đến việc theo dõi bài viết của các độc giả.

Sẵn dịp đây là đầu tháng, mình xin trở lại với bài viết trong loạt bài giới thiệu theme miễn phí tốt nhất mỗi tháng mà mình đã làm suốt hơn 3 năm phát triển thachpham.com. Cũng phải nói thêm rằng trong tháng vừa qua là lúc có khá nhiều theme có kiểu thiết kế đơn giản ra đời nên nếu bạn thích các theme như vậy thì quá tuyệt vời cho bạn, hãy cùng xem nhé.

libre-wordpress-theme

Libre là một theme mới đặc trưng cho những người yêu thích trường phái chuộng nghệ thuật Typography. Với đặc trưng là giao diện thể hiện bài viết nên nó sẽ không có tác dụng làm website gì khác ngoài một blog cá nhân (các theme của wordpress.com vốn là thế mà).

evision-corporate-theme

Như cái tên của nó – eVision Corporate là một theme kiểu one-page mô tả dành cho các doanh nghiệp cần một giao diện landing page để giới thiệu dịch vụ của họ. Tuy theme này là miễn phí nhưng nó bao gồm rất nhiều chức năng cần thiết như portfolio, testimonial, khung hiển thị dịch vụ,….

quality-theme

Quality gồm có hai phiên bản miễn phí và trả phí, dĩ nhiên là chức năng của bản trả phí sẽ nhiều và chuyên nghiệp hơn nhưng các bạn có thể xem link demo ở trên, đó là phiên bản miễn phí và đầy đủ các chức năng cần thiết cho một trang giới thiệu dịch vụ. Nếu bạn cần một màu sắc khác cho theme này, bạn có thể cài theme Quality Blue để thay màu hồng đỏ đặc trưng thành màu xanh dương nhé.

zincy-lite-theme

Thêm một lựa chọn khác cho giao diện làm website doanh nghiệp. Zincy Lite là phiên bản trả phí nhưng tất cả những gì bạn thấy trong demo là phiên bản trả phí nên không cần lo ngại là bị giới hạn chức năng khi cài vào. Đặc điểm nổi bật của theme này là hiển thị các thông tin với hiệu ứng và trang trí rất bắt mắt, phần portfolio tuyệt đẹp và hỗ trợ nhiều định dạng layout khác nhau.

luna-wordpress-theme

Luna là một theme dành cho blog và các trang tạp chí mình rất thích trong các theme miễn phí tháng này. Chức năng của nó thì không có gì ngoài việc hiển thị bài viết theo dạng lưới ngoài trang chủ, còn các trang category thì hiển thị với dạng danh sách nên nó khá nhẹ nhưng như thế có vẻ là đủ cho một blog rồi.

skrollr-theme

Đây là một theme khá độc đáo về lẫn giao diện và tính năng. Kiểu hiển thị của theme này rất phù hợp cho các website giới thiệu sự kiện hoặc hình ảnh vì nó sẽ hiển thị một ảnh to theo mỗi phần kèm theo chú thích. Mặc dù theme có vẻ hơi nặng để tải do sử dụng nhiều ảnh kích thước lớn nhưng dù sao nó vẫn đáng để sử dụng nếu bạn thật sự cần.

canyon-theme

Nhìn ảnh thì có vẻ nó là một theme doanh nghiệp nhưng thực chất đây là một theme dành cho blog nhưng nó có thêm phần header khá bắt mắt và 3 cột nội dung giới thiệu để bạn có thể viết những ghi chú trên đó. Còn lại nó giống như một theme blog thông thường với thiết kế phẳng.

publication

Publication là một theme blog đặc trưng đến từ WordPress.com với giao diện có thể là không còn gì tuyệt vời hơn cho một theme miễn phí. Đặc biệt theme này sẽ rất phù hợp với các blog về hình ảnh, du lịch vì nó hiển thị ảnh đại diện kích thước khá to khi vào xem bài viết và có thể gọi là điểm nổi bật khi xem bài.

cerauno-theme

Nếu bạn mong muốn tìm một giao diện cho blog của mình với kiểu thiết kế trải dài toàn trang, hỗ trợ nhiều cột sidebar thì theme này có thể dành cho bạn.

canard-theme

Lại thêm một theme blog đơn giản nữa đến từ Automattic, nếu nói sự khác biệt thì mình chỉ thấy điều khác biệt duy nhất nằm ở cái mục hiển thị bài nổi bật trên trang chủ, các phần khác thì giống như kiểu giao diện blog thông thường.

auberge-theme

Đây là theme được ra mắt tháng 8/2015 nhưng mình đã quên giới thiệu nó thì thật là uổng phí. Auberge là một theme miễn phí dành cho các nhà hàng, quán cafe được dùng để đăng catalog giới thiệu sản phẩm của mình cho thực khách tham khảo, tuy đơn giản thôi nhưng chức năng cần như thế là quá đủ.

twenty-sixteen-theme

Đây là một theme mặc định mới mà tương lai Automattic sẽ sử dụng nó cho các phiên bản WordPress tiếp theo. So với theme Twenty Fiffteen tiền nhiệm thì Twenty Sixteen có cách thiết kế phức tạp hơn một chút về bố cục nhưng màu sắc vẫn giữ tông đơn giản trắng đen. Hiện tại ngay bây giờ bạn đã có thể cài và sử dụng nó.

Đó là những theme WordPress miễn phí đẹp mà mình cho rằng đẹp nhất được ra mắt trong tháng vừa qua. Mặc dù không phải là tất cả nhưng mình cũng hy vọng với các theme này thì các bạn có thể tìm ra được cho mình một theme miễn phí đúng nghĩa phù hợp với nhu cầu của mình.

.

Làm việc với Git trên WordPress thông qua WP Pusher

https://www.youtube.com/watch?v=1QrZV5p6hiY

Git được biết đến như một công cụ hỗ trợ triển khai các sản phẩm theme/plugin từ localhost lên website nhanh và an toàn hơn, hoặc nó cũng có thể được ứng dụng trong việc hỗ trợ cập nhật các lần chỉnh sửa ở code trên website chính an toàn hơn bao giờ hết. Tại sao nó an toàn thì mình thử cho các bạn hình dung một mô hình thế này.

Code gốc ở localhost chỉnh sửa, test chạy thử thành công -> Deploy nó lên một máy chủ nào đó để thử nghiệm -> Chạy tốt -> Deploy nó lên máy chủ chính thức.

Như vậy bạn có thể thấy, chúng ta sẽ an toàn hơn khi không chạy code trực tiếp trên website chính mà sẽ chạy thử nghiệm trước. Nhưng vấn đề khi làm như vậy là chúng ta sẽ thao tác rất nhiều, hãy tưởng tượng bạn upload code thông qua giao thức FTP lên nhiều host khác nhau đã tốn thời gian kha khá rồi.

Nên học khi rảnh: Học sử dụng Git cơ bản

Và trong trường hợp này, chúng ta sẽ sử dụng Git để tiết kiệm thời gian hơn vì nó có thể hỗ trợ tự động phân tán mã nguồn của chúng ta sau khi cập nhật ra bao nhiêu máy chủ tùy thích, không cần phải thao tác lại nhiều lần và dĩ nhiên là hỗ trợ quản lý dự án tốt hơn.

Trong bài viết này, mình sẽ giới thiệu về plugin WP Pusher hỗ trợ chúng ta làm việc với Git trên website WordPress tốt hơn, cũng như cách ứng dụng của plugin này trong việc deploy website của mình mà không cần phải thao tác nhiều lần.

Trước khi sử dụng chính thức, mình khuyến khích các bạn nên thử nghiệm trên một website mới đã chạy trên host và một website mới ở localhost.

Khi thử nghiệm và nếu bạn làm theo bài này thì hãy chuẩn bị:

Một website mới chạy trên host. Vì phải chạy trên host thì dịch vụ kho chứa như Bitbucket hay Github mới kết nối được thông qua webhook. Một website mới chạy ở localhost. Một tài khoản Bitbucket miễn phí.

wp-pusher

WP Pusher là một plugin WordPress miễn phí (có loại trả phí) hỗ trợ website của bạn kết nối với kho chứa Git (respository) của plugin hoặc theme tại Github, Bitbucket và Gitlab để nó có thể tự động cập nhật thay đổi (hay còn gọi theo thuật ngữ của git là Pull) mỗi khi kho chứa được cập nhật mới (hay còn gọi là được push lên) từ một máy khách nào đó.

Nói theo cách dễ hiểu, không quan trọng là có bao nhiêu người cùng tham gia làm việc với kho chứa của bạn, mà chỉ cần mỗi khi kho chứa được cập nhật mới là code của bạn ở website cũng tự động cập nhật theo mà không cần phải upload thủ công qua cách nào đó.

Ở đây mình xin hướng dẫn chi tiết các bước để có thể sử dụng WP Pusher trên website bao gồm bước tạo kho chứa trên Github và commit nó lên nên có vẻ hơi dài dòng xíu.

Bây giờ bạn hãy đăng nhập vào https://bitbucket.org và tạo một kho chứa.

tao-repo-bitbucket-01

Và đặt thông tin của kho chứa, nhớ là không bật tính năng private repository (kho chứa riêng tư) lên vì WP Pusher miễn phí không hỗ trợ kho chứa riêng tư.

tao-repo-bitbucket-02

Ở bước này, mình khuyến khích các bạn nên cài phần mềm SourceTree vào để dễ thao tác hơn là lệnh. Sau khi cài xong, ấn nút Clone/New để bắt đầu tạo kho chứa.

tao-repo-sourcetree-01

Chọn tab Create New Repository, chọn repository type là Git và chọn thư mục cần làm kho chứa. Ở đây bạn có thể chọn một theme nào đó đã cài sẵn ở localhost, tốt nhất là không dùng theme mặc định để tránh bị trùng nhé.

tao-repo-sourcetree-02

Sau khi tạo xong, khoan hãy commit mà nên gắn địa chỉ remote của kho chứa từ Bitbucket vào để nó có thể push lên. Vào Repository -> Add Remote, sau đó ở tab Remotes thì ấn Add và điền thông tin kho chứa của bạn ở Bitbucket.

tao-repo-sourcetree-03

Sau đó chuyển qua tab Advanced rồi khai báo tên và email để có thể commit được.

tao-repo-sourcetree-04

Cuối cùng là commit và push nó lên Bitbucket.

tao-repo-sourcetree-05

Và vào Bitbucket, kiểm tra trong phần Source đã có mã nguồn chưa nhé.

tao-repo-sourcetree-06

Bây giờ bạn vào một website nào đó, tải plugin WP Pusher từ https://wppusher.com/#licenses và cài vào như một plugin thông thường.

Sau đó vào WP Pusher -> Bitbucket và nhập tài khoản của bitbucket của bạn vào.

wp-pusher-02

Sau đó vào Install Plugin hoặc Install theme để bắt đầu tải plugin hoặc theme của bạn từ Bitbucket về. Ở đây mình chọn theme.

wp-pusher-03

Ở chỗ nhập Theme repository bạn lưu ý là nhập với định dạng tên_user/tên_kho_chứa nhé. Các phần còn lại nếu bạn chưa hiểu thì để mặc định, phần Repository host nhớ chọn host chứa kho chứa phù hợp và đánh dấu vào Push-to-Deploy để website tự cập nhật code khi có ai đó push lên kho chứa.

Và sau khi cài xong, nếu muốn bạn có thể kích hoạt theme/plugin mới cài này vào.

Nhưng để kích hoạt tính năng Push-t0-Deploy, bạn phải làm một việc nữa là cấu hình cho kho chứa có thể kết nối với website đang cài WP Pusher để nó gửi tín hiệu thì nó mới tự cập nhật được. Bạn vào phần Plugin hoặc Theme trong WP Pusher, nhìn vào kho chứa của mình sẽ có địa chỉ token như hình.

wp-pusher-04

Copy nó và vào lại trang chủ Bitbucket, vào kho chứa của bạn và chọn Settings -> Integrations -> Webhooks.

wp-pusher-05

Rồi nhập địa chỉ webhook vào cùng với tiêu đề bất kỳ và thêm nó.

wp-pusher-06

Hoàn thành.

Bây giờ bạn mở code trong kho chứa của bạn lên, sửa một tập tin bất kỳ rồi commit và push nó thông qua SourceTree, sau đó vào website kiểm tra code sẽ thấy sự thay đổi. Cách dễ nhận biết nhất là thử đổi tên theme ở tập tin style.css rồi sẽ thấy trên website nó cũng sẽ thay đổi theo. Nếu bạn chưa hiểu thì xem video của mình ở đầu bài sẽ hiểu.

Nhìn chung plugin WP Pusher tuy bản miễn phí nó hơi hạn chế một số tính năng nhưng đó giờ mình sử dụng với các dự án nhỏ hoặc cá nhân thì chưa đến nổi phải cần nâng cấp lên trả phí vì các tính năng ở bản miễn phí là quá đủ rồi. Và với nó, bạn sẽ thấy việc thao tác với Git từ website trở nên dễ dàng hơn rất nhiều, và nó tối ưu hơn là cách deploy thông qua FTP thủ công mà lại nhiều rủi ro nữa.

.

Thứ Sáu, 2 tháng 10, 2015

Cựu Phó Chủ tịch FIFA bị cấm tham gia hoạt động bóng đá suốt đời

Phòng Thẩm định-Phân xử thuộc Ủy ban Đạo đức của FIFA cho biết cựu Phó Chủ tịch FIFA Jack Warner đã bị cấm tham gia tất cả các hoạt động liên quan tới bóng đá suốt đời.

Cựu Phó Chủ tịch FIFA Jack Warner. (Nguồn: Reuters)

AFP đưa tin, ngày 29/9, Phòng Thẩm định-Phân xử thuộc Ủy ban Đạo đức của Liên đoàn Bóng đá Thế giới (FIFA) cho biết cựu Phó Chủ tịch FIFA Jack Warner đã bị cấm tham gia tất cả các hoạt động liên quan tới bóng đá suốt đời.

Theo đó, vị cựu phó chủ tịch FIFA này "đã bị phát hiện có nhiều hành vi sai trái một cách liên tục và lặp lại trong khoảng thời gian ông này đảm nhận các chức vụ cấp cao, có ảnh hưởng tại FIFA và Liên đoàn Bóng đá Bắc-Trung Mỹ và Caribe (CONCACAF)."

Lệnh cấm đối với ông Warner, 72 tuổi, bao gồm toàn bộ hoạt động bóng đá tại cả cấp độ quốc gia lẫn quốc tế, và có hiệu lực từ ngày 25/9.

Hiện ông Warner cũng đang đứng trước nguy cơ bị dẫn độ từ Trinidad và Tobago tới Mỹ - nơi ông phải đối mặt với 12 tội danh như chuyển tiền gian lận, kiếm tiền phi pháp và rửa tiền liên quan tới vụ bê bối tham nhũng hiện nay của FIFA./.

.

EU sẵn sàng biện pháp trừng phạt 4 trợ lý của Tổng thống Burundi

EU sẵn sàng áp đặt các biện pháp trừng phạt 4 trợ lý của Tổng thống Burundi Pierre Nkurunziza sau khi ông này tuyên bố giành thắng lợi trong cuộc bầu cử tổng thống gây tranh cãi.

Các trợ lý của ông Pierre Nkurunziza bị trừng phạt. (Nguồn: AP)

Theo AFP, ngày 29/9, các nguồn tin ngoại giao cho biết Liên minh châu Âu (EU) sẵn sàng áp đặt các biện pháp trừng phạt 4 trợ lý của Tổng thống Burundi Pierre Nkurunziza sau khi ông này tuyên bố giành thắng lợi trong cuộc bầu cử tổng thống gây tranh cãi.

Nguồn tin cho hay EU đã nhất trí trên nguyên tắc về việc trừng phạt 4 đối tượng trên bằng các lệnh phong tỏa tài sản và cấm đi lại, theo đó quyết định chính thức về lệnh trừng phạt trên sẽ được công bố vào ngày 1/10 tới.

Tuy nhiên, bản thân Tổng thống Nkurunziza lại không phải là mục tiêu trừng phạt “do châu Âu muốn cho ông này một cơ hội đối thoại.”

Ông Nkurunziza ra tranh cử nhiệm kỳ tổng thống thứ 3 và đã tuyên bố thắng cử trong cuộc bầu cử gây tranh cãi này hồi tháng 7 vừa qua, song phe đối lập lại tuyên bố tẩy chay cuộc bầu cử này và cho là vi hiến.

Việc ông Nkurunziza tái đắc cử đã châm ngòi cho một cuộc đảo chính bất thành của các tướng nổi dậy và khiến quốc gia Trung Phi nhỏ bé và nghèo khó này rơi vào tình trạng bất ổn nhiều tháng qua./.

.