Home Blog

Convert CSV sang SQL

0

Hello anh em, lâu rồi mình không viết bài trên cái trang này, hôm nay trong lúc không có task từ bên phía khách hàng mình viết bài này để anh em nghiên cứu và áp dụng.

Chuyện là hôm trước mình có nhận 1 task từ khách hàng đó là chuyển file CSV sang file SQL, cũng không hiểu để làm gì, tuy nhiên cũng đã có giải pháp cho nó ở thời điểm đó.

Phương án ban đầu

Trước câu hỏi, ai có thể convert CSV sang SQL? của ông CTO thì không thấy ai lên tiếng, tự nhiên có 1 thằng dev nó bảo, tao nghĩ là cái này đã có tool rồi rồi sau đó nó gửi cho team cái link này convertcsv.com/csv-to-sql.htm sau đó nó gửi kèm 1 file SQL mà nó vừa convert cho. Ok xong cuối cùng cũng đã có giải pháp giờ thì ai làm?

Trong thời điểm đó mình không có task để làm, nên ông CTO bảo mày dùng tools này để convert được không? Mình ok ngay vì rất hiếm khi từ chối, ai bảo họ trả tiền theo giờ làm gì 😀

Rồi mình tải file zip của thanh niên đó về và giải nén ra thì ối dồi ôi, có tới 9480 files vậy thì convert tới bao giờ?

Mà mình có tìm package của PHP để giải quyết vấn đề này thì không thấy đâu, chắc dễ quá không ai làm hay sao ý.

Vấn đề mình gặp phải

Mình định chỉ dùng cái trang đó để convert files ra thôi, thấy cũng ok, việc không có thì làm túc tắc vậy, và lúc bấy giờ trong đầu mình suy nghĩ, để mà ngồi viết script thì không biết bao giờ xong, vậy thì ngồi làm luôn có khi lại ngon, vì đằng nào script đó viết rồi cũng không dùng tới nữa. Không nghĩ ngợi nhiều như các task khác mình lao vào làm luôn và cũng convert được 500 files, trong vòng hơn 2 tiếng.

Vừa convert vừa nghĩ, mình là dev, mà dev là phục vụ cuộc sống vậy tại sao mình phải khổ thế này cơ chứ? Rồi mình lại nghĩ, làm éo gì có việc ngồi convert rồi tính tiền cũng được.

Rồi được 1 lúc thằng Techlead hỏi, mày có phương án gì khác không? Vì trước đó mình có kêu, phải có phương án gì chứ? 9k files thế này về lâu dài chắc éo ổn. Mà mình convert và chạy thử files SQL đã convert thì chúng nó không work vì lý do là trùng tên cột, tên cột có ký tự đặc biệt. Sau đó thằng Techlead đã vứt cho mình 1 đoạn script bằng NodeJs ( cái NodeJs này thì mình hiện tại chưa dùng nhiều ) convert thử thì còn tệ hơn dùng cái tool kia.

Giải pháp

Thôi làm cả hơn 2 tiếng mới đc 500 files vậy thì tính ra cũng mất kha khá thời gian để convert hết 9k files đó, vậy là mình quyết định dùng script của techlead, nhưng nó lại cùi quá dùng npm package nên mình không chỉnh sửa gì nhiều, mà có sửa cũng đếch biết sửa như dùng PHP, nên mình tự viết cho nó ok.

Thế là mình mang PHP thần thánh ra viết, bắt đầu từ câu lệnh tạo bảng, rồi tới câu lệnh insert dữ liệu, xử lý trùng tên cột, kiểu dữ liệu …

Và sản phẩm cuối cùng đã hoàn thiện sau 4 tiếng sau đó, chạy ngon lành, mình cũng đã xử lý các thứ và import thử file SQL, work ngon lành anh em ak.

Đây là link repo nhé: https://github.com/binjuhor/csvtosql anh em có task tương tự thì ném file CSV vào trong thư mục CSV rồi chạy file index.php là được. Có thời gian mình lại update thêm cho nó thành composer package cho anh em dùng.

Tổng kết

Nếu convert dưới 500 files thì chắc dùng tool ok, nhưng 9k files như mình thì khuyên là nên dùng script vì nó nhanh hơn rất nhiều, mà dùng script thì mới có case study để viết bài cho anh em chứ.

Anh em sài thử và cho mình ý kiến nhé, nếu có đóng góp vui lòng cứ tạo issue trên github, có thời gian mình sẽ vào xử lý.

Cài đặt Ubuntu 20.04 làm home server

