2011-07-26 38 views
7

Tôi làm việc cho một công ty thực hiện các trang web cho ngành dược phẩm và chúng tôi thường cần được phê duyệt pháp lý trước khi chúng tôi đẩy mọi thay đổi trực tiếp. Vì vậy, tôi muốn di chuyển rất nhiều công việc của chúng tôi đến một môi trường CMS, đặc biệt là wordpress nhưng chúng tôi cần khả năng để có một môi trường dàn dựng. Có thể thay vì xuất bản một trang có nó xuất bản đến một môi trường dàn dựng mà ai đó có thể duyệt như với một liên kết như một trang web. Vì vậy, về cơ bản có 2 trang web, một dàn dựng trực tiếp?Môi trường dàn dựng Wordpress

Trả lời

3

Nói chung câu trả lời ở trên là chính xác, có các lựa chọn thay thế cho wordpress có hỗ trợ tích hợp tốt hơn cho môi trường dàn dựng và xây dựng di chuyển. Tuy nhiên, các giải pháp thay thế được đề xuất không chính xác thay thế bằng nền tảng wordpress, vì vậy tôi nghĩ tốt nhất là nên trả lời câu hỏi đó.

Wordpress không hỗ trợ lưu trữ cùng một trang web từ hai máy chủ khác nhau. Cốt lõi dựa trên các url tuyệt đối được lưu trữ bên trong cơ sở dữ liệu và được sử dụng chỉ trong mọi khía cạnh của logic lõi. Điều này dẫn đến một số lỗi thừa như 500 hoặc liên quan đến truy cập SSL vì chúng cố gắng tự động thay đổi tất cả http: // lược đồ thành https: // khi đang di chuyển.

Kết quả là khi bạn lưu trữ trên dev.example.com và di chuyển sang staging.example.com và một lần nữa đến www.example.com, bạn phải thực hiện tìm kiếm rất cẩn thận & thay thế thao tác trên cơ sở dữ liệu xuất mỗi khi bạn chuyển đổi máy chủ. Và điều này gây ra các vấn đề khác khi bạn phát hiện ra rằng nhiều plugin wordpress phổ biến tuần tự hóa url thành các giá trị trong cơ sở dữ liệu. Vì vậy, khi bạn tìm kiếm & thay thế dev.example.com bằng staging.example.com, dữ liệu được tuần tự hóa chứa độ dài ký tự của giá trị ban đầu không còn deserializes với định dạng dài hơn mới. Một số người đóng góp cốt lõi tin rằng giải pháp cho vấn đề sau này là chỉ bao giờ thiết lập trang web dàn dựng với cùng số ký tự như tài khoản sản xuất ...

Trong một mạch tương tự, chúng cũng đề xuất hoán đổi ánh xạ máy chủ và chỉ sử dụng url production.com trên tất cả các môi trường lưu trữ. Tùy thuộc vào các yêu cầu sử dụng cụ thể của bạn, đây có thể không phải là giải pháp hợp lệ nếu bạn cần cung cấp quyền truy cập cho các khách hàng bên ngoài trang web, người dùng không biết đến công nghệ (so với người dùng hiểu biết về khóa học công nghệ.)

Nhưng bản thân wordpress có số lượng các tính năng tuyệt vời khác và là một nền tảng phát triển nhanh chóng thích ứng và mạnh mẽ. Kết quả là bạn có thể mở rộng khung cốt lõi để thực hiện phần lớn những gì bạn cần từ nó. Khi tôi được trình bày với tình huống này, tôi phải phát triển một giải pháp khả thi cho mọi hoàn cảnh. Theo truyền thống, vấn đề này được giải quyết bằng url gốc, chúng hoạt động trong môi trường lưu trữ chéo và không bị thay đổi sơ đồ, thay đổi cổng hoặc thực thi hoán đổi tên miền phụ phổ biến với việc di chuyển theo giai đoạn.

Với plugin này: http://wordpress.org/extend/plugins/root-relative-urls/ (thiên vị? Vâng, tôi đã viết plugin này.) Bạn nhận được url gốc tương đối ở nơi máy chủ lưu trữ quan trọng và động nơi url gốc tương đối không hoạt động (như nguồn cấp dữ liệu rss). còn lại từ việc di chuyển trang web đến các máy chủ khác nhau là di chuyển tệp wp-config.php ra khỏi thư mục gốc www (một cấp được hỗ trợ bởi wordpress.) để bạn có thể duy trì các bản sao khác nhau trên các máy chủ khác nhau. Hoặc cách khác, bạn có thể sử dụng các câu lệnh if cơ bản để phân biệt các máy chủ với tên máy chủ và xác định các hằng số wordpress chính dựa trên máy chủ. Cuối cùng, nội dung của bạn, mã & dữ liệu sẽ chuyển tiếp liền mạch.

