Hướng dẫn cài đặt Magento 2.4 trên Localhost XAMPP

Gần đây Magento phiên bản 2.4 đã được ra mắt với nhiều cải tiến và tính năng hữu ích, đặc biệt Magento chuyển sang phương thức tìm kiếm Elasticsearch khiến mọi người háo hức cài đặt nó trên localhost, điều khó khăn là khi cài đặt như cách thông thường thì nút cài đặt bị mất khiến ta không thể cài đặt, sau một thời gian nghiên cứu thì chúng ta đã có thể cài đặt nó trên XAMPP. Trong bài viết này mình sẽ hướng dẫn các bạn cách cài đặt Magento 2.4 trên Localhost XAMPP.

1. Kiểm tra yêu cầu hệ thống của Magento 2.4

Đầu tiên, bạn hãy kiểm tra các yêu cầu hệ thống của Magento 2.4 để chọn phiên bản XAMPP và Elasticsearch tương thích.

Bạn cần chú ý đến các yêu cầu phiên bản của Apache, MySQL, PHP và Elasticsearch. Ở đây, Magento 2.4 yêu cầu:

  • Apache 2.4
  • MySQL 8.0
  • PHP 7.3, 7.4
  • Elasticsearch 7.6.x

Ngoài ra, bạn nên chú ý đến một vài extension PHP bắt buộc.

2. Tải xuống và cài đặt XAMPP

Dựa trên các yêu cầu của Magento 2.4, mình đã tiến hành chọn ra một phiên bản phù hợp là XAMPP 7.4.12. Bạn có thể tải xuống XAMPP.

 Tiến hành tải về và cài đặt XAMPP 7.4.12.

3. Tải Magento 2.4.1

Tiếp theo, chúng ta sẽ truy cập vào trang tải Magento, Build version chọn 2.4.1, chọn Include sample data nếu bạn muốn có sample data và ấn Download để tải về.

Tải về xong, tạo một thư mục trong htdocs rồi giải nén file Magento vào đó.

4. Tải xuống và cài đặt Composer

Các bạn truy cập vào https://getcomposer.org/download/ để tải Composer.

Tải về cài đặt như bình thường đến phần đường dẫn chọn đúng đường dẫn đến php.exe của XAMPP vừa cài đặt.

Các bạn có thể kiểm tra xem cài đặt Composer có thành công hay không bằng cách mở CMD với đặc quyền của quản trị viên rồi gõ lệnh: composer.

5. Tải xuống và cài đặt Elasticsearch

Kể từ Magento 2.4.0, MySQL không còn được sử dụng để tìm kiếm. Các bạn phải sử dụng Elasticsearch, đây là một phần rất quan trọng để cài đặt Magento 2.4.

Mình tải Elasticsearch 7.6.2 và giải nén vào thư mục htdocs của XAMPP, các bạn có thể sử dụng phiên bản mới nhất tại: https://www.elastic.co/downloads/elasticsearch

Vào thư mục elasticsearch-7.6.2 / bin và chạy elasticsearch.bat bằng quyền của quản trị viên

Các bạn có thể kiểm tra nó tại localhost với cổng 9200: localhost:9200

6. Cấu hình các extension trước khi cài đặt

Mở bảng điều khiển XAMPP. Sau đó, mở php.ini trong cấu hình của Apache.

Tìm các dòng:

;extension=intl
;extension=soap
;extension=sockets
;extension=xsl

Xóa dấu “;” ở đằng trước các dòng để thành:

extension=intl
extension=soap
extension=sockets
extension=xsl

Sau đó khởi động lại Apache và MySQL trong Bảng điều khiển XAMPP.

7. Sửa lỗi Magento_Theme

Để sửa lỗi Module ‘Magento_Theme’ mở file php theo đường dẫn xampp/htdocs/magento241/vendor/magento/framework/Image/Adapter/Gd2.php, tìm tới dòng 86 thay thế hàm validateURLScheme() bằng mã dưới đây:

private function validateURLScheme(string $filename) : bool
{
    if(!file_exists($filename)) { // if file not exist
        $allowed_schemes = ['ftp', 'ftps', 'http', 'https'];
        $url = parse_url($filename);
        if ($url && isset($url['scheme']) && !in_array($url['scheme'], $allowed_schemes)) {
            return false;
        }
    }
    return true;
}

8. Tạo cơ sở dữ liệu

Tạo cơ sở dữ liệu mới bằng cách truy cập localhost/phpmyadmin. Tiếp theo, chọn New, đặt tên cho cơ sở dữ liệu và nhấp vào Create.

9. Cài đặt Magento 2.4.1

Mở thư mục chứa Magento 2.4.1 đã tạo trước đó, trên thanh địa chỉ gõ cmd hoặc đường dẫn của Command Prompt.

Cửa sổ Command Prompt sẽ hiện ra, chúng ta nhập lệnh:

php bin/magento setup:install --base-url="http://localhost/magento241/" --db-host="localhost" --db-name="magento241" --db-user="root" --admin-firstname="admin" --admin-lastname="admin" --admin-email="admin@magetop.com" --admin-user="admin" --admin-password="admin123" --language="en_US" --currency="USD" --timezone="America/Chicago" --use-rewrites="1" --backend-frontname="admin" --search-engine=elasticsearch7 --elasticsearch-host="localhost" --elasticsearch-port=9200