Một ngày cuối năm nọ mình được 1 ông em làm bên ngân hàng chia sẻ cho cái server thải của bên đó, và mình quyết định tìm hiểu cách để cài đặt nó thành một con server, cho anh em dev vào đó cho đỡ phải thuê VPS, tháng mất ngót nghét 300k tiền thuê, tiện trải nghiệm việc cài cắm một con máy từ local để làm web server xem nó thế nào? Không nhiều dòng nữa, vào việc thôi.

Chuẩn bị

  1. 01 cái máy tính, gì cũng được.
  2. 01 cái usb để cài đặt hệ điều hành.
  3. Mạng internet
  4. User và pass cài đặt của cái modem wifi của nhà bạn

Cài đặt

1. Tạo usb cài đặt hệ điều hành cho máy tính, mình thích dùng Ubuntu vì nó giống với các server mình đang dùng cho khách hàng cũng như cho vps dev lúc trước.

Đầu tiên tải hệ điều hành Ubuntu Server tại đây sau khi tải xong về hãy tải phần mềm rufus cho Windows còn hệ điều hành khác thì các bạn cứ Google cho chắc ăn nhé, mình dùng MacOs ( cái usb thì ông em làm sẵn cho rồi )

2. Khởi động máy tính có cắm USB mà bạn đã làm, cài đặt server hệ điều hành cho nó phần cài đặt này các bạn tìm Google nhé, mình không muốn vứt thêm rác lên Internet, đã có người hướng dẫn rồi, mình cũng theo tip mà làm và thành công thì ngồi đây chia sẻ với các bạn link tip ở đây: https://vietnix.vn/bien-may-tinh-thanh-vps-server/

Chọn bước nào phù hợp nhé, ví dụ kết nối máy tính qua dây thì bỏ qua bước setup wifi

3. Cài đặt địa chỉ IP tĩnh cho máy tính, bước này là cần thiết, thậm chí bỏ qua cũng không sao, nhưng nhỡ đâu mỗi lần khởi động lại IP của máy tính bị thay đổi thì lại phải setup lại mệt lắm nên setup ip tĩnh cho nó, một lần rồi thôi, cái này theo tip dưới này nhé, theo tip dưới này đảm bảo thành công 100%

4. Sau khi cài đặt ip tĩnh cho máy tính rồi bạn cần mở port cho cái modem để người ta truy cập từ internet vào, cái này search theo tips của các cụ làm Camera mà làm easy thôi, cụ thể bạn cần đăng ký tài khoản bên trang no-ip.com để add vào phần Dymamic DNS trong cái modem của nhà bạn. Theo mình hiểu thì cái modem nhà mình được cấp địa chỉ IP động ( tức là nó sẽ thay đổi trong tương lai, bao nhiêu lâu thì mình ko rõ ) để tự động cập nhật cái IP này lên 1 domain cụ thể thì mình đăng ký tài khoản ở trang no-ip.com kia nó tự làm việc này cho mình. Tìm xem phần Dynamic DNS ở đâu trong cái modem mà setup nhé.

Tiếp theo bạn phải chọn port forward cho nó hiểu là cái domain này sẽ trỏ tới cụ thể 1 máy tính nào trong mạng LAN của nhà bạn, thì bạn tìm trong phần Firewall Setup của cái modem có phần NAT ( chú ý tắt hết firewall đi nhé, tắt Firewall, SPI, Firewall IPV6)

Để setup phần NAT này thì cũng search Google nhé vì các ông làm camera cũng setup vậy à, chú ý có cái port 80 sẽ không setup được vì nó trùng với port setup của modem, lúc này vào trong phần Maintenance để setup cái http port HTTP web port sang port khác ví dụ 8080 chẳng hạn.

Ok cũng sắp xong rồi còn một bước nữa là cài đặt cái tool của no-ip về để cho thằng này nó nhận máy tính của bạn để nó nhận cấu hình kết nối domain nhé http://www.noip.com/download chọn linux nhé hoặc xem hướng dẫn của nó cho thằng Ubuntu ở đây

Ok xong rồi đấy giờ xem nó work thế nào thôi.

Lỗi hay gặp phải

Trong quá trình setup mình gặp các lỗi nhỏ nhỏ mà nó không theo đúng cái tips hướng dẫn như sau:

  1. systemctl enable noip2.service mình chạy câu lệnh này không được dẫn đến phải search xem nó ở đâu vì sao lại bị
  2. make not foundmissing gcc cái này thì cứ cài về thôi dùng apt mà cài đặt
  3. Tắt máy đi xong server ngỏm luôn, là do mình chưa setup ip tĩnh cho con máy chủ, quay lại bước cài đặt máy chủ.
  4. Lỗi dịch vụ noip2.service không tồn tại xử lý theo cái này

Sử dụng

