2010-02-22 31 views
9

Khi phát triển các ứng dụng PHP, tốt nhất bạn nên có một máy chủ mà bạn phát triển/thử nghiệm và sau đó là một máy chủ trực tiếp bạn đặt mọi thứ khi nó đã sẵn sàng.Thiết lập máy chủ phát triển

OK, nhưng làm cách nào?

Nếu bạn đang lưu trữ thông qua công ty lưu trữ, bạn có thể thiết lập máy chủ phát triển của riêng mình như thế nào để kiểm tra bắt chước tất cả cài đặt LAMP làm máy chủ trực tiếp của bạn? Bởi vì nếu chúng khác nhau sau đó thử nghiệm trên một trong đó là không giống với một sống, đánh bại mục đích phải không?

Sử dụng tốt hơn một máy chủ khác thông qua cùng một công ty lưu trữ và yêu cầu họ thực hiện cả công cụ phát triển và người dùng trực tiếp có cùng cài đặt chính xác không?

Ngoài ra luồng công việc tốt nhất để sử dụng để kiểm tra tệp từ "máy chủ trực tiếp" hoạt động trên chúng trong "máy chủ phát triển", sau đó kiểm tra chúng trở lại máy chủ trực tiếp là gì?

Cảm ơn !!

Trả lời

14

Hai điểm từ công việc hàng ngày của tôi:

  • XAMPP là của bạn một cửa cho việc thiết lập một chồng Apache/mySQL/PHP trên Windows. Tôi phát triển với nó và triển khai cho các máy Linux, không có vấn đề gì.

  • Nếu bạn muốn thiết lập một môi trường Linux trên một máy chủ gia đình hoặc máy ảo, tôi hỏi một câu hỏi một lúc trước có thể bạn quan tâm: Pre-installed Linux for Web Developers?

là nó sử dụng tốt hơn máy chủ khác thông qua cùng một công ty lưu trữ và yêu cầu họ làm cho cả hai phát triển và những người sống có cùng một cài đặt chính xác?

Nếu bạn có thể mua máy chủ thứ hai, đó cũng có thể là cách tốt nhất để thực hiện. Mặt khác, một máy địa phương bạn có thể nâng cấp và fiddle xung quanh với ý muốn, và tất cả những gì ở một phần nhỏ của chi phí dài hạn của một máy chủ thuê thứ hai. Nếu nghi ngờ, tôi sẽ đi cho một máy địa phương.

Đừng quên PHP là một ngôn ngữ rất di động. Nếu bạn không sử dụng bất kỳ công cụ dòng lệnh cụ thể hoặc các phần mở rộng hoàn toàn kỳ lạ, làm cho một ứng dụng PHP hoạt động trên Linux, và ngay cả trên Windows là một câu hỏi về một số cài đặt và chi tiết, nhưng không thực sự là một vấn đề lớn nữa.

Ngoài ra luồng công việc tốt nhất để sử dụng để kiểm tra tệp từ "máy chủ trực tiếp" hoạt động trên chúng trong "máy chủ phát triển", sau đó kiểm tra chúng trở lại máy chủ trực tiếp là gì?

Có nhiều, nhiều ý kiến ​​và thực tiễn trong lĩnh vực này. Đối với cá nhân tôi, quy trình làm việc sau đây đã trở thành lý tưởng cho dù tôi đã sử dụng nó - tôi vẫn đang trong quá trình thực hiện điều này trong tất cả các dự án và cho tất cả khách hàng.

  1. Chỉnh sửa các file cục bộ trong IDE

  2. tải lên máy chủ phát triển qua built-in FTP chức năng của IDE

  3. Thử nghiệm trên máy chủ phát triển

  4. Khi một tính năng được kiểm tra và công trình trên máy chủ phát triển (nghĩa là "hoàn thành"), hãy kiểm tra toàn bộ gói trong kho lưu trữ Subversion (hoặc khác)

  5. Trên máy chủ trực tiếp, có một kịch bản xây dựng kiểm tra phiên bản mới nhất từ ​​kho lưu trữ, tải nó xuống một thư mục với số sửa đổi, và khi kết thúc, thay đổi một liên kết tượng trưng chỉ đến bản sửa đổi trước đó mới nhất.

Bằng cách đó, mọi thay đổi bạn thực hiện với môi trường sống được đăng nhập vào hệ thống kiểm soát phiên bản và hoàn nguyên về bản sửa đổi trước đó là một câu hỏi nếu giây. Đối với tôi, đây là một sự cứu trợ lớn so với làm việc với FTP thuần túy ở khắp mọi nơi.

Có thể thêm những câu hỏi thú vị: Setting up a deployment/build/CI cycle for PHP projects

+0

Lưu ý: Nếu bạn có một máy Linux xung quanh, không cần XAMPP, hầu hết Linux được cấu hình sẵn (hoặc dễ dàng cấu hình thông qua các công cụ quản lý gói của chúng) với tất cả những gì cần thiết. –

+0

Bước 1-3 Tôi hiểu hoàn toàn, tôi không có kinh nghiệm với bất kỳ hệ thống kiểm soát phiên bản nào vì vậy tôi sẽ Google Subversion cho thông tin ở bước 4. Tuy nhiên, bạn có thể chỉ cho tôi một nơi nào đó sẽ giải thích làm thế nào để đạt được bước 5? Cảm ơn!!! –

