手头有几个尚未开发的域名,反正用的是AWS,就想着为每个域名创建一个简单站点。思路很简单,先做好了一个模板站点,然后拷贝,修改相应的东西(如url,用户名)。
目录
1. 需求描述
手头有几个尚未开发的域名,如下:
- to31.com 去荷兰(To Netherlands, 31为荷兰的国际区号)
- to47.com 去挪威(To Norway,47为挪威的国际区号)
- to49.com 去德国(To Germany,49为德国的国际区号)
- to52.com 去墨西哥(To Mexico,52为墨西哥的国际区号)
- to63.com 去菲律宾(To Philippines,63为菲律宾的国际区号)
- to65.com 去新加坡(To Singapore,65为新加坡的国际区号)
预期能为这些域名找个做出国服务(如旅游、出国留学、移民)的好婆家,但在找到好归属之前,先为他们分别做一个站点。我博客用的主机是AWS,也不需要加大投入,加上对wordpress建站也比较熟,就想着为以上域名分别做一个站点,鉴于内容类似,很自然就想着,如何能批量做几个wordpress站点。
思路倒是很简单:先建好一个模板站点(比如主题、导航条、插件、投放广告),复制该站点,做一些必要的修改(主要是url),就可以得到一个新的站点。
2. 搭建一个模板站点
我前前后后使用主机有:香港主机91(巨坑)、新浪云主机(世界上没有免费的午餐)、亚马逊云主机AWS(有些钱还是可以花的)。之前整理的笔记如下:
(1)亚马逊AWS
- 已将博客迁移到亚马逊云:简要笔记
- AWS EC2一个实例下安装多个wordpress
- 将AWS EC2中网页服务器目录/var/www/的权限设到最优
- AWS EC2绑定域名:Elastic IPs, A记录, CNAME
- 使用DNSpod域名解析服务器
(2)新浪云
- 在新浪云搭建wordpress博客:从本地源码到独立域名访问
- 在新浪云搭建wordpress博客:解决uploads目录权限问题
- wordpress从新浪云SAE至亚马逊云AWS:批量修改图片URL
- 本地安装WordPress调试以及上传到远程服务器
3. 批量建站
3.1 需要修改的地方
需要修改的地方如下,其中绿色标注的(site icon和header image手动修改):
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中网页服务器目录/var/www/的权限设到最优》,主要命令如下(以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. 总结
实际上,上述所有步骤可以写个脚本自动完成。但鉴于批量建的站不多,有些工作手工做了。
专题: AWS上建立wordpress站点 (7/10)
微信赞赏
支付宝赞赏