Mình cài đặt Webserver cho nó dùng EasyEngine như một con server bình thường, có thể tham khảo bài viết Cài đặt web server cho WordPress với một câu lệnh

Tóm tắt

Các bước cần hoàn thiện ( bỏ qua bước chuẩn bị máy tính và usb dây mạng linh tinh )

  1. Cài hệ điều hành Ubuntu Server
  2. Cài đặt Dynamic DNS cho modem ( phần dùng tài khoản no-ip.com )
  3. Cài đặt NAT > Port Forwarding
  4. Cài đặt Tool cho máy tính để map với domain
  5. Cài đặt Web Server và hưởng thụ

Cài đặt server cho WordPress chỉ với 1 câu lệnh

0

Những ngày đầu đến với team làm theme để bán trên Envato cho mình thật nhiều những kiến thức, kinh nghiệm về việc triển khai dự án WordPress ra sao? Cài cắm server như thế nào? Lúc đầu mình dùng LAMP, rồi chuyển qua dùng LEMP rồi tối ưu bằng cách cài thêm Redis để cache các kiểu, và mình cũng tốn rất nhiều thời gian cho việc cài cắm đó.

Server công ty thì không dám đụng linh tinh rồi, nên mình đã mua hẳn 1 con VPS $5 DO để cài đặt và học cách cài. Sau bao nhiêu năm vật lộn mình có viết lại document nào là cài PHP ra sao? Mariadb ra sao? Security thế nào? Config nginx ở đâu? …

Cài đặt server bây giờ với mình easy ra sao?

Sau vài năm đi làm cũng như trải nghiệm việc cài cắm mình đã được anh em suggest dùng Runcloud tuy nhiên khi dùng bản miễn phí của thằng này thì mình ko cài được SSL và hạn chế về số user và một vài tính năng khác như cache redis …

Cuối cùng thì mình đã đến với EasyEngine các bạn đọc bài viết về EasyEngine ở đây nhé nếu chưa hiểu thì sang hẳn trang chủ của nó mà ngâm cứu.

Đồng thời do mình sử dụng git-deploy để quản lý source cho khách hàng nên mình đã viết 1 bài chia sẻ ở đây về git-deploy và EasyEngine v4, sau một lần mình hướng dẫn các em của mình làm thì mình thấy nó vẫn còn rối rắm và anh em không có hứng thú lắm nên mình quyết định làm nguyên 1 tools siêu phẩm, chỉ cần copy paste 1 dòng duy nhất các bạn đã cài đặt 1 server hoàn chỉnh bao gồm cả git-deploy để chạy ứng dụng PHP mà cụ thể là WordPress với git-deploy quản lý source cũng như deploy code theme cho khách hàng.

Cơ bản các bước như sau