Lưu ý:  db-name là tên của database đã tạo ở bước 8, thông tin admin account các bạn có thể đặt tùy ý.

Chờ cho quá trình cài đặt hoàn tất.

Sau đó, các bạn chạy các lệnh:

php bin/magento setup:upgrade
php bin/magento setup:static-content:deploy -f
php bin/magento cache:flush

Đường dẫn để truy cập trang cửa hàng là localhost/magento241 .

Đường dẫn để vào Admin Panel, chỉ cần thêm /admin ở phía sau: localhost/magento241/admin.

Nếu các bạn thấy trang quản trị của mình không hiển thị thông tin, chỉ có màu xám thì bạn tham khảo: Hướng dẫn Fix lỗi trang Admin Magento 2 không hiển thị.

Nếu bạn gặp lỗi: “Failed to send the message. Please contact the administrator”.

Các bạn cần tắt module Two-Factor Authorization bằng lệnh:

php bin/magento module:disable Magento_TwoFactorAuth

Như vậy là chúng ta đã cài đặt thành công Magento 2.4.1 trên localhost. Đây là kết quả:

Cảm ơn các bạn đã đọc bài viết.

4.3 4 votes
Article Rating

Callula Huy

Callula is the Marketing Executive at Magetop. With more than 5 years of copywriting under her belt, Callula is into creating valuable content that is straight to the point. Life student. Workaholic. Foreign languages and traveling aficionado.

Leave a Reply or put your Question here

8 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Mai
Mai
November 30, 2020 3:07 pm

AD cho hỏi, mình làm theo bạn hướng dẫn mà tới bước chạy elasticsearch.bat báo lỗi nhưng khi mở localhost:9200 thì vẫn ra như AD. Đến bước cài đặt magento chạy cmd thì lại lỗi không tìm thấy elastic search. Mong add phản hồi giúp mình. Cảm ơn ạ.

Adam Roger
Admin
December 1, 2020 1:48 am
Reply to  Mai

Magetop xin chào bạn!

Về vấn đề của bạn, bạn có thể làm theo các lưu ý sau:
1. Bạn thử chạy elastichsearch.bat dưới quyền quản trị, sau đó bạn kiểm tra localhost:9200 xem nó có hoạt động không?
2. Khi bạn cài Magento, vui lòng không tắt cmd chạy elastichsearch.bat vì khi bạn tắt nó đi Magento sẽ không tìm thấy ext elastichsearch.

Cảm ơn bạn đã theo dõi bài viết! Chúc bạn cài đặt thành công Magento 2.4

Nam
Nam
December 18, 2020 5:41 am

Anh cho em hỏi 1 chút, làm thế nào để cài thêm sample theme vậy ạ, em đã thử làm theo trong bài viết này https://www.magetop.com/blog/cai-sample-data-trong-magento-2 nhưng bị dừng lại ở chỗ Module ‘Magento_CatalogSampleData’: không thấy nhúc nhích gì, đây là bản 2.4.1. Mong anh giúp ạ 🙂

Adam Roger
Admin
January 25, 2021 2:55 am
Reply to  Nam

Vậy là bạn bị cache từ trước rồi, xoá sạch cache + cookie rồi cài đặt từ đầu nhé bạn, chúc bạn thành công.

tranp
tranp
January 13, 2021 2:24 am

php bin/magento cache:flush mình chạy lệnh nay ko dc nó ra lỗi : The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

Adam Roger
Admin
January 15, 2021 3:10 am
Reply to  tranp

Chào bạn,
Vấn đề này là do bạn đang bật chế độ Maintenance. Để tắt chế độ bạn có thể tham khảo bài viết: https://www.magetop.com/blog/bat-tat-che-do-maintenance-magento-2/

Đức Hải
Đức Hải
March 9, 2021 9:36 am

Anh ơi em bị lỗi khi chạy cmd:
Parse error: syntax error, unexpected ‘;’ in E:\xampp\htdocs\prjmagento\vendor\magento\framework\Image\Adapter\Gd2.php on line 91
{“messages”:{“error”:[{“code”:500,”message”:”Server internal error. See details in report api\/1011165392484″}]}}PHP Fatal error: Uncaught Exception: User Error: Some transactions have not been committed or rolled back in E:\xampp\htdocs\prjmagento\vendor\magento\framework\DB\Adapter\Pdo\Mysql.php on line 4021 in E:\xampp\htdocs\prjmagento\vendor\magento\framework\App\ErrorHandler.php:61
Stack trace:
#0 [internal function]: Magento\Framework\App\ErrorHandler->handler(256, ‘Some transactio…’, ‘E:\xampp\htdocs…’, 4021, Array)
#1 E:\xampp\htdocs\prjmagento\vendor\magento\framework\DB\Adapter\Pdo\Mysql.php(4021): trigger_error(‘Some transactio…’, 256)
#2 [internal function]: Magento\Framework\DB\Adapter\Pdo\Mysql->__destruct()
#3 {main}
thrown in E:\xampp\htdocs\prjmagento\vendor\magento\framework\App\ErrorHandler.php on line 61
Em làm đúng theo hướng dẫn nhưng khi chạy setup trên cmd thì nó báo lỗi vậy ạ

Adam Roger
Admin
March 10, 2021 1:56 am
Reply to  Đức Hải

Bạn cần kiểm tra lại php version đang sử dụng rồi chạy lại CMD là làm việc.

8
0
Would love your thoughts, please comment.x
()
x