+0

XAMPP và các ngăn xếp khác đã làm một công việc rác rưởi khi tôi kiểm tra. Họ có nghĩa vụ phải thiết lập một môi trường _development_ nhưng không ai trong số họ thiết lập PHP để phát triển, ví dụ: display_errors phải là On nhưng nó không phải. Những người sử dụng chúng kết thúc trên SO hỏi những câu hỏi ngớ ngẩn. –

3

Bạn có thể kiểm tra tất cả các thiết lập máy chủ sản xuất của qua phpinfo() và sao chép chúng vào môi trường phát triển của bạn, không cần phải cho họ được vào nhà cung cấp tương tự.

Tôi thường cam kết mã để kiểm soát nguồn và thanh toán trong môi trường sản xuất, ẩn tất cả thông tin kho lưu trữ qua .htaccess, ví dụ: xem here.

Tùy chọn khác (ít được khuyến nghị) là chỉ cần có nguồn chính trong máy phát triển và sau khi đã sẵn sàng FTP, có nhiều công cụ miễn phí khác nhau sẽ chỉ tải lên các tệp đã thay đổi.

+1

Một công cụ như vậy là FileZilla. Khi tải lên tệp, cung cấp cho bạn tùy chọn ghi đè bất kể nội dung gì, ghi đè nếu kích thước khác nhau hoặc ghi đè lên nếu nguồn mới hơn – Tarka

2

Đối với phía máy chủ, bạn có nhiều khả năng. Bạn có thể sử dụng vHosts khi bạn có Apache, với hai DocumentRoot khác nhau: một cho phiên bản trực tiếp và một cho phát triển. Hoặc bạn có thể có môi trường phát triển trên máy cục bộ của bạn, và sau đó sống (+ dàn dựng) trên máy chủ/webspace chuyên dụng của bạn.

Trong dự án hiện tại của chúng tôi, chúng tôi có hệ thống ba tầng:

phát triển, dàn dựng và phát trực tiếp. Dàn dựng và sống thực sự gần như giống nhau, vì vậy mà tôi có thể loại bỏ bất kỳ vấn đề khi lăn ra từ dev để dàn dựng. Nó mang lại cho tôi một lớp bảo mật khác trước khi tung ra để sống và cuối cùng nhận thấy rằng đã xảy ra sự cố.

Xem xét quy trình công việc để triển khai, bạn nên tạo cấu hình ứng dụng, nơi bạn có thể xác định một số môi trường ứng dụng (phát triển và sản xuất) tự động chọn môi trường của chúng dựa trên URL, biến môi trường được xác định hoặc thứ khác. Vì vậy, trong Zend Framework chẳng hạn, hành vi định hướng cấu hình này được tích hợp vào các ứng dụng của bạn. Trong tệp config.ini của bạn, bạn có mẫu giống như sau:

[production] 

[staging : production] 

[testing : production] 

[development : production] 

Ở đó, bạn có thể xác định các tùy chọn khác nhau cho phép kết nối cơ sở dữ liệu của bạn tức là

Vì vậy, khi bạn kiểm tra các thay đổi của bạn trên máy tính dev thành lật đổ và thực hiện triển khai trên hệ thống trực tiếp, bạn không phải thay đổi cấu hình. Nó chỉ nên hoạt động.

0

Theo như quy trình làm việc, điều đó thường xảy ra với các trang web nhỏ. Tùy thuộc vào kích thước của dự án, mặc dù, nó có thể là một ý tưởng tốt để sử dụng điều khiển phiên bản như Git hoặc Subversion.

0

Bạn không cần phải đi đâu xa như yêu cầu công ty lưu trữ thiết lập hai môi trường lưu trữ giống hệt nhau cho bạn. Phần lớn thời gian họ có phiên bản cập nhật của php, mysql và apache. Tôi phát triển trên một máy Linux, có một thiết lập ngăn xếp đèn đã có, do đó, công việc của tôi là khá liền mạch, và tôi sử dụng một svn với móc sau cam kết để tải lên máy chủ trực tiếp. Nếu bạn đang lo lắng về sự không tương thích giữa bạn 'dev' máy chủ và máy chủ lưu trữ, điều đơn giản nhất để làm là tạo ra một tập tin phpinfo,

<?php phpinfo(); ?> 

và kiểm tra xem máy chủ lưu trữ của bạn không cấm bất kỳ chức năng đặc biệt bạn sử dụng trên máy chủ dev của bạn (và điều này là khá hiếm hoi mà công ty lưu trữ chặn những thứ quan trọng, và nếu họ làm bạn có thể dễ dàng gửi hỗ trợ một email và 99% thời gian họ sẽ hỗ trợ bạn trong việc kích hoạt bất cứ điều gì cụ thể bạn yêu cầu. khi thiết lập môi trường dev của bạn, tôi sẽ đi theo dõi việc lấy hộp ảo, và cài đặt ubuntu, tìm hướng dẫn để tạo ubuntu một máy chủ web (nghiêm túc chỉ là một vài lệnh apt-get) và bạn sẽ hút thuốc bằng khí gas!

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