Tôi biết câu hỏi này hơi cũ một chút tuy nhiên tôi chưa xem đây là câu trả lời ở đây, tôi muốn chia sẻ những gì tôi thường làm cho các thiết lập và triển khai dựa trên git một trang web và nó hoạt động rất tốt, cũng như làm việc từ nhiều các thiết bị, địa điểm và với nhiều nhà phát triển (tất cả đều có repos cục bộ riêng mà họ hoạt động vì nó là phổ biến cho git).
Tôi chân thành có thể đề nghị thiết lập sau:
Nó cũng được phác thảo trong (nếu bạn cần một tài nguyên thứ hai để quấn đầu xung quanh nó):
Về cơ bản, nó hoạt động (với ít nhất ba repos) bằng cách:
- đưa trang web lên máy chủ trực tiếp dưới git,
- tạo một kho git trần mới trên máy chủ trực tiếp.
- Và sau đó rẽ nhánh từ kho lưu trữ trần để phát triển địa phương git repo (s).
Khi công việc hoàn thành, bạn chống lại repo từ xa mà bạn đã nhân bản. Repo trần có móc để đồng bộ với repo trực tiếp (trong các mã ở trên được gọi là số nguyên tố ).
Như cài đặt cụ thể của Wordpress trong repo, tôi có cái này .gitignore
:
# uploads are data, excluded from source tree
wp-content/uploads/
Phần còn lại bao gồm. Cấu hình plugin và chủ đề tôi giữ dưới sự kiểm soát phiên bản / cấu hình. Điều này cho phép tôi dễ dàng theo dõi các thay đổi và xem lại mã trước khi sử dụng trực tiếp. Tôi cũng có thể dễ dàng hợp nhất hơn với các cây từ xa với những thay đổi của riêng tôi. Điều đó đặc biệt hữu ích đối với lõi Wordpress có sẵn trên Github .
Điều này hoạt động khá tốt cho hầu hết các nhu cầu Wordpress của tôi. Repo trần ngăn bạn đẩy các thay đổi xung đột. Nó cũng đồng bộ hóa với một bản sao từ xa trước khi cập nhật trang web trực tiếp. Điều đó có nghĩa là, cập nhật trang web trực tiếp thường khá nhanh. Do các hook bạn thậm chí có thể gọi hook cập nhật Wordpress sau đó nếu bạn thích.
Nếu chưa thử nghiệm điều này có thể cải thiện được bao nhiêu với các móc Github, nhưng tôi thường không cần chúng vì mã nằm dưới sự kiểm soát phiên bản cục bộ, không phải Github.
Để thiết lập một hệ thống như vậy lần đầu tiên, bạn nên dành chút thời gian để đánh giá xem bạn đã có tất cả các công cụ có sẵn trên máy chủ từ xa chưa:
- Truy cập SSH
- GIT
- Một thư mục riêng bạn có thể đặt các tệp và thư mục con vào (ví dụ: repo git trần của bạn)
Thời gian thiết lập lần đầu tiên nên có thể trong vòng một hai giờ. toàn bộ môi trường và lần đầu tiên bạn xuất bản đẩy.
Tùy thuộc vào máy chủ của bạn, bạn cũng có thể muốn bảo vệ .git
thư mục khỏi truy cập web. Dưới đây là một số .htaccess
mã ví dụ thậm chí có Wordpress được đặt trong thư mục con, để lại không gian trong repo không được công bố trực tuyến (hữu ích):
Options -Indexes
# fix trailing slash for .git / make it disappear + .gitignore and similar files.
RedirectMatch 404 ^/\.git(.*)$
# mask 403 on .ht* as 404
<Files ~ "^\.ht">
Order Deny,Allow
Allow from all
Satisfy All
Redirect 404 /
</Files>
RewriteEngine On
RewriteBase /
# map everything into public and set environment var
# to tag the request being valid
RewriteCond %{ENV:REDIRECT_sitealias} !set
RewriteRule ^(.*)$ /public/$1 [E=sitealias:set,L]
Nói tóm lại, mọi thứ không nằm trong thư mục công cộng đều không trực tuyến. Trong thư mục công cộng có thể là cơ sở mã wordpress, ví dụ, .htaccess
ở đó bạn cần:
RewriteEngine On
# mask as 404 if directly accessed
RewriteCond %{ENV:REDIRECT_sitealias} !set
RewriteRule .* - [L,R=404]
Điều này ngăn chặn truy cập trực tiếp đến công chúng . Một phần của .htaccess này -foo bạn có thể tìm thấy được phác thảo ở đây: Yêu cầu .htaccess sẽ trả về 404 thay vì 403 . Đối với các biến môi trường, bạn cần kiểm tra xem nó có hoạt động trong môi trường của bạn không. Ngoài ra, bạn cần phải quyết định nếu bạn đặt nó dưới sự kiểm soát phiên bản hay không.
Nếu bạn có nhiều quyền kiểm soát hơn đối với việc lưu trữ, bạn có thể thực hiện nhiều nội dung hơn tại đây (và khác biệt / tối ưu hóa hơn), các ví dụ trên được nhắm mục tiêu cho các môi trường lưu trữ chia sẻ điển hình (cung cấp GIT, một số người dùng cho biết bạn có thể dễ dàng cài đặt nó như tốt, tôi thường yêu cầu chủ nhà của tôi cung cấp như vậy bởi vì tôi thích nếu họ quan tâm đó là những gì tôi trả cho họ).
Về mặt tiêu cực, điều này có một số vấn đề phổ biến cũng được nêu ra trong các câu trả lời khác. Một điều tôi không tự hào nhưng điều làm việc là cung cấp cho máy chủ phát triển thay đổi tệp lưu trữ của nó để máy chủ cơ sở dữ liệu trỏ đến bản sao phát triển. Vì vậy, bạn có thể giữ một cấu hình cơ sở dữ liệu. Không thực sự mát mẻ. bởi vì các thông tin
Tự động sao lưu
Tuy nhiên, tôi thường không quan tâm nhiều ở đây mà thay vào đó, có các bản sao lưu hàng ngày chạy trên các hệ thống từ xa đang dần dần được lưu trữ ở một vị trí từ xa khác. Điều đó dễ dàng và rẻ tiền và cho phép bạn khôi phục cả cài đặt Wordpress cũng như tải lên tệp, cơ sở dữ liệu và git repo. Ngoài ra đối với các lệnh sao lưu của tôi, tôi có thể không hoàn toàn ổn, nhưng những lệnh này hoạt động với tôi:
mysql: mysqldump --host=%s -u %s --password=%s %s| gzip > %s
git : git gc
git bundle
files: tar --force-local -czf %s %s
Điều tôi đề nghị ở đây là bạn giữ các quy trình xung quanh bản cài đặt Wordpress của bạn ra khỏi Wordpress. Chúng cần phải chạy trên một hệ thống cụ thể, vì vậy bạn thường không có chúng bên trong ứng dụng (ví dụ: ứng dụng có thể bị hỏng nhưng bạn cần phải tiếp tục hoạt động).
Kích hoạt cho tinh thần đồng đội
Một lợi ích tốt đẹp khác là trang web của bạn đã được kích hoạt để làm việc theo nhóm. Nhờ có repo trần bổ sung, bạn không thể làm gì sai và thậm chí bạn có thể chia sẻ các chi nhánh từ xa ngoài một chủ hoặc chi nhánh trực tiếp với các đồng nghiệp của mình.