Tôi có một số dự án PHP personnal trên shared-hosting; đây là một vài suy nghĩ, từ những gì tôi đang thực hiện trên một trong những số (một trong những hoạt động nhất và cần một số cách đồng bộ hóa bán tự động ít nhất):
Một vài từ về thiết lập của tôi :
- Cách đây một thời gian, tôi có mọi thứ trên SVN; bây giờ, tôi đang sử dụng bazaar; nhưng ý tưởng là giống hệt nhau (ngoại trừ, với chợ, tôi có lịch sử địa phương và tất cả những gì)
- Tôi có một truy cập ssh vào máy chủ sản xuất, như bạn làm
- Tôi làm việc trên Linux exclusivly (vì vậy , những gì tôi làm có thể không phải là dễ dàng với các cửa sổ)
Bây giờ, làm thế nào tôi làm việc:
- Tất cả những gì có thể te trên production server (mã nguồn, hình ảnh, .. .) được cam kết để SVN/bazarr/bất cứ điều gì
- Tôi làm việc tại địa phương, với Apache/PHP/MySQL (tôi sử dụng một bãi chứa của DB sản xuất mà tôi nhập khẩu tại địa phương một lần trong một thời gian)
- Tôi là người duy nhất làm việc trên dự án đó; nó có lẽ sẽ ổn cho một nhóm nhỏ gồm 2/3 người phát triển, nhưng không được nhiều hơn.
Những gì tôi đã làm trước đây:
- tôi đã có một số kịch bản PHP mà kiểm tra các máy chủ SVN sửa đổi giữa "phiên bản cuối cùng đẩy vào sản xuất" và ĐẦU
- Tôi đoán tự chế này Tập lệnh PHP trông giống như tập lệnh Perl bạn hiện đang dùng usng ^^
- Tập lệnh đó tạo danh sách các thư mục/tệp để tải lên sản xuất
- Và tải lên những người đó qua quyền truy cập FTP
- Điều này không thực sự thỏa mãn (có lỗi trong tập lệnh của tôi, tôi giả sử; Tôi không bao giờ dành thời gian để sửa những người đó); và buộc tôi phải nhớ số phiên bản của thời gian tôi cuối cùng đẩy sản xuất (tốt, nó được tự động lưu trữ trong một tập tin bằng kịch bản, vì vậy không phải là khó ^^)
Những gì tôi làm bây giờ:
- Khi chuyển sang Bazaar, tôi không muốn viết lại rằng kịch bản, mà không làm việc rất tốt anyway
- tôi đã giảm kịch bản hoàn toàn
- Như tôi đã có quyền truy cập ssh vào máy chủ sản xuất , Tôi sử dụng rsync để đồng bộ hóa từ máy phát triển của tôi đến máy chủ sản xuất, khi những gì tôi có tại địa phương được coi là ổn định/sẵn sàng sản xuất.
Một vài ghi chú về cách mà những điều thực hiện:
- Tôi không có một dàn máy chủ: thiết lập địa phương của tôi là đủ gần để một
- Không có một dàn máy chủ của sản xuất được bật đèn xanh cho một dự án đơn giản với một hoặc hai developpers
- Nếu tôi đã có một dàn máy chủ, tôi có thể đi với:
- làm một "svn update" vào nó khi bạn muốn sta ge
- khi nó là OK, khởi động lệnh rsync từ dàn máy chủ (mà sẽ ba tại phiên bản "ổn định" mới nhất, do đó OK để bị đẩy vào sản xuất)
- Với một dự án lớn, với hơn developpers, tôi có lẽ sẽ không đi với loại thiết lập đó; nhưng tôi thấy nó khá ổn cho một dự án personnal (không quá lớn).
Điều duy nhất "đặc biệt" ở đây, có thể là "hướng linux" đang sử dụng rsync; một tìm kiếm nhanh dường như cho thấy có một tệp thực thi rsync có thể được cài đặt trên các cửa sổ: http://www.itefix.no/i2/node/10650
Tôi chưa bao giờ thử nó.
Là một sidenote, đây là những gì lệnh rsync của tôi trông giống như:
rsync --checksum \
--ignore-times \
--human-readable \
--progress \
--itemize-changes \
--archive \
--recursive \
--update \
--verbose \
--executability \
--delay-updates \
--compress --skip-compress=gz/zip/z/rpm/deb/iso/bz2/t[gb]z/7z/mp[34]/mov/avi/ogg/jpg/jpeg/png/gif \
--exclude-from=/SOME_LOCAL_PATH/ignore-rsync.txt \
/LOCAL_PATH/ \
[email protected]:/REMOTE_PATH/
Tôi đang sử dụng các phím private/public mecanism, vì vậy rsync không yêu cầu mật khẩu, btw.
Và, tất nhiên, tôi thường sử dụng các lệnh tương tự trong chế độ "khô hạn" đầu tiên, để xem những gì đang xảy ra để được synchorised, với tùy chọn "--dry-run
"
Và ignore-rsync.txt
chứa một danh sách tập tin mà tôi không muốn bị đẩy vào sản xuất:
.svn
cache/cbfeed/*
cache/cbtpl/*
cache/dcstaticcache/*
cache/delicious.cache.html
cache/versions/*
Ở đây, tôi chỉ ngăn chặn các thư mục bộ nhớ cache để được đẩy vào sản xuất - có vẻ hợp lý để không gửi những, như dữ liệu sản xuất là không giống như phát triển dữ liệu.
(Tôi chỉ nhận thấy bạn vẫn có ".svn
" trong tập tin này ... Tôi có thể loại bỏ nó, như tôi đã không sử dụng SVN nữa cho dự án mà ^^)
Hope điều này giúp một chút ...
Cảm ơn rất nhiều. Nó vẫn làm tôi kinh ngạc đôi khi những nỗ lực mà mọi người thích mình đưa vào câu trả lời với những chi tiết và sự rõ ràng đó. – zenna
Bạn được chào đón :-) (Một số câu trả lời tôi nhận được và/hoặc thấy tôi ngạc nhiên quá ;-) vì vậy, khi tôi có thể giúp ... tốt, đó là những gì SO là dành cho!) –