与@PerformalStudent就离线开发达成一致。如果您从在Web服务器上安装开始,然后始终按照PC开发人员的方向进行复制,则不会覆盖用户数据。中有两条记录wp_options
每次复制数据库时需要修改的表包括siteurl
和home
需要更改为指向本地PC Web服务器。
为此,我使用windows/etc/hosts文件(在windows 7上,您需要以管理员身份运行编辑器来编辑此文件,它位于C:\\Windows\\System32\\drivers\\etc\\hosts
). 为您的站点创建静态DNS名称,如下所示:
127.0.0.1 website1 bikefun website3
然后编辑您的Web服务器配置以创建虚拟主机。我在使用WAMP,所以我编辑
C:\\wamp\\bin\\apache\\apache2.4.9\\conf\\extra\\httpd-vhosts.conf
并添加如下部分
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "c:/wamp/www/bikefun"
ServerName bikefun
</VirtualHost>
然后您可以将浏览器指向
http://bikefun
(例如)。这比通过
http://localhost/src/bikefun
例如,除了其他以外,它还保持PC上的相对路径与生产服务器上的相对路径相同。
要刷新本地版本,使其与Web服务器相同,需要执行两个步骤。您必须最频繁地执行的操作是数据库。我使用SQLyog,它可以将远程数据库复制到本地PC上,第一次这样做时,您可以在本地创建一个空数据库,然后切换到服务器,右键单击数据库名称并“复制到其他主机”。复制时要小心,以免意外覆盖生产数据库,请确保正在复制到本地PC!
如果您使用的是cPanel,那么可以下载数据库的转储并在本地执行。
复制后,需要在wp_options
桌子
第一次设置本地PC版本时,需要从Web服务器复制webroot文件,或者在本地复制确切的安装。例如,在Web服务器上,转到webroot并使用以下内容
tar -czf name.tgz website-directory/
然后复制
name.tgz
并使用类似于7-zip的东西将其解压缩到本地webroot中。
随后,我很少重复文件的副本,您可以通过执行相同的版本更新和安装相同的插件等来保持本地副本的同步。但如果本地PC上出现问题,您可以随时重复文件副本。
如果您正在修改或编写插件或主题,则需要版本控制。我几乎总是创建一个子主题并将其置于版本控制中,但如果不修改主题,则不需要这样做。创建新插件或编辑现有插件后,我会在插件或主题目录中创建一个GIT存储库,并将其克隆到github。com。然后我从github克隆到Web服务器(假设您在本地PC上创建/编辑了它)。这样,您可以在本地进行开发,并将更改推送到github(或您选择的存储库),然后将它们拉到Web服务器中,以升级那里的插件/主题。
git pull origin master
尽管您在本地PC上进行了仔细的测试,但这使您能够在出现问题时回滚。因此,您的WordPress Webroot都将有一个或多个GIT存储库嵌入到
wp-content
在…内
plugins
或
themes
目录要从github部署到live server,我使用一个简单的shell脚本:
#!/bin/bash
# Argument = -w <website> -t <theme> -n <name>
# if -t is not given, plugin is assumed
usage()
{
cat << EOF
usage: $0 options
Deploy a git repository to a wordpress theme or plugin
OPTIONS:
-h Show this message
-w website. e.g. bikefun
-t it\'s a theme, otherwise it\'s a plugin
-n name of plugin or theme
EOF
}
THEME="false"
WEBSITE=
NAME=
# anything that needs a parameter has a : after it.
while getopts .htw:n:. OPTION
do
case $OPTION in
h)
usage
exit 1
;;
t)
THEME="true"
;;
w) WEBSITE=$OPTARG
;;
n)
NAME=$OPTARG
;;
?)
usage
exit
;;
esac
done
if [[ -z $WEBSITE ]]
then
usage
exit 1
fi
if [[ -z $NAME ]]
then
usage
exit 1
fi
# make sure the repository is up-to-date
cd /home/lamp/webroot
cd $WEBSITE
cd wp-content
if [ $THEME = "true" ]
then
cd themes
else
cd plugins
fi
cd $NAME
# overwrite any local changes -
# this gives freedom to hotfix directly on the server and later overwrite it
git fetch origin master
git reset --hard FETCH_HEAD
git clean -df
service apache2 reload
如果您与同一项目中的其他开发人员一起工作,并且每个人都有一个本地开发人员副本,请使用GIT Scale。但我也发现它很方便,因为我可以在台式机和笔记本电脑之间切换。
有时我在没有互联网连接的笔记本电脑上工作。这是一个很好的方式来填补一个漫长的飞机飞行,没有中断或分心,而你的工作!以下是一篇关于如何在脱机使用WordPress时阻止超时减慢一切的文章:http://www.cbdweb.net/wordpress-development-offline/