用了静态网页之后,主机就空闲了,当初辛辛苦苦跟工信部折腾了好几个月连案都备好了。。总感觉特别亏(其实就是舍不得wordpress的搜索功能。。)转念一想,拿wp当图片上传服务也是不错啊,这样就省去找第三方图床了。

我的目标:

  • www.intzero.com 显示主页面。
  • blog.intzero.com 对应静态site。
  • wp.intzero.com 对应wordpress。

我这里用的是apache来实现的,也可以用nginx。

因为我的测试平台是Ubuntu,故跟网上的配置文件有些不一样。如网上说的apache配置文件http.conf,在我的平台下是/etc/apache2/apache2.conf

Apache下多站点配置

首先修改默认的VirtualHost,然后再添加其他的VirtualHost。

1.sudo vi /etc/apache2/apache2.conf,设置:

ServerName 'www.intzero.com'
<Directory "your_home_page_path">
...
</Directory>

注意该文件的最后两行为:

IncludeOptional conf-enabled/*.conf
IncludeOptional sites-enabled/*.conf

故把新加的站点配置文件放在sites-enabled目录下。

继续,sudo vi /etc/apache2/sites-available/000-default.conf,设置:

DocumentRoot your_home_page_path

2.添加新站点配置文件,并放在sites-available中。

$ cd /etc/apache2/sites-available
$ sudo touch wp-intzero-com.conf
$ sudo touch blog-intzero-com.conf

sudo vi blog-intzero-com.conf,添加:

<VirtualHost *:80>
    ServerAdmin intzero@outlook.com
    ServerName blog.intzero.com
    DocumentRoot your_jekyll_site_path/_site

    <Directory "your_jekyll_site_path/_site">
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

sudo vi wp-intzero-com.conf,添加:

<VirtualHost *:80>
    ServerAdmin intzero@outlook.com
    ServerName wp.intzero.com
    DocumentRoot your_wordpress_site_path

    <Directory "your_wordpress_site_path">
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

然后建立软链接到sites-enabled目录:

$ cd /etc/apache2/sites-enabled
$ sudo ln -s /etc/apache2/sites-available/www-intzero-com.conf /etc/apache2/sites-enabled/www-intzero-com.conf
$ sudo ln -s /etc/apache2/sites-available/blog-intzero-com.conf /etc/apache2/sites-enabled/blog-intzero-com.conf

重启:

$ sudo service apache2 restart

参考:

修改数据库

最后还要修改wordpress数据库里的链接:

$ mysql -u[user_name] -p[your_passwd]
(1) UPDATE wp_options SET option_value = replace( option_value, 'your old web_site','your new web_site') WHERE option_name = 'home' OR option_name ='siteurl';
(2) UPDATE wp_posts SET post_content = replace( post_content, 'old.com','new.com') ;
(3) UPDATE wp_comments SET comment_content = replace(comment_content, 'old.com','new.com') ;
(4) UPDATE wp_comments SET comment_author_url = replace(comment_author_url, 'old.com','new.com') ;

额外说一点,

Wordpress自带有多站点功能,前提是你的站点都是wordpress。当然我就不属于这种情况了。

可参考:WordPress多站点的创建

首先开启多站点功能(默认是关闭的),修改wordpress配置文件:vi wp-config.php。找到

/* That's all, stop editing! Happy blogging. */

在上面这行代码的前面加上:

define('WP_ALLOW_MULTISITE',true);

回到wordpress后台界面,点击工具 -> 配置网络

因为不是新创建的wordpress,故只能用子域名模式,而不是子目录模式。点击安装,然后根据提示,修改wp-config.php.htaccess

然后在Dashboard的左上角就可以设置不同的站点,如新建一个站点。

说明:主站点还是原来的intzero.com,子站点为你后来新加的。

对于删除多站点:

除了要恢复上述修改的文件之外,还有删除数据库多出来的表。