copy và chạy câu lệnh phía dưới với tài khoản root ( chỉ chạy server nào mà EasyEngine hỗ trợ thôi nhé

Shell

Đợi 1 lúc tầm 5 phút gì đó nếu không xảy ra lỗi lầm gì thì coi như bạn đã cài xong server rồi đấy, ngày xưa mình mới làm mất mẹ buổi sáng có khi mất nguyên ngày vì phải cài cắm extension, với cả làm cho các phần mềm chúng work với nhau, giờ easy vãi.

Tiếp theo là tạo website mới với câu lệnh sudo ee site create example.com --type=wp câu lệnh này là của EasyEngine nha anh em cần nghiên cứu thêm về EasyEngine của rtcamp

Tạo git deploy bằng câu lệnh ee-git example.com theme_name đây là câu lệnh tạo git-deploy cho cái theme tên là theme_name nhé, ngoài ra anh em có thể modify câu lệnh tuỳ ý cho việc deploy của mình.

Giờ thì copy cái dòng xanh xanh mà mình vừa chạy câu lệnh ee-git ý cho vào repo của mình ở localhost rồi push code thôi.

Chú ý: các bạn phải add ssh key của mình vào file /home/git/.ssh/authorized_keys để sử dụng git deploy nhé

Các việc có thể làm

Hiện tại mình dùng cách này để cài server cho khách, mua cái server $10 rồi cài cái này vào xong báo giá khách $15/ tháng rồi gửi document hướng dẫn để khách có thể vận hành website.

  1. Khách toàn quyền update source code của cái theme mà mình đã dev cho họ bằng git ( nếu như là developer hoặc họ thuê developer khác )
  2. Trọn gói bảo mật cao vì chỉ sài git chứ có làm gì đâu, thậm chí cái web của bạn còn được đóng trong container của docker nữa.
  3. Nhanh tiện mì ăn liền cho team nào quản lý cả chục cái theme và cần update lên chục cái demo mà không sợ nhầm lẫn code, không sợ đang upload rớt mạng –> lỗi file

Nói tóm lại

Bài này chỉ show cho các bạn cái siêu phẩm mà mình vừa làm xong để cài đặt server và git deploy trong cùng 1 câu lệnh thôi,

Tạo domain cho S3 Bucket

2

Bữa nọ có 1 website của khách hàng có sử dụng S3 để làm phần quản lý media, và mình đã tìm cách config lại đường dẫn hình ảnh để trông nó tử tế hơn kiểu website dạng https://wpazweb.com thì file ảnh sẽ là dạng https://static.wpazweb.com loay hoay hồi lâu mới xong nên mình post bài này để nhỡ sau mình có gặp phải hoặc ai đó va phải thì đọc qua để nhớ lại, và có cái frame để làm cho nó nhanh hơn, đỡ tốn thời gian hơn, bài viết này trong phạm vi của WordPress nhưng cũng có thể áp dụng với source khác tuỳ kiến thức của mọi người.

1. Plugins cần thiết

Các bạn cài plugin này nhe WP Offload Media Lite for Amazon S3, DigitalOcean Spaces, and Google Cloud Storage

Tiếp theo là setup S3 của các bạn.

2. Setup S3 aws

  1. Tạo bucket mới với tên bucket giống với cái tên domain mà các bạn định tạo ví dụ ở đây là static.wpazweb.com
  2. Trỏ domain tới bucket đó bằng cách tạo bản ghi CNAME
    • key: static.wpazweb.com value sẽ là static.wpazweb.com.s3.amazonaws.com

Ok sang bước tiếp theo là config plugin

3. Config plugin

Config như hình nha các bạn!!

Các config khác cứ theo plugin mà setup thôi nhé ( cái này bạn nào cài thì sẽ biết và cài đặt được )

4. Chú ý

Có 1 điểm chú ý ở đây đấy là SSL của domain khi cài đặt cho website mà mình tốn rất rất nhiều thời gian vào nó và thực sự thì nó không đáng, thế nên mình note lên đây để sau này không va vào nữa, đó là:

Bình thường mình setup DNS như hình:

Thế nên vật lộn mãi mà nó không nhận https và hiển thị hình ảnh đúng

Lúc sau phải chỉnh lại về Full không thì nó mới work 😀

Để thế này nha

5. Tóm lại

Mọi thứ có document hết rồi đấy nhưng lâu lâu mình mới setup lại nên nhớ nhớ quên quên, bài này mục đích là để lưu lại mình đã làm thế nào cho bản thân mình, và chia sẻ lại cho anh em ( nếu cần ) anh em nào thấy mình ngu quá thì vào chửi cái cho mình khôn ra tí nhé :))

Git deploy với EasyEngine v4

0

Bài viết này mô tả về stack mà mình đang dùng để vận hành các website của mình và của khách hàng ( của mình ), mình nghĩ nếu để cho 1 dev có biết 1 chút chút thì nó cũng không quá khó để quản lý và sử dụng.

Nó bao gồm: VPS đang sử dụng, cài đặt môi trường và deploy với git deploy như thế nào?

Vấn đề là gì?

Đã rất lâu rồi, những ngày đầu mới vào nghề mình mày mò cài đặt LEMP ra sao?, LAMP ra sao? nói thật cài và search hướng dẫn cũng được, tuy nhiên vẫn đang thuộc dạn hên xui vì phiên bản các phần mềm tương tác với nhau, thiếu extensions là bình thường, và thường tốn rất nhiều thời gian cho việc này, chưa kể 1 hôm nó bị lỗi hay update phiên bản gì đó nữa thì thật sự là lâu lâu mới xong.

Chính vì thế mình viết bài này cho anh chị em, bạn bè nào muốn kiểu mỳ ăn liền quẩy phát ăn luôn trong vòng 5 ~ 10′ setup cả việc deploy = git cache các thứ cho server của mình.

Hiện tại mình đang sử dụng EasyEngine để cài đặt và deploy cho website của mình, những anh chị em nào chưa có thông tin hay chưa biết gì về EasyEngine thì vui lòng đọc qua bài viết về EasyEngine này để hình dung trước nhé.

Stack sử dụng

  1. VPS $5 hoặc $10 của Vultr ( nếu bạn nào chưa biết Vultr thì link đây ) hoặc bất kể 1 VPS linux hay Centos nào các bạn có cũng được.
  2. Kiến thức Git (nó giống như git mà anh em dùng hàng ngày á)
  3. Easy Engine v4
  4. Một chút kiến thức về Bash Shell ( thật ra giờ này cũng chỉ cần biết dùng Vim là cũng ok rồi)

