2009-07-02 34 views
5

Tôi bắt đầu một dự án nơi 2 người sẽ phát triển một trang web trên WordPress. Nó cũng có thể là cần thiết để có một thiết lập máy chủ phát triển, nơi khách hàng của tôi có thể xem các thay đổi cho trang web trước khi chúng tôi đẩy nó trực tiếp. Cũng có thể có những thay đổi về cơ sở dữ liệu (như cài đặt wordpress) nên được đẩy tất cả các cách từ phát triển đến dev để sản xuất.Quy trình làm việc của bạn để tạo trang web dựa trên WordPress là gì?

Tôi tự hỏi luồng công việc tốt nhất là gì cho việc này. Tôi hiểu các khái niệm chung vì tôi thường phát triển trong Rails và do đó chạy di chuyển và sử dụng capistrano và git, nhưng tôi muốn có quy trình làm việc chặt chẽ cho một trang web WordPress. Có bất kỳ nhà phát triển WordPress có kinh nghiệm nào không?

Cập nhật: Có lẽ tôi đã không làm rõ điều này nhưng tôi hiểu được wordpress. Tôi đã tạo 5-10 blog wordpress và chức năng tùy chỉnh. Tuy nhiên, Tôi chưa bao giờ làm việc trên một trang web wordpress với nhiều người hoặc phải đối phó với việc có một môi trường phát triển, dàn dựng và sản xuất.

Cảm ơn bạn!

Trả lời

0

WordPress có xu hướng khá mô-đun; Tôi nghĩ rằng một điều khiển nguồn sẽ giúp, và có lẽ viết một kịch bản để tự động tải lên trang web xem trước. Bạn có thể giữ một thư mục chỉ được cập nhật bởi SVN và một thư mục làm việc.

WordPress là mô-đun theo nghĩa là nó có thể sử dụng Mẫu trang và Tiện ích cũng như plugin. Bạn có thể viết các phần của trang web của bạn dưới dạng tiện ích và plugin và đặt chúng lại với nhau để làm cho nó hoạt động. Đối với các trang có bố cục tùy chỉnh hoặc mã PHP, bạn có thể sử dụng Mẫu trang. Bạn hiếm khi cần phải chạm vào các tập tin cốt lõi của WordPress (cũng không nên bất cứ ai), vì vậy nếu bạn dính vào các công cụ mở rộng được đưa ra bởi WordPress, nó sẽ là tốt.

+0

ok, tôi hiểu được wordpress. có lẽ tôi nên làm điều đó rõ ràng hơn. câu hỏi này đặc biệt về quy trình làm việc và tôi đang tìm kiếm câu trả lời với các chi tiết cụ thể. tôi hy vọng trong trường hợp tôi cần viết kịch bản, mọi người có thể cung cấp liên kết – Tony

0

Bạn có thể muốn thử plugin Trình quản lý vai trò để quản lý quyền và Turnkey Wordpress để cài đặt nhanh chóng wp trong máy ảo. Tuy nhiên, không có manh mối về thứ gì đó có thể có vai trò git.

1

Quy trình làm việc huh? Vâng, tôi đã làm việc với một vài người trên các trang web WordPress phức tạp và vẫn làm. Chúng tôi sử dụng Subversion và Trac hầu hết thời gian và nó hiếm khi đến để thực hiện một số thay đổi trong cơ sở dữ liệu. Chỉ trong khi thiết lập tôi đoán.

Đây là kịch bản:

#!/bin/sh 
echo Copying $1 to $2 ... 
mysqldump -uroot -pPASSWORD $1 > /tmp/tempdump.sql 
mysql -uroot -pPASSWORD -e "CREATE DATABASE $2;" 
mysql -uroot -pPASSWORD $2 < /tmp/tempdump.sql 
rm -f /tmp/tempdump.sql 
echo Complete 

Đó là cách quá đơn giản, tôi biết, nhưng đó là cách tôi thích nó;) Đừng quên để thay thế PASSWORD với mật khẩu và pehaps bạn không muốn bạn sử dụng root của người dùng cho các mục đích này (tôi không thực sự quan tâm, đó là lý do tại sao tôi làm).

