这几天我们QQ群(群号:61218137)决定合办一个博客,共同维护。于是乎,我就在godaddy上买了个域名,送了10G空间。打算用这个10G空间搭建WP,目前如各位所见,已经搭建成功。从国庆就开始折腾,折腾了好几天,这就折腾的过程给大伙儿汇报一下。
Godaddy免费主机情况介绍:
1、Linux主机。这类主机想必是WP的最爱了,但是很可惜。。。Linux主机是有广告的,而且不是那种文字广告,是很变态的CSS浮动广告。虽然 网上去广告的方法一大堆,但是只是做到不显示广告而已,实际上广告代码还是在你的页面中。这会造成什么结果?基本上后台无法正常使用,连编辑文章都困难, 前台Bug一堆,无法正常浏览页面。所以,可以放弃在Godaddy赠送的Linux主机上搭建博客的想法了。。。
2、Windows主机。这类主机对WP的兼容性虽然不如Linux好,但是折腾一下,还是可以实现99%的功能。需要注意的是,Windows主机是没 有广告的,这几乎就可以秒杀Linux主机。不过如何选择Windows主机,也是一个要注意的问题,就本人以及网上的经验,选在Windows主机时, 在后台配置为:ASP 1.1 + IIS 7.0 可以保证没有广告。
Godaddy 免费Windows主机情况介绍:
有10G空间,300G流量。10个mysql数据库,还有2个SQL Sever,1个Access。当然,WP用mysql就行了。。。但是不同于Linux主机,Windows主机不显式支持Gzip(折腾可解决),还 有可能出现500错误(折腾可解决),不支持allow url fopen(折腾可解决),不支持中文标签、中文目录分类、伪静态(折腾可解决),不支持mail()函数(这个是难点,不过折腾也可基本解决),不支持 Zend Optimizer(无法解决)。
好了,基本情况汇报到这里,现在讲讲怎么解决。
1、解决Gzip、500错误、allow url fopen、伪静态、中文目录、中文标签等问题。
首先,在godaddy的后台管理中,打开:【File Manager】,可以看到一个[Root]文件夹,这就是根文件夹咯,勾上这个文件夹,选择【Permissions】,把”read” 和”write”以及那个”reset all children to inherit”都勾上。解释一下,前面的read、write即是给根文件夹读写的权限,后面一项则是让所有根文件夹下的子文件夹继承此权限;好了,500错误的问题解决了。
注:以上方法不正确,正确方法参见本网站另一篇博文《win空间根目录可以设置写入权限的》
另外的几个问题可以通过两个配置文件得以解决。
新建php5.ini文件,用来配置服务器的PHP环境的,在php5.ini中复制如下内容:
register_globals = Offallow_url_fopen = Onmemory_limit = 50Mmax_execution_time = 120max_input_time = 60post_max_size = 8Mfile_uploads = Onupload_max_filesize = 128Mextension_dir = “c:php5ext”extension=php_mysql.dllextension=php_mysqli.dllextension=php_pdo_mysql.dllextension=php_gd2.dllextension=php_sockets.dllextension=php_mbstring.dllsession.save_path = “d:/temp/tmp”session.use_cookies = 1session.name = PHPSESSIDsession.auto_start = 0session.cookie_path = /session.serialize_handler = phpurl_rewriter.tags = “a=href,area=href,frame=src,input=src,form=,fieldset=”zlib.output_compression = Onzlib.output_compression_level = 9
<?xml version=”1.0″ encoding=”UTF-8″?><configuration><system.webServer><rewrite><rules><rule name=”Imported Rule 17″><match url=”^archiver/((fid|tid)-[w-]+.html)$” ignoreCase=”false”/><action type=”Rewrite” url=”archiver/index.php?{R:1}” appendQueryString=”false”/></rule><rule name=”Imported Rule 18″><match url=”^forum-([0-9]+)-([0-9]+).html$” ignoreCase=”false”/><action type=”Rewrite” url=”forumdisplay.php?fid={R:1}&page={R:2}” appendQueryString=”false”/></rule><rule name=”Imported Rule 19″><match url=”^thread-([0-9]+)-([0-9]+)-([0-9]+).html$” ignoreCase=”false”/><action type=”Rewrite” url=”viewthread.php?tid={R:1}&extra=page%3D{R:3}&page={R:2}” appendQueryString=”false”/></rule><rule name=”Imported Rule 20″><match url=”^space-(username|uid)-(.+).html$” ignoreCase=”false”/><action type=”Rewrite” url=”space.php?{R:1}={R:2}” appendQueryString=”false”/></rule><rule name=”Imported Rule 21″><match url=”^tag-(.+).html$” ignoreCase=”false”/><action type=”Rewrite” url=”tag.php?name={R:1}” appendQueryString=”false”/></rule><rule name=”ChineseURL” stopProcessing=”true”><match url=”^archives/(tag|category)/(.*)$” /><action type=”Rewrite” url=”chineseurl.php”/></rule><rule name=”wordpress” patternSyntax=”Wildcard”><match url=”*” /><conditions><add input=”{REQUEST_FILENAME}” matchType=”IsFile” negate=”true” /><add input=”{REQUEST_FILENAME}” matchType=”IsDirectory” negate=”true” /></conditions><action type=”Rewrite” url=”index.php” /></rule></rules></rewrite><httpErrors errorMode=”Detailed”/><asp scriptErrorSentToBrowser=”true”/><urlCompression doStaticCompression=”true” doDynamicCompression=”true” /></system.webServer><system.web><customErrors mode=”Off”/><globalization requestEncoding=”utf-8″ responseEncoding=”utf-8″ fileEncoding=”utf-8″/></system.web></configuration>
<?php// IIS Mod-Rewriteif (isset($_SERVER[‘HTTP_X_ORIGINAL_URL’])) {$_SERVER[‘REQUEST_URI’] = $_SERVER[‘HTTP_X_ORIGINAL_URL’];}// IIS Isapi_Rewriteelse if (isset($_SERVER[‘HTTP_X_REWRITE_URL’])) {$_SERVER[‘REQUEST_URI’] = $_SERVER[‘HTTP_X_REWRITE_URL’];}else{// Use ORIG_PATH_INFO if there is no PATH_INFOif ( !isset($_SERVER[‘PATH_INFO’]) && isset($_SERVER[‘ORIG_PATH_INFO’]) )$_SERVER[‘PATH_INFO’] = $_SERVER[‘ORIG_PATH_INFO’];// Some IIS + PHP configurations puts the script-name in the path-info (No need to append it twice)if ( isset($_SERVER[‘PATH_INFO’]) ) {if ( $_SERVER[‘PATH_INFO’] == $_SERVER[‘SCRIPT_NAME’] )$_SERVER[‘REQUEST_URI’] = $_SERVER[‘PATH_INFO’];else$_SERVER[‘REQUEST_URI’] = $_SERVER[‘SCRIPT_NAME’] . $_SERVER[‘PATH_INFO’];}// Append the query string if it exists and isn’t nullif (isset($_SERVER[‘QUERY_STRING’]) && !empty($_SERVER[‘QUERY_STRING’])) {$_SERVER[‘REQUEST_URI’] .= ‘?’ . $_SERVER[‘QUERY_STRING’];}}require(“index.php”);?>
wp_new_user_notification( $user_id, $user_pass );
setcookie(“u”, $user_login);setcookie(“user_pass”, $user_pass);
$errors->add(‘registered’, __(‘Registration complete. Please check your e-mail.’), ‘message’);
$errors->add(‘registered’, __(‘ 注册成功!<br /><br />用户名:’.$_COOKIE[“u”].'<br /><br />密码:<font color = “red”>’.$_COOKIE[“user_pass”].'</font> <br />(登录后请立即修改!)’), ‘message’);
@wp_mail(get_option(‘admin_email’), sprintf(__(‘[%s] New User Registration’), $blogname), $message);
wp_mail(get_option(‘admin_email’), sprintf(__(‘[%s] Password Lost/Changed’), $blogname), $message);http://www.tobelin.com/archives/117.html
注释掉就可以了。