建站经验 experience
当前位置:首页 > 网站建设专题 > 建站经验
把网站从子目录迁到根目录
发布日期:2011-08-29 阅读次数:703 字体大小:

这个周末就忙了一件事情——把微服私访从/home/wwwroot/wordpress迁移到了/home/wwwroot目录下面!

至于为什么要花两天的时间来做这件事情,除了瞎折腾的主观原因之外,还有以下的客观原因(这些问题在迁移之前存在,而迁移之后被解决了,至于问题的真正原因是不是跟子目录和根目录的关目前博主还无法证实。不过既然问题通过这样的方式解决了,就分享出来给大家参考):

第一:网站在子目录下面ICO图标显示不出来;

第二:adsense.txt robots.txt license.txt等存在于网站根目录下的txt文件无法通过浏览器来访问,而是转向了404错误页面;

第三:网站地图指向了404错误页面;

基于以上原因,博主才觉得破釜沉舟给博客做一次“大手术”。

你可不要小瞧这从子目录到根目录的迁移,就这个简单的迁移足足花去了我两天的时间!好了,废话少说,先回顾一下迁移的经过吧!

第一步:将wordpress文件夹下面的所有文件复制到wwwroot文件夹下面来

这一步我是通过PUTTY连接VPS,然后用linux的命令 cp -rf /home/wwwroot/wordpress/* /home/wwwroot 来实现的!

第二步:修改nginx.conf文件

这一步依然可以在PUTTY里面操作。通过linux命令 nano /usr/local/nginx/conf/nginx.conf 修改之如下内容(红色部分为修改过的内容)

user www www;

worker_processes 4;

worker_cpu_affinity 0001 0010 0100 1000;

error_log /home/wwwlogs/nginx_error.log crit;

pid /usr/local/nginx/logs/nginx.pid;

#Specifies the value for maximum file descriptors that can be opened by this process.

worker_rlimit_nofile 51200;

events

{

use epoll;

worker_connections 51200;

}

http

{

include mime.types;

default_type application/octet-stream;

server_names_hash_bucket_size 128;

client_header_buffer_size 32k;

large_client_header_buffers 4 32k;

client_max_body_size 50m;

sendfile on;

tcp_nopush on;

keepalive_timeout 60;

tcp_nodelay on;

fastcgi_connect_timeout 300;

fastcgi_send_timeout 300;

fastcgi_read_timeout 300;

fastcgi_buffer_size 64k;

fastcgi_buffers 4 64k;

fastcgi_busy_buffers_size 128k;

fastcgi_temp_file_write_size 256k;

gzip on;

gzip_min_length 1k;

gzip_buffers 4 16k;

gzip_http_version 1.0;

gzip_comp_level 2;

gzip_types text/plain application/x-javascript text/css application/xml;

gzip_vary on;

#limit_zone crawler $binary_remote_addr 10m;

server

{

listen 80;

server_name viful.com;

index index.html index.htm index.php;

root /home/wwwroot;

location /

{

index index.html index.htm index.php;

root /home/wwwroot;

if (-f $request_filename){

break;

}

set $supercache_file '';

set $supercache_uri $request_uri;

if ($request_method = POST) {

set $supercache_uri '';

}

if ($query_string) {

set $supercache_uri ‘’;

}

if ($http_cookie ~* "comment_author_|wordpress_logged_|wp-postpass_") {

set $supercache_uri '';

}

if ($supercache_uri ~ ^(.+)$) {

set $supercache_file /wp-content/cache/supercache/$http_host/$1index.html;

}

if (-f $document_root$supercache_file) {

rewrite ^(.*)$ $supercache_file break;

}

if (!-e $request_filename) {

rewrite ./index.php last;

}

}

location ~ .*\.(php|php5)?$

{

fastcgi_pass unix:/tmp/php-cgi.sock;

fastcgi_index index.php;

include fcgi.conf;

}

location /status {

stub_status on;

access_log off;

}

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

{

expires 30d;

}

location ~ .*\.(js|css)?$

{

expires 12h;

}

log_format access ‘$remote_addr - $remote_user $time_local "$request"'

'$status $body_bytes_sent "$http_referer"'

'"$http_user_agent" $http_x_forwarded_for';

access_log /home/wwwlogs/access.log access;

}

include vhost/*.conf;

}

第三步:修改数据库文件

这一步通过访问www.viful.com/phpmyadmin 来完成的!(这也是所有工作中最复杂繁琐的一步)进入phpmyadmin后台之后,将博客数据库名称下牵涉到 www.viful.com/wordpress/wp-content这样的文件全部修改成 www.viful.com/wp-content样子的……

尼玛呀……这一步足足花掉我一个下午加一个晚上的时间啊!

第四步:修改文件夹权限

到了这一步我可以进管理面板了,但是发现竟然上传文件的时候竟然又出现了新装wordpress一样的问题!不过这个难不倒我了!在putty里面输入linux命令:

# cd /home/wwwroot

# chmod -R 755 /home/wwwroot

# chown -R www /home/wwwroot

修改了文件夹权限之后基本上就可以正常使用了!

第五步:利用插件“失效链接检查器”来全面检查失效的连接(主要是在数据库里面没有修改完的链接都可以用这个插件检查出来)

按照好这个插件之后再控制板的设置里面找到“链接检测器”——高级——重新检查所有页面

在检测器检查完成之后,如果发现有失效的连接他就会显示出来,然后再一项一项修改连接。我的大部分是把www.viful.com/wordpress/wp-content……修改成www.viful.com/wp-content……主要的样式!大概修改了一两百个吧!累死个人了……

第六步:删除原来的wordpress文件夹

如果经过上面的几步操作之后你发现你的网站以后和之前的一模一样了,那么你就可以删除原来的wordpress文件夹了!毕竟几十兆的体积在那里,心里怪怪的!

在PUTTY里面输入命令 rm -rf /home/wwwroot/wordpress

这个手术说起来就几步,不过是步步艰难!奉劝诸君如果没有必要莫要这样去迁移文件夹!否则只要一步出错,那么你的博客就可能毁得面目全非!如果那样,你可别来找博主的麻烦啊!嘎嘎。

原文地址:微服私访