2010-09-08 44 views
5

Tôi có một máy tính Windows 7 mà tôi làm cả PHP/MySql Dev và .NET/C#/Sql Server coding. Do cài đặt lại gần đây, tôi nghĩ rằng đây có thể là thời điểm lý tưởng để thử và giữ cho máy của tôi sạch hơn một chút thay vì cài đặt cả Apache và IIS, v.v.VirtualBox Ubuntu LAMP Stack phát triển, với SVN và CruiseControl/phpUnderControl?

Tôi đã cài đặt VirtualBox, với Ubuntu 10.04 làm hệ điều hành khách , với kế hoạch di chuyển phát triển PHP của tôi từ nền tảng Windows/Apache/MySql cũ của tôi lên hình ảnh ảo này. Thêm vào đó, tôi muốn thêm CruiseControl/phpUnderControl vào quá trình phát triển PHP của tôi.

Cho đến nay, tôi đã cài đặt Ubuntu 10.04 với một ngăn LAMP, cộng với Netbeans cho PHP, MySQL Workbench, v.v ... có hiệu quả giống như thiết lập Windows cũ của tôi, nhưng bây giờ tôi cũng đã cài đặt SVN và CruiseControl (Tôi chưa cài phpUnderControl, nhưng đó là bước tiếp theo).

Câu hỏi của tôi là, tôi có thể sử dụng hình ảnh ảo này làm môi trường phát triển "cục bộ" và làm máy chủ xây dựng, để tôi không cần làm lộn xộn cửa sổ gốc của mình bằng phần mềm liên quan đến MySql/PHP có thể giữ cho nó đẹp và sạch cho phát triển .NET)? Tôi tưởng tượng tôi cần máy chủ web ảo để có thể phục vụ cả phiên bản dev "cục bộ" của bất kỳ dự án nào mà tôi đang làm, cũng như phiên bản dàn dựng, mà sẽ xây dựng bằng cách sử dụng cam kết cruisecontrol/svn ?

Hoặc tôi có nên tách máy chủ dev và xây dựng của mình, có thể giữ sự phát triển cục bộ trong cửa sổ và chỉ sử dụng hình ảnh ảo cho máy chủ xây dựng? hoặc có lẽ có hai máy ảo riêng biệt cho các mục đích khác nhau?

Tôi muốn đánh giá cao một số lời khuyên về cách tốt nhất để thiết lập điều này. Một trong những dự án mà tôi muốn làm là khá phức tạp vì vậy tôi muốn đảm bảo rằng tôi có được điều này đúng cách trước khi tôi bắt đầu dự án, để tôi có thể đảm bảo dự án được duy trì tốt với phiên bản, kiểm tra đơn vị và tích hợp liên tục , tôi có cần phải liên quan đến các nhà phát triển khác trong dự án không.

Trả lời

5

Nếu bạn đang muốn giữ cho hộp Windows của bạn sạch các công cụ MySQL/PHP thì tôi khuyên bạn nên sử dụng hai phương pháp VM. Một bản phân phối Linux trên máy tính để bàn để phát triển với LAMP, v.v. trên đó để quay vòng nhanh/mã hóa nhanh và một bản sao máy chủ thực sự của bạn cài đặt (với việc bổ sung svn etc) cho các bản dựng thử nghiệm của bạn.

Điều này mang lại cho bạn những lợi ích rất lớn cho cả hai có môi trường dev tốt và quan trọng hơn là có một máy chủ thử nghiệm sẽ phản ánh hoạt động của mã của bạn trên máy chủ trực tiếp. Bằng cách này bạn có thể giữ cho máy ảo môi trường dev của bạn cập nhật với các bản cập nhật mới nhất cho bản phân phối (hạt nhân, công cụ, vv) và giữ máy ảo xây dựng ở bất kỳ phiên bản ứng dụng nào trên máy trực tiếp. Điều này có rất nhiều phỏng đoán trong "đó là phiên bản mới của thư viện X hay mã của tôi?".

Nếu bạn muốn sử dụng quá mức cần thiết 3. Một cho dev, một cho SVN/tích hợp liên tục và một chính xác phản chiếu máy chủ của bạn để bạn có thể kiểm tra cấu hình triển khai/hệ thống.

+0

Tôi đã xem xét cách tiếp cận nhiều hộp, nhưng đã không chắc chắn nếu nó là quá mức cần thiết để có 3 trường hợp chạy đồng thời, nhưng bạn đã thuyết phục tôi về lợi ích của nó. –

3

Nếu bạn đang xem xét có VM của bạn cho dev tại sao không thiết lập chính xác như bạn sẽ thiết lập môi trường dàn dựng/sản xuất của bạn?

Ngoài ra, bạn có thể thiết lập máy ảo để lưu trữ kho lưu trữ mã và máy chủ web, sau đó kết nối các công cụ cục bộ với máy chủ (Windows). Bằng cách đó bạn có thể phát triển trên hộp Windows, kết nối với máy ảo.

Điều này mang lại cho bạn khả năng thực hiện mọi thứ trong môi trường cục bộ của bạn trong khi mô phỏng môi trường máy chủ trong máy ảo của bạn.

VirtualBox cũng thực hiện kết nối mạng và bạn có thể làm cho máy chủ Windows kết nối qua mạng với máy chủ như thể nó thực sự là một nút khác trên mạng.

+0

Vâng, tôi đã rất ấn tượng về việc làm thế nào để có được một máy ảo đang hoạt động trên mạng - Tôi đã thiết lập một IP cố định cho VM mà tôi đã thiết lập cho đến nay, vì vậy tôi có thể truy cập nó từ máy, không có lý do tại sao tôi không thể thiết lập nhiều máy ảo với cùng một cách tiếp cận. Tôi nghĩ rằng tôi sẽ đi với phương pháp tiếp cận 3 máy, một để phát triển, một như một máy chủ xây dựng SVN/CI, và một để phản ánh môi trường sống. –

+0

Bạn muốn giới thiệu công cụ VM nào để sử dụng cho phát triển? – BrightIntelDusk

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