Thực hành tốt nhất để chạy và cập nhật nhiều cửa hàng riêng biệt


7

3 năm trước tôi là một thành viên của một công ty điều hành các cửa hàng trực tuyến magento cho nhiều khách hàng độc lập. Những gì chúng tôi trải nghiệm cuối cùng là nếu chúng tôi muốn thực hiện một thay đổi ảnh hưởng đến tất cả các cửa hàng (sửa lỗi) hoặc nâng cấp magento, chúng tôi phải thực hiện nó trong từng trường hợp cụ thể.

Tôi muốn nhận thông tin đầu vào của bạn nếu có cách thiết lập cấu trúc cho phép nâng cấp tất cả các cửa hàng cùng một lúc và khắc phục các sự cố chung cho tất cả một cách đơn giản.

Mỗi cửa hàng sẽ có cùng một lõi, nhưng các mô-đun, vv có thể khác nhau. Vì mỗi người là những cửa hàng riêng lẻ.


Bạn có nhiều cài đặt khác nhau hoặc một cài đặt và nhiều cửa hàng?
brentwpeterson

Nhiều bản cài đặt khác nhau
David Gulbrandsen

Điều này là giả sử rằng mọi cửa hàng sẽ giống hệt nhau và sẽ không có bất kỳ biến thể nào về mã chính xác?
brentwpeterson

Mỗi cửa hàng sẽ có cùng một lõi, nhưng các mô-đun, vv có thể khác nhau. Vì mỗi người là những cửa hàng riêng lẻ.
David Gulbrandsen

1
Bạn có thể liên kết các tệp cốt lõi nhưng bạn vẫn sẽ phải xử lý từng cửa hàng riêng lẻ. Không chắc chắn bao nhiêu về phía trước sẽ giúp bạn có được
brentwpeterson

Câu trả lời:


6

Tôi khuyên bạn nên thiết lập các dự án Magento của mình với Trình soạn thảo . Sau đó, bạn có thể bao gồm lõi Magento như một phần phụ thuộc và quản lý nó trong một kho lưu trữ riêng biệt với tất cả các bản cập nhật và bản vá chính thức. Bạn cũng có thể bao gồm các bản vá tùy chỉnh ở đó nhưng tôi muốn giữ chúng trong kho lưu trữ khác.

Điều này chỉ hoạt động nếu bạn tách lõi và tùy chỉnh. Nếu bạn đã sử dụng modman, tôi có một tin tốt cho bạn: quá trình chuyển đổi rất dễ dàng.

Nhưng đến từ một số kho dự án nguyên khối, sẽ cần một số nỗ lực ban đầu để tách các tùy chỉnh của bạn khỏi lõi.

Làm thế nào nó hoạt động

(Hướng dẫn thiết lập dự án mới)

  1. Tạo một kho lưu trữ bao gồm lõi Magento và tạo một composer.jsontệp trong đó với nội dung này:

    {
        "name": "magento/ce",
        "type": "magento-source",
        "require": {}
    }

    Bạn có thể sao chép một trong những máy nhân bản hiện có như https://github.com/OpenMage/magento-mirror hoặc https://github.com/firegento/magento có chứa tất cả các phiên bản cộng đồng gần đây bao gồm các bản vá bảo mật, nhưng bạn sẽ phải thêm các composer.json(bit quan trọng là "type": "magento-source", mà nói với trình cài đặt nhà soạn nhạc rằng đây chứa lõi Magento).

  2. Tạo một composer.jsontệp trong các dự án của bạn bằng nội dung này (thay thế url_to_your_magento_repo.gitbằng URL của kho lưu trữ mà chúng tôi đã tạo trước đó (ví dụ git@bitbucket.org:your-company/magento-ce.git)

    {
        "require": {
            "aoepeople/composer-installers": "dev-master",
            "magento/ce": "dev-master"
        }
        "minimum-stability": "dev",
        "repositories": [
            {
                "type": "vcs",
                "url": "url_to_your_magento_repo.git"
            },
            {
                "type": "composer",
                "url": "http://packages.firegento.com"
            }
        ],
        "extra":{
            "installer-paths": {
                "www/" : [ "type:magento-source" ],
                ".modman/{$vendor}_{$name}/" : [ "type:magento-module" ]
            }
        }
    }

    Điều này nói với nhà soạn nhạc cài đặt nguồn wwwMagento và các mô-đun Magento mà bạn có thể cài đặt với nhà soạn nhạc .modman. Bạn có thể thay thế "magento/ce": "dev-master"bằng một phiên bản cụ thể hoặc chi nhánh. Các nhánh phải được bắt đầu bằng "dev-".

  3. Chạy composer installđể cài đặt các phụ thuộc (ví dụ: lõi Magento)

  4. Nhận modman và chạy modman init www. Modman là một công cụ tạo liên kết tượng trưng để giữ cho các mô-đun của bạn tách rời khỏi lõi.

  5. Viết tất cả các tùy chỉnh dưới dạng các mô-đun bên trong .modmanvới một modmantệp xác định các liên kết tượng trưng và chạy modman deploy MODULE_NAMEđể tạo các liên kết tượng trưng. Xem tài liệu modman để biết chi tiết.

  6. Các mô-đun tùy chỉnh mà bạn sử dụng trên một số trang web có thể được tạo thành các kho riêng biệt tương tự như kho lưu trữ lõi Magento, nhưng với "type": "magento-module". Ngoài ra họ phải chứa một modmantập tin. Sau khi xác định một kho lưu trữ như là một phụ thuộc và chạy, composer updatebạn sẽ tìm thấy mô-đun trong .modmanvà có thể sử dụng modman deployđể tạo các liên kết tượng trưng.

Bài trình bày này giải thích các thiết lập chi tiết:

Magento với nhà soạn nhạc - Marcel Hauri - Gặp gỡ Magento CH 2014 (Video, 21 phút)


Câu trả lời rất hay!
David Gulbrandsen
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.