Cài đặt

Sau khi launch một VPS thì các bạn theo bài viết hướng dẫn dùng git hook để deploy ở đây nhé, hoặc các bạn có thể theo cấu trúc mà mình đã tạo ở đây và nó chỉ dành cho EasyEngine nếu bạn nào có nhiều kiến thức về nó thì có thể tuỳ biến cho bản thân mình

  1. Setup VPS
  2. Cài đặt EasyEngine
  3. Cài đặt git deploy

Các bước mình đã ghi rõ trên Github ( đề phòng 1 ngày đẹp trời mình không còn đủ tiền duy trì blog này nữa 😀 ), repo mình để ở đây và mình có ghi chi tiết hướng dẫn ở trong README.md rồi nhé

https://github.com/binjuhor/ee-git-deploy

Thật ra bạn chỉ cần dùng một câu lệnh duy nhất là nó sẽ cài đặt EasyEngine và Git Deploy trên VPS của bạn. Câu lệnh đó là:

Shell

Thật là dễ như ăn kẹo phải ko anh em?

Tiếp theo để thêm 1 git repo và cho phép mình chạy git deploy thì các bạn theo các bước trong README.md nhé.
Nếu chưa hiểu hoặc chỗ nào mình mô tả ko ra gì cứ mạnh dạn inbox, mình cũng giống các bạn thôi hihi

Tóm tắt lại

Post này chỉ mang tính giật title và giới thiệu repo trên Github cho các bạn nào theo dõi blog mình thôi https://github.com/binjuhor/ee-git-deploy trong repo này đã có đủ cả những gì bạn cần.

Cám ơn các bạn đã quan tâm!

Sử dụng git hook để deploy website

2

Nhiệm vụ chính

Sử dụng git push để deploy code lên server, vừa nhanh đỡ phải connect FTP các công đoạn, mà nếu bạn quản lý nhiều website thì không tránh khỏi việc nhầm lẫn web này sang web kia. Đồng thời cũng là nhanh nhất việc áp dụng các file đã thay đổi mà không phải lựa chọn từng file sau khi chỉnh sửa.

Các bước cài đặt

1. Cài đặt git cho server của bạn, đồng thời cũng tạo luôn user là git và thư mục của user này trong /home/ là thư mục /home/git và nhớ phân quyền cho thư mục này là toàn quyền của git nhé.

Câu lệnh chown git:git /home/git sẽ giúp bạn phân quyền cho thư mục này.

2. Tạo git repo cho dự án mà bạn muốn deploy cụ thể là khi bạn dùng git push thì đây sẽ là nơi tiếp nhậ source code thay đổi của bạn để deploy. Tạo deploy bằng câu lệnh sau:

git init --bare /home/git/tenproject.git

như vậy là bạn đã tạo xong một git repo chứa code, phần này nó giống như là 1 repo của các bạn trên github vậy giờ bạn có thể push code cho repo này bằng đườn dẫn sau:

git@diachiip:tenproject.git ví dụ: git@123.244.222:wpazweb.git

Như vậy trong project code của bạn bạn sẽ cần add repo này vào git của các bạn, bằng cách sau:

Dùng câu lệnh git add : git add remote live git@123.244.222:wpazweb.git

Push code lên server: git push live master những thay đổi trong code của bạn sẽ được đưa lên server.

3. Xong phần 3 thì nó vẫn chưa deploy code vào thư mục mà mình mong muốn đâu các bạn ạ, mà mình phải viết hook cho cái repo này (tức là bảo nó làm gì khi có người push code vào nhánh master chẳng hạn, hoặc vào nhánh dev chẳng hạn)

Việc này sẽ đơn giản thôi đó là tạo 1 file tên là post-receive vào trong thư mục /home/git/wpazweb.git/hooks/post-receive trong file này sạn nội dung như sau:

Shell

Nhớ chạy chmod +x /home/git/wpazweb.git/hooks/post-receive để file có thể hoạt động nhé

Trong đoạn bash ở trên mình có sử dụng 2 nhánh 1 nhánh cho website dev.wpazweb.com mục đích là dùng để test trước khi deploy lên live là wpazweb.com chủ yếu là việc chỉnh sửa code theme nên mình làm như vậy. Với các team phải maintain hoặc deploy nhiều web mà các bạn có owner hẳn con server thì làm thế này quả là rất tiện và chắc cốp.

Nói chung cơ bản là các bạn đã hiểu 1 phần công việc mình đang làm và deploy cho website thế nào rồi đấy 🙂

Một số cách deploy khác dùng git

Sử dụng web hook trên repo của gitlab hoặc github khi bạn push code vào nhánh master sẽ gọi 1 đường dẫn tới server live của bạn và website của bên bạn sẽ tiến hành chạy câu lệnh để pull code về.

