Điều gì có thể xấu khi sử dụng các liên kết tượng trưng với local.xml


7

Tóm tắc

Đầu tiên và quan trọng nhất là không ai thích làm việc trên các ứng dụng sản xuất. Do đó, lời khuyên dành cho ai đó là thiết lập các cửa hàng riêng biệt, cấu trúc của tôi như sau:

  • dev.magento.local -> Cửa hàng phát triển;
  • sân khấu.magento.local -> cửa hàng UAT / QA;
  • magento.local -> Cửa hàng sản xuất;

Trong khi đó, cửa hàng được theo dõi trong kiểm soát nguồn, bao gồm app/etc/local.xml, đó là xung đột đầu tiên của cấu trúc này. Tuy nhiên, sau khi quá trình cài đặt Magento hoàn tất và chúng tôi có tệp local.xml, ý tưởng là:

1) Xuất cửa hàng Magento mới được cài đặt gần đây.

icanhas$ mysqldump --single-transaction magestore_dev > magestore_dev.dmp.sql

2) Sau đó nhập cấu trúc cho các môi trường còn lại.

icanhas$ mysql -u'magestage_user' -p'magestage_pwd' < magestore_dev.dmp.sql
icanhas$ mysql -u'mageprod_user' -p'mageprod_pwd' < magestore_dev.dmp.sql

3) Các môi trường mới cần các url của chúng được sửa, mặc dù điều đó nằm ngoài câu hỏi này, giả sử chúng đã được thực hiện.

4) Như đã đề cập trước đây, chúng tôi cần giải quyết xung đột với app/etc/local.xmlvì vậy tôi đã tạo các thư mục sau:

  • /app/etc/development/local.xml -> Đã di chuyển local.xml tại đây;
  • /app/etc/staging/local.xml -> Sao chép phát triển / local.xml tại đây;
  • /app/etc/production/local.xml -> Sao chép phát triển / local.xml tại đây;

5) Tôi đã sửa các thông tin cơ sở dữ liệu cho từng môi trường, điều này đã được cam kết với kho lưu trữ.

6) Cuối cùng tôi đã tạo ra các liên kết tượng trưng sau đây:

  • Trên dev.magento.local ; app/etc/local.xml -> app/etc/development/local.xml;
  • Trên sân khấu.magento.local ; app/etc/local.xml -> app/etc/staging/local.xml;
  • Trên magento.local ; app/etc/local.xml -> app/etc/production/local.xml;

Câu hỏi

  1. Có thể có bất cứ điều gì xấu về việc sử dụng phương pháp này?
  2. Sau khi cài đặt, Magento có ghi vào tập tin này không?

Bất kỳ lời khuyên sẽ được đánh giá rất cao.


Chết tiệt, thật thông minh.
đánh dấu

Câu trả lời:


6

Theo tôi, local.xml không phải là vấn đề bạn cần giải quyết trong kiểm soát phiên bản. Đó cũng là câu hỏi từ góc độ an ninh.

Tôi khuyên bạn chỉ nên đặt /app/etc/local.xml.gitignore và thiết lập nó một lần trên các môi trường riêng lẻ của bạn.


3

Magento không nên ghi vào local.xml sau khi cài đặt (Tôi chưa bao giờ thấy hành vi đó). Điều xấu (TM) về cách tiếp cận của bạn là thông thường nên tránh lưu trữ các tệp cấu hình trong kho lưu trữ của dự án.

Một lý do có liên quan đến bảo mật. Bất cứ ai có quyền truy cập vào kho lưu trữ hiện có một số thông tin nhạy cảm về cơ sở hạ tầng của bạn. Có thể bạn sẽ không bị nhắm mục tiêu hoặc điều đó sẽ xảy ra nhưng mọi người có xu hướng tuân theo quy ước vì điều đó không khó thực hiện.

Nếu nhóm / tổ chức của bạn dự kiến ​​sẽ phát triển thì đó là một ý tưởng tốt để phân tách mã ứng dụng và cấu hình. Mà sau đó có thể được quản lý với các công nghệ thích hợp.


1

Tôi không thể tưởng tượng bất cứ điều gì xấu về điều đó miễn là các tệp bổ sung không thể truy cập được trên thế giới (mà chúng sẽ không được cài đặt mặc định). Tôi không thể nghĩ đến bất kỳ trường hợp nào mà lõi ghi vào local.xml (sẵn sàng sửa lỗi đó), một số phần mở rộng có thể, nhưng dù sao đây cũng không phải là vấn đề với thiết lập của bạn, vì dù sao nó cũng nên ghi vào các tập tin liên quan thông qua symlink nào.

Cá nhân chúng tôi có xu hướng giữ localDB ngoài tầm kiểm soát nguồn, để phát triển Tôi chỉ sao chép tệp local.xml từ dự án cuối cùng mà tôi đã làm và sửa đổi tên cơ sở dữ liệu, vì đây là tất cả có xu hướng thay đổi. Và sản xuất / dàn dựng chúng tôi chỉ cần tạo nó trên máy chủ.

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.