Cách triển khai đúng các ứng dụng từ phát triển đến sản xuất và cách xử lý nhiều cấu hình trang web. Tất cả sự phát triển của tôi được thực hiện thông qua svn nằm tại var/svn/myapp/trunk và mã sản xuất thực tế nằm trong/var/www/myapp.Làm thế nào để triển khai các ứng dụng PHP của bạn một cách chính xác?
Tôi kiểm tra mã mới nhất cho máy cục bộ của mình vào thư mục có tên "myapp_latest_svn". Tôi có mã trang web và vị trí cụ thể trong settings.php chính của mình, trong đó có H_PATH = 'http://myapp.com' & cài đặt cấu hình db cho db_host, db_user_name và db_password giống như bạn biết khác nhau trong cài đặt máy cục bộ (trong đó localhost/myapp. com chỉ là bí danh Apache) & trên máy chủ sản xuất (live site chạy trên myapp.com).
Ngoài ra tệp .htaccess khác với tệp trên máy chủ sản xuất. Tóm lại, có một số khác biệt giữa dev và sản xuất.
Tôi giữ tất cả công việc của mình trong SVN. Mỗi buổi sáng tôi sử dụng SVN Update cập nhật mã mới nhất cho kho lưu trữ svn địa phương của tôi. Khi tôi sẵn sàng phát trực tiếp, tôi xây dựng bản phát hành với cam kết svn.
Sau đó, trong bản phát hành, tôi phải nhớ thay đổi tất cả các tệp dev phù hợp thành đối tác sản xuất của chúng. Bây giờ tôi đã phải chỉnh sửa thủ công các thiết lập production.php & .htaccess để phản ánh các thay đổi cụ thể của trang web.
Tôi đang tìm một cách tự động để chuyển từ dev sang sản xuất hoàn chỉnh với phiên bản và không chỉnh sửa thủ công các tệp dễ mắc lỗi và thực hành không tốt.
Một cách là làm cho phiên bản sản xuất của tệp chỉ đọc (0444). Bằng cách đó khi tôi làm một xuất khẩu svn, chúng không bị ghi đè bởi phiên bản dev của các tệp và tôi không phải lo lắng về việc chỉnh sửa tệp trên mỗi chuyển từ dev sang sản xuất. Nhưng đó là cách làm xấu như tích hợp liên tục.
Cũng bằng cách tạo nhiều bản sao của settings.php (một cho localhost, beta và prod). Sau đó sử dụng một kịch bản shell xuất khẩu từ svn, và sau đó khi xuất xong, nó sẽ thay thế settings.php bằng đúng settings.php, tùy thuộc vào vị trí mà chúng tôi đang triển khai. Bằng cách đó, mọi thứ đều tự động. Nhưng đây cũng là một cách què quặt để đi.
cách cuối là
if(eregi ("myapp.com$", $_SERVER['HTTP_HOST'])){
define('H_PATH', 'myapp.com');
} else {
define('H_PATH', 'localmyapp.com');
}
Điều này là tốt như xa như settings.php là có liên quan. Nhưng những gì abt .htaccess, u không thể kiểm tra như trên trong .htaccess.
Điều tôi không muốn làm mỗi lần triển khai trang web của mình là tôi phải thay đổi cài đặt.
Lược đồ DB của tôi không có trong phiên bản kiểm soát để db không phải là vấn đề với tôi, chỉ có settings.php và .htaccess.
Ngoài ra làm cách nào tôi có thể yêu cầu svn không cập nhật một số thư mục vì đó cũng là trang web cụ thể (/ log,/cache,/assets,/downloads). Ngoài ra tôi cần phải bảo vệ các apache (www_data) viết truy cập nguyên vẹn cho các tập tin trên là tốt.
Cuối cùng tôi không muốn sao chép thư mục thân trống và tệp .svn vào máy chủ sản xuất khi tôi xuất.
Làm cách nào tôi có thể sử dụng Phing hoặc thậm chí tập lệnh shell để tích hợp mà không gây ra bất kỳ vấn đề nào trong số này khi xây dựng từ svn đến máy chủ sản xuất.
Điều này có thể hữu ích cho nhiều nhà phát triển ứng dụng wannabe trên mạng trong môi trường hoang dã.
Cảm ơn trước,
ocptime
lớn liên kết! Cảm ơn! –
Bạn có thể giải thích thư mục tài sản liên kết tượng trưng nào không? – dave1010