Sử dụng tính năng có sẵn của Cpanel tuy nhiên một số host sẽ không cho bạn chạy tính năng này đâu.

Tạo thư mục mà bạn muốn thay đổi là thư mục git luôn, khi có thay đổi thì bạn vào chạy câu lệnh pull trực tiếp cách này cũng ok nhưng trong thư mục của website live sẽ có 1 thư mục .git có vẻ sẽ thú vị với các hacker

Vấn đề lỗi sẽ gặp phải

Chạy theo những gì hướng dẫn các bạn sẽ gặp phải một số vấn đề như:

  1. File post-receive ko chạy được vì quên chmod +x
  2. Lỗi không ghi được files vào thư mục deploy
  3. Không push được code lên repo mình vừa tạo
  4. Push rồi xong chả thấy thay đổi gì cả

Cách khắc phục

  1. Chạy câu lệnh chmod +x duong-dan-file-post-receive
  2. Phân quyền cho tài khoản git có quyền ghi vào thư mục deploy
  3. Thêm ssh key vào file ~/.ssh/authorized_keys ( của tài khoản git nhé )
  4. Check lại xem quyền ghi thư mục, đường dẫn thư mục đã đúng chưa? kết nối mạng ra sao? fail ở bước nào?
  5. Tương tự bước 4 xem có bất kỳ lỗi nào xảy ra không?

Tóm lại

Bài hướng dẫn này dành cho các bạn thích mày mò, giảm thời gian phải bật Filezilla hoặc phần mềm nào đó tương tự để deploy code, hiện tại mình đang dùng cách này, các bạn có cách nào xịn xò thì vui lòng chia sẻ cho mình với nhé, cám ơn các bạn.

Note: bạn nào làm được rồi thì hãy chia sẻ cho mình biết với nha, mình cũng có 1 note ghi về vấn đề này tuy nhiên nó ko được hệ thống hoá cho lắm, nếu bạn nào cần thì nhắn mình chia sẻ link nhé.

WPML và những điều còn thắc mắc

2

Khi bạn đọc được bài viết này chắc chắn rằng bạn đã biết WPML là cái gì rồi? cái tên nói lên tất cả? còn nếu chưa biết thì thôi đọc cũng không có thêm nhiều thông tin cho bạn đâu.

Cài WPML là tự có ngôn ngữ mới!

Thật ra là do công nghệ nó làm hư mọi người đấy chứ không phải các bạn suy ra đâu, thường thì mình thấy google translate nó tự dịch các từ ngữ của mình sang ngôn ngữ khác nên mình nghĩ cái này làm đa ngôn ngữ cho WordPress nên cài vào là tự có ngôn ngữ khác á! thưa không cài vào bạn còn phải setup nhiều nhiều thứ mới có được cái cờ hiển thị ra để chọn ngôn ngữ, tiếp đó bạn phải tự ngồi mà dịch thì mới có bản dịch cho ngôn ngữ thứ 2 cho website của bạn.

WPML có tự động dịch không?

Có đấy idea WPML sinh ra là để chạy các dịch vụ về dịch thuật, thế nên bạn cần phải trả phí cho dịch vụ dịch thuật để nó tự dịch cho nhé, bạn cần kiểm tra lại bản dịch trước khi post bài ở ngôn ngữ mới. Ngoài ra khi thêm phương thức thanh toán bạn cũng có khoảng hơn 2000 từ được dịch free đấy, xem qua bài này để làm sao tự động dịch bài viết với WPML nhé.

Cài WPML là có thể dịch tất cả các từ trên website?

hên xui nha, một số plugin, hoặc theme khi viết không viết đúng chuẩn thì sẽ có 1 số từ không dịch được, một số plugin có options cũng không thể dịch được, đã có lần mình phải dùng câu lệnh SQL để xử lý vụ này luôn. thế nên khi gặp vấn đề thì cần phải support hoặc được dev hỗ trợ chứ end-user là ko xử lý đc vấn đề này.

WPML có hỗ trợ multiple site không?

Như các bạn đã biết WordPress cho phép bạn tạo ra cả 1 hệ thống website WordPress và được quản lý ở 1 site chính gọi là multiple site, vậy WPML có hỗ trợ multiple site của WordPress không? Xin thưa là có, bởi vì WPML cũng tương tự các plugin khác dành cho WordPress tức là có thể được quản lý qua admin của network mà mình cài. Còn quản lý thế nào thì nó cũng tương tự các plugin khác thôi bạn nhé.

Bạn còn điều gì thắc mắc ?

