2008-09-16 29 views
5

Chúng tôi có các dự án php khác nhau được phát triển trên windows (xampp) cần được triển khai cho một máy chủ linux/windows.PHP Triển khai lên các cửa sổ/máy chủ Unix

Trước đây chúng tôi đã sử dụng capistrano để triển khai từ cửa sổ đến máy chủ Linux, nhưng những thay đổi gần đây trong kiến ​​trúc và máy chủ cửa sổ đã để cấu hình cũ không hoạt động. Công thức này hoạt động tốt cho việc triển khai Linux, nhưng việc thiết lập các máy chủ Windows đã yêu cầu nhiều thời gian hơn chúng ta có ngay bây giờ. Ý tưởng cho công thức Capistrano là câu trả lời hợp lệ. rõ ràng các cửa sổ/máy chủ linux không chia sẻ người dùng, vì vậy điều này làm phức tạp nó một chút (cho giả định capistrano cùng tên người dùng/mật khẩu ở khắp mọi nơi).

Hiện tại, chúng tôi đang sử dụng svn-update cho các máy chủ windows mà tôi không thích, vì nó để lại tất cả các tệp svn treo trên máy chủ sản xuất. (và chúng tôi vẫn phải tự svn-cập nhật chúng trên cửa sổ) Và cập nhật thủ công các tập tin bằng cách sử dụng winscp và đồng bộ hóa các thư mục với các đối tác linux của họ.

Câu hỏi của tôi là, những gì các công cụ/thiết lập bạn có đề nghị để tự động hóa kịch bản triển khai này: "Nhiều nhà phát triển php windows/linux triển khai để 2+ máy windows/linux hỗn hợp"

(ps: chúng tôi có không có vấn đề khi sử dụng các công cụ linux hoặc bất cứ thứ gì hoạt động thông qua cygwin, chúng tôi chỉ cần triển khai một hoạt động đơn giản một bước)

chỉnh sửa: Hiện tại chúng tôi không thể làm việc trên môi trường Linux, chúng tôi phải triển khai cả hai linux và cửa sổ máy chủ. Chúng ta có thể bắt đầu triển khai từ bất cứ đâu, nhưng chúng tôi muốn có thể làm điều đó từ môi trường.

Trả lời

4

tôi sử dụng 4 phương pháp khác nhau tùy thuộc vào môi trường khách hàng:

  1. Capistrano và các công cụ tương tự (có hiệu lực, nhưng phức tạp)
  2. rsync từ + cho Windows, Linux , Mac (đơn giản, không thi hành kỷ luật)
  3. svn từ + cho Windows, Linux, Mac (đơn giản, không thi hành kỷ luật)
  4. On-server script (chạy thông qua trình duyệt, phức tạp)

Có một số yêu cầu mà lái xe những gì bạn cần:

  • Bao nhiêu kỷ luật bạn muốn thực thi
  • Nếu bạn cần cơ sở dữ liệu (hoặc cấu hình) di cư (lên và/hoặc xuống)
  • Nếu bạn muốn có một tĩnh "chúng tôi xuống" trang
  • Ai có thể làm bản cập nhật
  • sự khác biệt giữa các máy chủ Cấu hình

Tôi thực sự khuyên bạn nên thực thi đủ kỷ luật để giúp bạn tiết kiệm: triển khai cho máy chủ phát triển, cho phép di chuyển lên trên và khôi phục cơ sở dữ liệu đơn giản và giới hạn người có thể cập nhật máy chủ trực tiếp cho một số lượng nhỏ quản trị viên có trách nhiệm. mở cửa cho nhiều nhà phát triển hơn). Cũng xem xét việc đẩy thông qua một công việc cron (đến máy chủ phát triển), do đó, có một ảnh chụp nhanh hàng ngày về những thay đổi gia tăng của bạn.

Hầu hết thời gian, tôi thấy rằng các thiết lập svn hoặc rsync là đủ, với một vài tập lệnh phía máy chủ, đặc biệt khi tập hợp quản trị được giới hạn cho một vài nhà phát triển.

0

Capistrano là công cụ triển khai tuyệt vời nhất mà tôi từng thấy. Những thay đổi về kiến ​​trúc có làm cho nó không thể sửa chữa các cấu hình để nó hoạt động trở lại không?

1

Điều này nghe có vẻ ngớ ngẩn nhưng ... Tôi thường gặp vấn đề này cho đến khi tôi quyết định rằng nếu tôi luôn luôn triển khai trên Linux, tôi thực sự phải thử ít nhất đang phát triển trên Linux. Tôi đã làm. Nó không đau đớn. Tôi chưa bao giờ quay lại.

Hiện tại. Tôi không đề nghị điều này là dành cho tất cả mọi người. Tuy nhiên, nếu bạn cài đặt VirtualBox bạn có thể chạy cài đặt Linux dưới dạng máy chủ cục bộ trên hộp cửa sổ của mình. Chia sẻ một thư mục trong máy ảo và bạn có thể sử dụng tất cả các phần mềm Windows và kỹ thuật đã biết và đáng tin cậy của bạn có ý thức rằng mọi thứ đang hoạt động tốt trên nền tảng đích của nó.

Ngoài ra, bạn sẽ có thể quay lại Capistrano (một lựa chọn tốt) để triển khai.

Hay nhất của tất cả, nếu bạn nghĩ rằng bạn biết Linux/Unix chờ đợi cho đến khi bạn sử dụng nó hàng ngày trên máy tính để bàn của bạn!Ai mà biết được bạn có thể thậm chí như nó :)

0

Tại sao bạn không thể sử dụng capistrano nữa?

Tại sao bạn không thích svn-update?

Điều gì trong ứng dụng của bạn yêu cầu triển khai đặc biệt?

0

Bạn có thể thiết lập thuộc tính svn:ignore trên tệp cấu hình để svn update không xóa chúng, sau đó sử dụng svn export /target/path/ để loại bỏ các tệp .svn trong kho lưu trữ Subversion của bạn.

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