Author: o2wp

  • Cách cài đặt nhiều version PHP với XAMP

    Nếu bạn là một lập trình viên php thì chắc hẳn không còn xa lạ với XAMPP, WAMPP … rồi nhỉ. Thế nhưng các bạn đã rơi vào trường hợp phải cấu hình nhiều version php cho mỗi dự án tương ứng chưa nhỉ. Và topic hôm nay mình sẽ trình bày các cấu hình nhiều version PHP trên XAMPP.
    Có khá nhiều bài hướng dẫn trên stack overflow về cách làm tuy nhiên nếu các bạn lười đọc Tiếng Anh hoặc đã thử qua nhưng vẫn chưa được thì hi vọng topic này có thể giúp các bạn giải quyết vấn đề.

    1. Vấn đề

    Vừa qua. mình có gặp trường hợp đó là 2 project đang làm cần sử dụng 2 version PHP khác nhau ( một cái cần dùng php 7.2 , một cái lại dùng php >=7.3). Tuy nhiên lúc cài XAMPP thì version php hiện tại trên máy đang mặc định là 7.2. Thế là khi chạy source yêu cầu php >=7.3 thì mình đã gặp lỗi bên dưới

    image.png

    image.png

    2. Hướng giải quyết

    Sau khi lùng sục cả chân trời góc bể, dạo chơi khắp stack overflow thì cuối cùng cũng tìm được
    câu trả lời khá chi tiết và dễ hiểu, mình xin trích dẫn câu trả lời đang đứng top sang tiếng Việt cho các bạn tiện tham khảo:

    Để sử dụng nhiều phiên bản php chỉ với một phiên bản xampp duy nhất, chúng ta có hai lựa chọn:

    1. Cấu hình cho mỗi project một phiên bản php nhất định.
    2. Cấu hình từng phiên bản php trên một port riêng biệt.

    Sau khi đã áp dụng cách đầu tiên thành công, mình sẽ hướng dẫn chi tiết các bước ở dưới!

    3.Các bước thực hiện

    Bước 1: Tải phiên bản php mà bạn muốn thêm tại php.net

    • Giải nén thư mục php vừa tải vào trong xampp, cùng cấp với thư mục php hiện có.Bởi vì dự án của mình cần version php >= 7.3 nên mình sẽ download php 8.1.8

      Lưu ý: Chỉ download phiên bản NTS (Non Thread Safe) bởi phiên bản Thread safe sẽ không có file php-cgi.exe

    image.png

    Bước 2: Cấu hình file php.ini trong thư mục php vừa tải:

    • Vào trong thư mục php vừa tải, coppy file php.ini-development và đổi tên thành php.ini

    • Mở file php.ini vừa đổi tên bằng một editor bất kỳ ( notepad, notepad++ … )

    • Tiếp theo, hãy ấn tổ hợp phím Ctrl+F và tìm kiếm đoạn text sau: extension_dir = "ext" và uncomment dòng này bằng cách xóa dấu ; ở đầu dòng

    image.png

    image.png

    • Làm tương tự để uncomment cho các dòng dưới đây:
      • extension=curl
      • extension=ftp
      • extension=fileinfo
      • extension=mysqli
      • extension=openssl
      • extension=pdo_mysql

    image.png

    Bước 3: Cấu hình apache

    • Mở file httpd-xampp.confbằng một trong hai cách:

      • Cách 1: Vào thư mục xampp đã cài, mở file httpd-xampp.conf bằng đường dẫn tên_ổ_đĩa/xampp/apache/conf/extra/httpd-xampp.conf

        Ví dụ: Mình lưu folder xampp tại ổ D thì đường dẫn sẽ là D:\xampp\apache\conf\extra\httpd-xampp.conf

      • Cách 2: Khởi động xampp, tại màn hình quản lí hãy click vào nút config sẽ hiện ra danh sách các file, hãy ấn chọn vào file httpd-xampp.conf. Xem chi tiết trong hình bên dưới

      image.png

    • Tiếp theo, thêm đoạn code sau vào cuối file httpd-xampp.conf, sau đó thay /php8_1"D:/xampp/php8_1/" thành tên folder và đường dẫn đến folder php của bạn

      ScriptAlias /php8_1 "D:/xampp/php8_1/"
      Action application/x-httpd-php8_1-cgi "/php8_1/php-cgi.exe"
      <Directory "D:/xampp/php8_1">
         AllowOverride None
         Options None
         Require all denied
         <Files "php-cgi.exe">
             Require all granted
         </Files>
         SetEnv PHPRC "D:/xampp/php8_1"
      </Directory>
      

      image.png

      Ví dụ: Nếu tên thư mục php của bạn là php6_5 và đường dẫn thư mục là "C:/xampp/php6_5/" thì đoạn code sẽ là:

      ScriptAlias /php6_5 "C:/xampp/php6_5/"
      Action application/x-httpd-php6_5-cgi "/php6_5/php-cgi.exe"
      <Directory "C:/xampp/php6_5">
           AllowOverride None
           Options None
           Require all denied
              <Files "php-cgi.exe">
                  Require all granted
              </Files>
              SetEnv PHPRC "C:/xampp/php6_5/"
       </Directory>
      
      • Bạn có thể cấu hình nhiều version khác không giới hạn bằng cách lặp lại bước 1 đến bước 3

    Bước 4: Cấu hình project để chạy với version php tương ứng

    • Thêm đoạn code sau vào cuối file httpd-xampp.conf, sau đó thay D:\xampp\htdocs\vhosts\8-test-version-phpapplication/x-httpd-php8_1-cgi thành đường dẫn đến project của bạn. Xem hình bên dưới để nắm rõ hơn

         <Directory "D:\xampp\htdocs\vhosts\8-test-version-php">
         UnsetEnv PHPRC
         <FilesMatch "\.php$">
             php_flag engine off
             SetHandler application/x-httpd-php8_1-cgi
         </FilesMatch>
         </Directory>
      

      image.png

      Ví dụ: Nếu project của bạn nằm trong thư mục C:\xampp\htdocs\vhosts\8-test-version-php thì đoạn code sẽ như sau:

         <Directory "C:\xampp\htdocs\vhosts\8-test-version-php`">
             UnsetEnv PHPRC
             <FilesMatch "\.php$">
                 php_flag engine off
                 SetHandler application/x-httpd-php6_5-cgi
             </FilesMatch>
         </Directory>
      
    • Cuối cùng, khởi động lại xampp và tận hưởng thành quả.
      image.pngimage.png

    4. Một số lưu ý

    • Mình sẽ liệt kê một số lỗi đã gặp trong quá trình cấu hình để các bạn tham khảo và tránh:
      • Lỗi Access forbidden : Lỗi này là do đường dẫn thư mục bị sai. Lúc trước, khi sử dụng wampserver mình có lầm tưởng rằng, khi cấu hình virtualhost thì đường dẫn trỏ đến project nằm ở đâu cũng được. Tuy nhiên, với xampp thì bắt buộc project phải nằm trong thư mục xampp/htdocs.

    Nên nhớ, tất cả các project khi chạy xampp cần được bỏ vào trong thư mục xampp/htdocs

    Nếu không chỉ định project chạy với version php nào thì mặc định version php trong biến môi trường (Enviroment Variable) sẽ được chọn

    5. Nguồn tham khảo

    • https://stackoverflow.com/questions/45790160/is-there-way-to-use-two-php-versions-in-xampp
    • https://www.youtube.com/watch?v=o-NeHuaaELI
  • Hướng dẫn đồng bộ ghi chú từ Obsidian lên WordPress

    Hướng dẫn đồng bộ ghi chú từ Obsidian lên WordPress

    Vài lời vu vơ

    Tâm tự nhẹ

    Chào mọi người, dạo gần đây mình có tìm được một công cụ khá hay giúp chúng ta ghi chú, lưu trữ những thông tin, suy nghĩ của bản thân trong quá trình học tập, làm việc. Công cụ này có tên là là Obsidian (Đá hắc hóa), cái tên thôi cũng đủ thấy ma mị nhỉ ><“. Mọi người cùng chiêm ngưỡng em nó nhé

    Pasted image 20251128133241.png

    Chỉ cần gõ vài dòng lên google là thấy có không ít những video, review về nó và trong số đó không quá khó để thấy những lời khen có cánh dành cho ứng dụng này. Ban đầu mình cũng nghĩ chỉ là “seeder” thôi, nhưng khi tập tành tiếp cận thì thấy “dính dính” thật. Ngay tại thời điểm viết bài này thì mình cũng chỉ sử dụng được 10 ngày thôi nên mọi người chờ một thời gian đủ “chín” để mình lên bài review từ cảm nhận bản thân nhóa 🤣 (hi vọng ko đứt gánh giữa đường)

    Trong quá trình tiếp cận em “Đá tím” này mình có suy nghĩ rằng liệu có thể sử dụng nó như một nơi tập viết blog, cứ viết đi viết lại cho đến khi ưng ý thì sync một phát lên ngay blog cá nhânbằng WordPress một cách nhanh chóng mà không cần phải coppy paste hay gõ lại từ đầu không và thật may mắn, cộng đồng của em “Đá tím” này cũng có ý tưởng giống mình và họ đã tạo ra một em hàng tuyệt vời mang tên WordPress plugin.

    Nào, bắt tay vào thực hiện cùng mình thôi 🤝

    tenor.gif

    Những thứ cần có

    Trước khi bắt đầu các bạn cần kiểm tra check list yêu cầu này trước nhé:

    • Một trang blog bằng WordPress ✅
    • Đã cài Obisidian

    Các bước thực hiện

    Add mới một user trên trang wordpress của bạn:

    Vào menu Users => Add User và tạo một user mới với role Author

    Pasted image 20251128115935.png

    • (1): Click vào đây để điều hướng đến màn hình thêm user
    • (2): Điền các thông tin cho user tại đây, lưu ý nên nhớ usernamepassword để sử dụng cho bước sau
    • (3): Chọn role cho account mới là Author
    • (4): Sau khi đã điền đủ thông tin, click để thêm user

    Note: Bạn có thể hoàn toàn sử dụng tài khoản hiện có của mình, tuy nhiên để tốt bạn cần tạo user mới chuyên dùng cho nhiệm vụ này

    Cài đặt và config authentication plugin:

    Install plugin tại đây hoặc install trực tiếp từ trang quản lý Plugins trong màn hình quản trị của WordPress

    Pasted image 20251127152821.png

    Pasted image 20251127153209.png
    Pasted image 20251127153340.png
    Pasted image 20251127153956.png

    Pasted image 20251127154343.png

    Vậy là xong bước config để cho phép connect từ Obsidian vào WordPress. Giờ đến bước tiếp theo thôi

    Cài đặt WordPress plugin cho Obsidian

    • Thao tác theo ảnh  hướng dẫn bên dưới để cài đặt plugin WordPress 👇Pasted image 20251127155203.pngPasted image 20251127155421.pngPasted image 20251127155428.png
    • Sau khi install thành công, ấn vào button Open profile như trong để thiết lập các giá trị giúp plugin có thể conenct tới site WordPress của chúng ta.Pasted image 20251127160758.pngPasted image 20251127170059.pngNhập các giá trị từ 1 đến 5 theo hướng dẫn bên dưới 👇
      • (1): đặt tên bất kỳ mà bạn thấy dễ nhớ.
      • (2): WordPress URL là domain của site wordpress của bạn
      • (3): API type khi click vào sẽ xổ xuống hiển thị một danh sach các option, chọn vào REST API Authentication by miniOrange (Bước này quan trọng, phải chọn chính xác mới hoạt động được)
      • (4) + (5): nhập tên usernamepassword của account user bạn đã tạo ở bước đầu tiên nhé
      • (6): Switch ON nếu bạn muốn set account đang cấu hình làm mặc định, bước này chỉ là optional
      • (7): Click Save để lưu lại, tới bước này thì gần xong mọi thứ, chỉ cần chuyển qua bước test tiếp theo

    Test và tận hưởng thành quả

    • Chọn một note bất kỳ muốn publish, click vào icon wordpress bên thanh navigation.Pasted image 20251128101719.png
    • Thông báo sẽ xuất hiện khi publish thành côngPasted image 20251128101844.png
    • Sau cùng, mở trang quản trị của wordpress lên và kiểm tra, preview lại trước khi đăng nhé các bạn.Pasted image 20251128102242.png
    • Nếu mọi thứ đã ok giờ ta chỉ cần publish nữa thôi. Quá tiện lợi và nhanh chóng. +1 respect cho cộng đồng Obsidian 💕Pasted image 20251128104408.png

    Lời kết

    Mình không biết viết gì cả, chỉ chúc các bạn thành công thôi. Hi vọng bài viết này giúp ích cho các bạn, đừng quên để lại nhận xét hoặc câu hỏi nếu có nha, mình sẽ đọc hết đấy 🤣