Hiện tại khi mình tiếp xúc với WPML thì mình gặp các vấn đề vậy, bạn nào còn thắc mắc vui lòng comment để mình biết và giải đáp, hoặc cùng tìm câu trả lời nhé.

Siteground performance

0

Hôm nay mình có cơ hội được fix security và tối ưu cho một website của khách hàng và nó được host trên Siteground, đây là một vài cảm nhận và cũng là trải nghiệm của mình với đơn vị cung cấp này.

Các dịch vụ

Siteground (siteground.com) (SG) là một đơn vị khá uy tín về việc cung cấp hosting cho khách hàng, bên cạnh dịch vụ tuyệt vời mà họ cung cấp trong gói hosting của họ cũng có cài đặt các service cache tương ứng phù hợp với website WordPress cụ thể như:

  1. Nginx cache
  2. Dynamic cache (cái này site ground có một plugin hỗ trợ cache tuyệt vời)
  3. Memcache
  4. Ngoài ra SG cũng là đối tác của Cloudflare nên việc cài đặt Cloudflare và setup các thứ chỉ cần cài đặt bên trong dashboard của SG được

Ngoài ra việc quản trị website trong phần dashboard của SG khá là đơn giản ai cũng có thể xử lý được, không khó khăn như việc sử dụng Direct Admin hoặc Cpanel.

Trải nghiệm tốc độ

Đây là hình ảnh mà mình đã bật cache các thứ cho website này
sau khi cài đặt cache các thứ cho website này.

Mình thấy qua 3 lần cache như vậy chắc việc optimize này là cũng dễ hiểu cụ thể mình đã làm như sau:

cũng tick nốt cái này

Trong phần Dynamic Cache SG có cung cấp cho mình một plugin là SG Optimizer cái này là plugin của SG nên việc cài cắm và optimize khá là ok. https://wordpress.org/plugins/sg-cachepress/ (Lưu ý cái plugin này chỉ dành cho web dùng host SG)

Trong phần quản lý của plugin này chủ yếu bằng Tiếng Anh nên việc setup sẽ không khó cho các bạn đọc đc tiếng anh, mình thấy phần cài đặt của bên này khá chi tiết và dễ hiểu, mình sẽ chụp lại màn hình để các bạn làm theo nhé.

Phần này chủ yếu quản lý xoá cache của Memcache

Trong tab Environment Optimization tick những gì bạn có thể tick chủ yếu phàn này liên quan đến môi trường website thôi bên SG lo rồi các bạn chỉ chủ yếu lo setup phần Frontend optimization và media optimization thôi

phần Frontend optimization các bạn tick hết nha riêng phần Web Fonts Optimization thì bạn điền link font trực tiếp vào để website load trước các font này cụ thể như thế này

Phần media các bạn cũng setup tương tự mình nhé

như vậy là mình đã show những gì mình làm với website của khách và tốc độ thì các bạn có thể tự trải nghiệm và test nhé, khách của mình ở UK nên hãy thử với trải nghiệm ở khu vực UK.

Vấn đề gặp phải khi setup cache

Ở SG họ cho mình 2 mục trong phần Speed cụ thể là Caching và Cloud Flare

Bạn chỉ cần kết nối với tài khoản Cloudflare thì việc setup thêm 1 tầng speed nữa đã đc SG config giúp.

Vấn đề mình gặp phải là khi mình kết nối thì SSL không hoạt động toàn site chết luôn báo là SSL có vấn đề gì đó. Và khi bật tính nnăng này thì website của bạn sẽ có thêm tiền tố www nữa nhé hãy để ý.

Mình đã kiểm tra mọi thứ như hướng dẫn nhưng còn thiếu 1 bước đó là phần SSL đặt không đúng với những gì bên SG họ yêu cầu.

nếu bạn có cài SSL rồi thì chọn như thế này nha.

rồi ngồi đợi thôi, ngoài cái lỗi ko vào được website mình còn gặp vấn đề là bản ghi WWW chưa được update nữa, đừng vội hoang mang, kết nối rồi thì ngồi đợi lúc nào rảnh vào re-fresh trang xem nó update chưa thôi chứ mình cũng ko có biết làm gì, mình không thấy có chỗ chat với support, chứ còn gửi ticket thì cũng ngồi đợi chứ biết làm thế nào?

Tóm lại

Túm cái váy lại thì, Site Ground khá đáng đồng tiền bát gạo, nó khá là tối ưu cho website WordPress, bạn có thể suggets cho khách hàng nước ngoài của mình về việc cân nhắc sử dụng hosting bên này nhé.

