手头有几个尚未开发的域名,反正用的是AWS,就想着为每个域名创建一个简单站点。思路很简单,先做好了一个模板站点,然后拷贝,修改相应的东西(如url,用户名)。

1. 需求描述

手头有几个尚未开发的域名,希望能为这些域名找个做出国服务(如旅游、出国留学、移民)的好婆家,但在找到好归属之前,先为他们分别做一个站点。我博客用的主机是AWS,也不需要加大投入,加上对wordpress建站也比较熟,就想着为以上域名分别做一个站点,鉴于内容类似,很自然就想着,如何能批量做几个wordpress站点。

思路倒是很简单:先建好一个模板站点(比如主题、导航条、插件、投放广告),复制该站点,做一些必要的修改(主要是url),就可以得到一个新的站点。

2. 搭建一个模板站点

我前前后后使用主机有:香港主机91(巨坑)、新浪云主机(世界上没有免费的午餐)、亚马逊云主机AWS(有些钱还是可以花的)。如果搭建一个WordPress站点,见其他博文。

3. 批量建站

3.1 需要修改的地方

需要修改的地方如下,其中绿色标注的(site icon和header image手动修改):

bulk-set-up-wordpress-changes

3.2 复制数据库并修改

(1)复制数据库

复制数据库,我直接在phpmyadmin上面完成的,具体操作方法如下:

select database (e.g., to49) --> Operations --> Copy database to: --> type new database name (e.g., to47) --> click Go

(2)修改数据库内容

如3.1所述,需要修改url、博客名称、博客描述、用户名、分类名称,SQL源代码如下(最主要是要找到需要修改的内容都在哪些表里):

SET @old_url='to49.com';
SET @new_url='to47.com';


-- ------- change urls ------------
UPDATE wp_options SET option_value = replace(option_value, @old_url, @new_url) WHERE option_name = 'home' OR option_name = 'siteurl';

UPDATE wp_posts SET guid = replace(guid, @old_url, @new_url);
-- UPDATE wp_posts SET post_content = replace(post_content, @old_url, @new_url);

UPDATE wp_postmeta SET meta_value = replace(meta_value, @old_url, @new_url);


-- -------- change user name ---------
SET @old_user='to49';
SET @new_user='to47';

UPDATE wp_users SET user_login = replace(user_login, @old_user, @new_user);
UPDATE wp_users SET user_nicename = replace(user_nicename, @old_user, @new_user);
UPDATE wp_users SET display_name = replace(display_name, @old_user, @new_user);

UPDATE wp_usermeta SET meta_value = replace(meta_value, @old_user, @new_user);

-- ----------- change country ---------------
SET @old_country='Germany';
SET @new_country='Norway';

-- change blog name and blog description
UPDATE wp_options SET option_value = replace(option_value, @old_Country, @new_Country) WHERE option_name = 'blogname' OR option_name = 'blogdescription';

SET @old_country_code='49';
SET @new_country_code='47';
UPDATE wp_options SET option_value = replace(option_value, @old_country_code, @new_country_code) WHERE option_name = 'blogdescription';

-- change category name
UPDATE wp_terms SET name = replace(name, @old_country, @new_country);
UPDATE wp_terms SET slug = replace(slug, LOWER(@old_country), LOWER(@new_country)); -- germany --> norway

3.3 复制WordPress源码

通过以下命令复制模板站点的源码,并修改wp-config.php的数据库名称(如to49 --> to47):

/var/www/$ cp -R to49.com to47.com

值得注意的是,复制过后需要修改文件的权限,否则无法安装主题和插件,详情参考博文《将AWS EC2中网页服务器目录的权限设到最优》,主要命令如下(以to47为例):

sudo chown -R ubuntu:www-pub /var/www/to47.com
find /var/www/to47.com -type d -exec chmod 2775 {} +
find /var/www/to47.com -type f -exec chmod 0664 {} +

3.4 添加域名到hosts文件

打开/etc/hosts文件,在文件末尾将上述域名添加进去:

#added by sparkandshine
#xx.xx.xx.xx为AWS EC2 Elastic IP
xx.xx.xx.xx to49.com
xx.xx.xx.xx to47.com

3.5 创建apache配置文件

/etc/apache2/site-available/目录下创建apache配置文件(可以将其放在一个文件,如others.conf),内容如下:

<VirtualHost *:80>
DocumentRoot /var/www/to49.com
Servername to49.com
ServerAlias www.to49.com
</VirtualHost>

<VirtualHost *:80>
DocumentRoot /var/www/to31.com
Servername to31.com
ServerAlias www.to31.com
</VirtualHost>

<VirtualHost *:80>
DocumentRoot /var/www/to47.com
Servername to47.com
ServerAlias www.to47.com
</VirtualHost>

<VirtualHost *:80>
DocumentRoot /var/www/to52.com
Servername to52.com
ServerAlias www.to52.com
</VirtualHost>

<VirtualHost *:80>
DocumentRoot /var/www/to65.com
Servername to65.com
ServerAlias www.to65.com
</VirtualHost>

<VirtualHost *:80>
DocumentRoot /var/www/to63.com
Servername to63.com
ServerAlias www.to63.com
</VirtualHost>

启用配置文件,重新加载apache配置文件,命令如下:

sudo a2ensite others.conf
sudo /etc/init.d/apache2 reload

3.6 修改站标和header image

完成了上述的步骤,所以站点都能正常访问了,登录Dashboard,手动修改site icon和header image.

4. 总结

实际上,上述所有步骤可以写个脚本自动完成。但鉴于批量建的站不多,有些工作手工做了。

本文系Spark & Shine原创,转载需注明出处本文最近一次修改时间 2022-04-17 11:39

results matching ""

    No results matching ""