Kinh nghiệm lập trình website mã nguồn mở PHP

Cài đặt Magento 2

Loạt bài xây dựng website TMDT Magento 2
Cài đặt Magento 2

Lưu ý

Hôm nay chúng ta sẽ bắt đầu cài đặt Magento 2
Trước khi vào phần chính ta cần lưu ý vài điểm sau:
1. Magento 2 chạy trên Linux tối ưu hơn là chạy trên Windows (tốc độ, ít lỗi tiềm ẩn)

2. Magento 2 chưa hỗ trợ PHP mới nhất
9/2017 PHP mới nhất là 7.1.9 http://php.net/downloads.php
Magento phiên bản 2.1.8 chỉ hỗ trợ tới PHP 7.0.6 http://devdocs.magento.com/guides/v2.1/install-gde/system-requirements-tech.html
Vậy tốt nhất bạn nên cài Magento mới nhất 2.1.8 và PHP phiên bản 7.0 là hợp lý nhất.

3. Phiên bản CE là miễn phí, sẽ được sử dụng trong bài viết này
Sẽ có bài viết chi tiết về phiên bản EE trong tương lai, vì bản này rất nhiều tính năng thú vị.

4. Magento 2 khác Magento 1 về phần sample data
Magento 1, download gói cài source code + gói sample data (2 gói)
Magento 2, download gói cài source code có kèm data (1 gói to)
Hãy chắc chắn rằng bạn cài đúng gói có kèm sample data

Chuẩn bị chung

Chuẩn bị virtual host, để tránh các lỗi về cookies, login vào backend không được… Bạn nên sử dụng Virtualhost thay vì cài trực tiếp Localhost cho Magento

Dành cho môi trường Linux

Bạn đang lập trình bằng Linux, Ubuntu? Chúc mừng bạn, quá trình học tập, lập trình Magento 2 sẽ dễ dàng hơn bao giờ hết. Mình sẽ không hướng dẫn step by step nữa vì tài liệu Magento đã có hết, mình chỉ giới thiệu từng phương pháp cài đặt, ưu và khuyết để bạn tự chọn lựa:
Khái quát 3 phương pháp chính http://devdocs.magento.com/guides/v2.0/install-gde/install-roadmap_cli.html

1. Cài bằng giao diện: đơn giản, giống magento 1, là cách cài chán nhất, dân Linux mà lại đi cài app bằng GUI à?
http://devdocs.magento.com/guides/v2.0/install-gde/install/web/install-web.html

2. Cài bằng dòng lệnh: tuyệt với nhất, nhanh nhất
http://devdocs.magento.com/guides/v2.0/install-gde/install/cli/install-cli.html
Trong tài liệu phần này hơi rườm rà, nhưng thật ra bạn chỉ cần làm 2 bước sau:
– Chuẩn bị quyền, set lại quyền cho gói cài đặt trùng owner với server: apache hoặc nginx
– Chạy lệnh với quyền server user:

php bin/magento setup:install --base-url=http://magento2.loc \
--db-host=localhost --db-name=mage2 --db-user=root --db-password=root \
--admin-firstname=Magento --admin-lastname=User --admin-email=user@example.com \
--admin-user=admin --admin-password=admin123 --language=en_US \
--currency=USD --timezone=America/Chicago --use-rewrites=1

bạn thay lại base-url bằng virtualhost của mình, db-name, db-user, db-password…

3. Cài bằng composer: lâu nhất
Vì cách này bạn không cần phải download gói cài, composer sẽ download giúp cho bạn, vì magento 2 nặng và nhiều như viện nên composer download rất chậm, khuyến cáo không nên dùng. Cách này thì cần chú ý để truy cập vào các gói thư viện của Magento, bạn cần 1 account tạo trên trang chủ để lấy key
http://devdocs.magento.com/guides/v2.1/install-gde/prereq/connect-auth.html

Dành cho môi trường Windows

Vì cơ chế vận hành của nó, Magento 2 trên Windows chạy thật sự chậm chạp vô cùng, trừ khi bạn có ổ cứng SSD.
Tính năng Static content của Magento như HTML, CSS, JS sẽ được tự động sinh ra trong 1 thư mục public (1 dạng cache), bằng tính năng symlink, thì Windows không tự động sinh file như vậy được, nên bạn phải mất công sức hơn bình thường.
Bạn chọn 1 trong 3 Phương pháp cài đặt cũng giống như trên Linux
Sau khi cài đặt xong bạn sẽ gặp lỗi Symbolic links
https://magento.stackexchange.com/questions/64802/magento-2-404-error-for-scripts-and-css
Bạn phải sửa Symlink thành Copy

Mở file: app/etc/di.xml

<virtualType name="developerMaterialization" type="Magento\Framework\App\View\Asset\MaterializationStrategy\Factory">
    <arguments>
        <argument name="strategiesList" xsi:type="array">
            <item name="view_preprocessed">Magento\Framework\App\View\Asset\MaterializationStrategy\Symlink</item>
            <item name="default">Magento\Framework\App\View\Asset\MaterializationStrategy\Copy</item>
        </argument>
    </arguments>
</virtualType>

Thay Symlink = Copy

Hỏi đáp

Nếu tôi dùng PHP mới nhất 7.1 mà cài Magento 2 thì có làm sao không?
Rất nhiều lỗi xảy ra, bên trong core của Magento xài nhiều hàm mà PHP 7.1 đã loại bỏ. Ví dụ như “Cannot use ‘Void’ as class name as it is reserved” – tất nhiên bạn cũng có thể search từng lỗi trên mạng để fix nhưng cực chẳng đã, ngay từ đầu nghe mình cài PHP 7.0 giùm đi.

Sau khi cài thành công, web không có CSS, hình ảnh?
Đó không phải lỗi, sau khi cài đặt, Magento cần sinh ra các static content (CSS, JS, Template) bằng dòng lệnh sau:

php bin/magento setup:static-content:deploy

Nếu tôi lỡ cài gói không có sample data thì sao?
Bạn vẫn có thể dùng lệnh để composer download data về và cài vào website hiện tại
http://devdocs.magento.com/guides/v2.1/install-gde/install/sample-data-after-magento.html

Cấu hình cơ bản sau khi cài đặt

Chuyển chế độ mode thành development (tốt hơn khi code)

php bin/magento deploy:mode:set developer

Cache cache

php bin/magento cache:clean

Phù! Bạn sao rồi?? Có tới được bước này không? Quá trình cài đặt Magento 2 cũng lắm gian truân trắc trở, nhất là nếu bạn chưa cài lần nào. Qua bài viết này, tôi xin được chia sẻ hết những bài học của bản thân sau hơn vài chục lần cài đặt, hy vọng giảm thiểu tối đa những vấn đề gặp phải. Xin chúc mừng những ai cài đặt thành công, những ai kém may mắn hơn cũng đừng lo, hãy comment phía dưới để nhận được sự giúp dỡ ngay nhé.
Thế giới Magento 2 hấp dẫn đang chờ…
Happy coding!

Tài liệu thêm

Cài Magento 2 trên VPS https://hocvps.com/cai-dat-magento-2/

Mục lục loạt bài Magento 2

Cài đặt Magento 2
Đánh giá bài viết

Gửi phản hồi

Your email address will not be published. Required fields are marked *