Lưu tập tin vào copydb.sh ví dụ, sau đó chmod + x copydb.sh và sau đó bạn có thể chạy nó như thế này: ./copydb.sh database1 database2;)

+0

để bạn sử dụng trang web dev hoặc chỉ một trang web sản xuất. nếu bạn sử dụng trang web dev, bạn sẽ phải sao chép cài đặt DB mỗi khi bạn thêm plugin. nó có lẽ không quá đau đớn mặc dù, chỉ muốn nhận được một số thông tin phản hồi về việc có hay không đó là một ý tưởng tồi – Tony

+0

mát mẻ .... quan tâm để chia sẻ kịch bản? – Tony

+0

Chắc chắn, hãy xem bản cập nhật câu trả lời – kovshenin

2

Để đối phó với loại hình này DEV và môi trường sản xuất, tôi đã viết một kịch bản perl để giúp tôi với những gì nếu không sẽ là công việc thủ công. Tôi đã đưa ra một số bước quen thuộc tên vì vậy tôi nhớ để chạy chúng theo thứ tự đúng. Tôi chỉ có DEV dưới SVN. Tôi tạo môi trường SẢN XUẤT mỗi lần với tập lệnh này. Bằng cách đó tôi không phải lo lắng về việc duy trì 2 nhánh mã.

Tôi đang sử dụng SVN vì vậy tôi chọn một thư mục thanh toán mới (như/tmp/foobar) của mã DEV của tôi. Nó sẽ không ở đó rất lâu.

Tùy chọn bước 0: diff cấu trúc cơ sở dữ liệu

mysqldump -d -u USER -pPASS mydotcom > production.sql 
mysqldump -d -u USER -pPASS mydotcom_dev > development.sql 
vim -d production.sql development.sql 

Đôi khi plugin sẽ thêm bảng, và điều này sẽ cho thấy. Nếu không, tôi phát lại các thay đổi được thực hiện trong các bảng (cài đặt một plugin) khi nó không có giá trị để phân biệt các bảng nhất định và sao chép các câu lệnh SQL.

bước 1 sạch: Tập lệnh xóa tất cả các tệp trong thư mục hiện tại, thực hiện thanh toán svn mới của nhánh DEV. Thanh toán mới này sẽ được chuyển thành mã PRODUCTION và được sao chép vào webroot của nó.

bước 2 thực hiện: perl chạy tìm kiếm vim và thay thế tên cơ sở dữ liệu trong wpconfig.php. Việc tìm kiếm và thay thế cũng dễ dàng thực hiện trong perl.

system('vim -c "%s/define(\'DB_NAME\', \'mydotcom_dev\'/define(\'DB_NAME\', \'mydotcom\'/g | w | q" wp-config.php'); 

Xóa thư mục tải lên tệp cục bộ (để chúng tôi không ghi đè lên thư mục SẢN XUẤT). wpcontent/uploads Tôi tin rằng nó đang được cài đặt chuẩn.

Một tìm và thay thế trên tất cả các tập tin văn bản trong phạm vi dự án mà có url DEV của tôi, ví dụ

vim -c "%s/dev\.mydot\.com/www.mydot.com/g | w | q FILENAME.php 

bước 3 cài đặt. Sao lưu wpcontent/uploads bằng dircopy() để an toàn. Thực hiện một dircopy() của thư mục được dọn dẹp này đến webroot PRODUCTION. Hủy bỏ tất cả các thư mục svn trong webroot như vậy:

find /PRODUCTION/WEBROOT -ignore_readdir_race -name .svn -exec rm -fr {} \; >/dev/null 2>&1 

Bây giờ đang DEV của bạn đã được chuyển đổi thành mã SẢN XUẤT bạn thay thế tất cả các URL hardcoded và giữ an toàn xung quanh các thư mục upload mà không có trong SVN. Bạn thậm chí có thể có nó dừng lại và bắt đầu apache cho bạn quá. Tôi hy vọng giải pháp của tôi sẽ giúp giải quyết vấn đề của bạn.

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