Là một lưu ý quan tâm, các plugin tham chiếu yêu cầu thiết lập ghi vào file wp-config.php, một thực tế rất xấu từ góc độ an ninh phục vụ sản xuất hoặc các máy chủ truy cập công khai. Có lẽ bạn có thể thoải mái thực hiện điều này trong một môi trường giới hạn dàn dựng nhưng sau đó bạn cần phải vô hiệu hóa và loại bỏ các plugin trong quá trình chuyển đổi sản xuất.

Câu chuyện dài ngắn gọn, có bạn có thể lưu trữ wordpress trong nhiều môi trường lưu trữ. Các giải pháp được giới thiệu lâu dài rất cụ thể và tùy chọn hạn chế do kiến ​​trúc cốt lõi. Nhưng khuôn khổ này đủ linh hoạt để vượt qua thâm hụt cốt lõi. Quyết định thiết kế cốt lõi này có thể sẽ thay đổi tại một thời điểm nào đó trong tương lai do số lượng nỗ lực mà các nhà phát triển cốt lõi liên tục chi tiêu để khắc phục các vấn đề xếp tầng. Nhưng cũng có những người bảo vệ mộ đạo của tôn giáo url tuyệt đối mà sẽ giữ cho thực hành tại chỗ trong thời gian này. Có lẽ một nền tảng khác có hỗ trợ di chuyển máy chủ một cách tự nhiên (chỉ chọn bất kỳ một trong số chúng vì hầu hết là) sẽ là một lựa chọn tốt hơn cho bạn bây giờ.

1

Greg, Một CMS tốt hơn nữa với môi trường dàn dựng sẽ là Silverstripe (silverstripe.org). Các cm này cho phép bạn duyệt toàn bộ trang web dàn dựng.

+0

Tôi đồng ý với điều này. Silverstripe là một CMS tuyệt vời và hơn thế nữa nếu bạn đang tạo trang web, bạn nên sử dụng phần mềm viết blog không phải CMS. – Bendihossan

2

Có thể: Hãy xem Github Gist này để xem ví dụ về cách chuyển đổi môi trường với tệp wp-config.php của bạn. Hơn nữa, hãy xem wordpress.stackexchange để xem một số Q khác về điều này cung cấp cho bạn một cái nhìn sâu sắc hơn về những thứ bạn nên xem xét.

0

Nếu bạn cần sử dụng WP và chỉ cần xuất bản một hoặc nhiều trang từ dàn dựng đến trang web trực tiếp, tại sao không triển khai loại thẻ trên các trang cần được xuất bản (khách truy cập trang web trực tiếp) xem? Đơn giản điều chỉnh các mẫu của bạn để hiển thị các trang được gắn thẻ hay không và bạn đã hoàn tất! Sau đó, bạn chỉ có thể sử dụng một trang web và duy trì cả các trang công khai và không được phê duyệt trên trang đó.

Bạn cũng có thể duy trì bản sao cục bộ của trang web (giai đoạn) và có một số tập lệnh để tải lên toàn bộ trang đó - lưu trữ dễ dàng. Trong trường hợp này, bạn có thể cân nhắc đưa toàn bộ trang web vào các trang HTML và tải lên (rsync đơn giản) HTML này để lưu trữ - trang web trực tiếp sẽ khó phá vỡ vì không có tập lệnh động nào ở đó!

Nhưng có lẽ bạn thực sự không nên chọn WP? Có rất nhiều CMS hỗ trợ lược đồ viết-phê duyệt-xuất bản.

1

Tôi nghĩ rằng bạn có thể thử sử dụng một số plugin. Ví dụ: (tìm kiếm nhanh trên repo plugin wordpress chính thức) wp-deploy hoặc Dev and Staging Environment Plugin (có thể đã lỗi thời). Hoặc bạn có thể thử sử dụng các tệp wp-config.php khác nhau - một cho sản xuất và một cho môi trường dev và chuyển đổi chúng bằng cách kiểm tra url được yêu cầu.

0

Bạn có thể tạo ra một môi trường Staging WordPress chỉ với hai cú nhấp chuột với sự giúp đỡ của plugin này: https://de.wordpress.org/plugins/wp-staging/

Tiết lộ: Tôi là tác giả của plugin này. Vì vậy, hãy hỏi tôi bất cứ điều gì về nó.

Các vấn đề liên quan