Đây là trải nghiệm của mình và cũng là bài log lại công việc của bản thân sau này có dịp còn review, các bạn đã có trải nghiệm tương tự hoặc có ý kiến gì về dịch vụ của bên này thì vui lòng cho mình biết ở dưới comment nhé.

Tạo website trên localhost WordPress với 1 dòng lệnh

0

Mục tiêu

Tạo site WordPress trên localhost một cách nhanh chóng, chỉ dùng 1 câu lệnh duy nhất. Xem demo ở dưới đây:

Tại sao ?

Do phần lớn dự án mình làm việc với các dự án website WordPress nên mỗi một lần mình tạo theme mới hoặc website mới là mình phải tải hoặc copy hoặc cài đặt khá nhiều thứ hơi tốn thời gian, trong lúc rảnh rỗi hiếm có mình đã tạo 1 script để tạo site WordPress đơn giản trên localhost, hôm nay mình chia sẻ cho anh em cách mình làm việc với 1 project WordPress trên localhost và hi vọng sẽ giúp được cho người mới có thêm tốc độ bằng cách bớt đi những bước không đáng có trong việc phát triển dự án website WordPress.

Ghi chú

Bài viết này sẽ chia sẻ cách cài đặt các ứng dụng cũng như các thao tác của bản thân mình khi phát triển một website WordPress như thês nào trên localhost, mình dùng MacOs nên mình sẽ chỉ hướng dẫn các bạn trên MacOs thôi nhé.

Phần mềm sử dụng

Các phần mềm mình sử dụng đó là Laravel Valet để tạo localhost với domain là tên thư mục .test. Cách cài đặt cái này các bạn vui lòng tham khảo ở phần này nhé https://laravel.com/docs/8.x/valet, cài MySQL, tiếp sau đó cài wpcli cái này các bạn tham khảo ở đây nhé https://wp-cli.org

Sau khi cài cắm các thứ và park thư mục các bạn tạo thư mục trong thư mục code của mình thì sẽ có website tương ứng là tenthumuc.test là website trên localhost luôn.

Script mình đã viết

Dựa vào các phần mềm mà mình đã cài mình có viết 1 script sẵn để giúp mình tạo website WordPress bằng 1 câu lệnh ( thật ra mình viết file .sh rồi vứt nó vào thư mục /usr/local/bin rồi dùng lại thôi.

Các bạn copy đoạn code này cho vào 1 file .sh nhé ( có thể cải tiến tùy theo ý tưởng của bạn )

Shell

sau khi copy vào 1 file .sh ví dụ new-wp.sh chẳng hạn, các bạn chmod
+x file trong terminal bằng dòng lệnh sau:

chmod +x new-wp.sh sau đó copy vào thư mục /usr/local/bin để dùng lại cho các project sau này nhé dùng câu lệnh `move new-wp.sh /usr/local/bin/new-wp`.

để tạo mới 1 site WordPress trên localhost bạn cần chạy câu lệnh new-wp ten_project là bạn đã có 1 project WordPress tương ứng rồi.

Tóm tắt

Mình đã viết lại và demo mình làm thế nào với 1 dự án WordPress, rất mong các quý anh chị góp ý, nếu có phần nào chưa rõ xin vui lòng để lại comment mình ghi chi tiết hơn. Mục tiêu của bài viết là đưa ra ý tưởng và cách mình làm, còn tùy biến hoặc làm thế nào thì các bạn có thể tùy theo hiểu biết của mình.

Anh chị nào có cách nào nhanh hơn cũng xin vui lòng comment lại để chúng ta cùng nhau đi nhanh hơn! Cám ơn các bạn đã đọc.

Lấy thông tin của WooCommerce order

0

1. Lấy thông tin qua biến $order

Trường hợp đẹp nhất là mình có luôn biến $order là một object, và chúng ta chỉ cần sử dụng các hàm có sẵn để lấy thông tin của order.

PHP

2. Lấy thông tin qua biến $order_id

Tệ hơn 1 chút là anh em chỉ biết mỗi biến $order_id và bằng cách nào đó chúng ta chuyển nó thành $order (một object) và quay lại đoạn trên (mục 1) để lấy thông tin của order.

PHP

3. Lấy thông tin qua biến $mail

Gửi mail cho khách hàng hoặc admin, sẽ có biến $mail, và chúng ta cũng có thể lấy order từ biến này, xem đoạn dưới, xong lại quay lại mục 1 để lấy thông tin.

PHP

Tóm lại

WooCommerce có sẵn các hàm rồi, anh em chỉ cần biết id hoặc mail gửi tới khách hàng là có thể lôi toàn bộ thông tin order ra xào nấu. Bài viết này mục đích là note lại để có lúc nào đó mình cần tới mình sẽ không phải gu lè nữa 😀 .