SAE装配原版wordpress4.1绑定个人域名搭建个人博客

SAE安装原版wordpress4.1绑定个人域名搭建个人博客

【转载请注明出,作者:高绍臣,博客地址:www.gaoshaochen.com】

         首先说为什么要搭建个人博客呢?写博客的好处自然不用多说,可以巩固自己的知识、结交朋友、甚至可以作为自己的简历……很多人由于方便管理、节省时间都选择了在****或者博客园上写文章,对于写文章来说那的确是很好的选择,只是有的人偏偏不喜欢统一(呵呵,玩笑)。搭建个人博客只是我觉得自己对于博客的功能需求还要多一点,所以选择了搭建自己的博客,选择SAE是因为便宜几乎0成本,选择wordpress是因为写一个博客的项目的确需要一些时间成本,为了节省时间只能先使用wordpress,并且wordpress做的的确很不错(为了增加功能性需求日后肯定也会换掉wordpress)。

申请SAE

         SAE是新浪推出的一款云产品,功能跟百度的BAE、阿里的阿里云服务器、腾讯的腾讯云服务器类似,都可以充当服务器来使用,我们可以在上面部署自己的应用,选择的SAE的原因就是SAE的成本几乎为0,在SAE上的消费都是按照云豆来计算的,注册即可获得500云豆,基本够一个月的使用,通过实名认证会送2000,可以使用半年,而通过开发者认证每个月可以补贴1w-3w云豆几乎可以免费使用,而且开发者认证并不是特别难,认证条件参照http://sae.sina.com.cn/?m=devlevel,SAE注册地址http://weibo.com/signup/signup.php后,我们便可以创建应用,在我的首页里创建新应用,填写应用的信息后,开发语言我们选择php,空应用。

SAE装配原版wordpress4.1绑定个人域名搭建个人博客

         进入应用管理后,我们选择代码管理,新建一个版本1:(刚创建的已用肯定很小,这个是我已经上传代码的截图)

SAE装配原版wordpress4.1绑定个人域名搭建个人博客

         在服务管理里面,点击mysql->初始化。数据库不用说了吧。

         选择storage(为我们提供分布式文件存储服务,可以为我们存储网站上上传的文件图片),新建domain,填写domainname(后面我们还会用到)

SAE装配原版wordpress4.1绑定个人域名搭建个人博客SAE装配原版wordpress4.1绑定个人域名搭建个人博客

         选择memcache,提供分布式缓存。加快访问速度。这里我初始化的时候选择了24M

SAE装配原版wordpress4.1绑定个人域名搭建个人博客

安装wordpress

         SAE设置好后,开始安装wordpress(使用PHP语言开发的博客平台)下载wordpress的官方地址是:http://cn.wordpress.org/,我当时下载的是4.1版本,这里我在百度云分享了我下载的 wordpress,链接:http://pan.baidu.com/s/1jG5lk3O 密码:f24y,下载解压完后,将根目录下的wp-config-sample.php重命名为wp-config.php这就是wordpress的配置文件,打开,修改配置文件wp-config.php如下

         将mysql的基本配置改为:

<span style="font-family:System;">// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
/** WordPress数据库的名称 */
define('DB_NAME', SAE_MYSQL_DB);
/** MySQL数据库用户名 */
define('DB_USER', SAE_MYSQL_USER);
/** MySQL数据库密码 */
define('DB_PASSWORD', SAE_MYSQL_PASS);
/** MySQL主机 */
define('DB_HOST',SAE_MYSQL_HOST_M.':'.SAE_MYSQL_PORT);</span>

         并添加storage作为我们的存储路径。(填写时根据domainname来修改,我创建storage时domainname是upload)

<span style="font-family:System;">define('SAE_STORAGE', 'upload');
define('SAE_DIR','saestor://'.SAE_STORAGE.'/uploads');
define('SAE_URL','http://'.$_SERVER['HTTP_APPNAME'].'-'.SAE_STORAGE.'.stor.sinaapp.com/uploads');</span>

         数据库读写设置:

<span style="font-family:System;">$db_list = array(
                   'write'=>array(
                            array(
                                     'db_host'=> SAE_MYSQL_HOST_M.':'.SAE_MYSQL_PORT,
                                     'db_user'=>SAE_MYSQL_USER,
                                     'db_password'=>SAE_MYSQL_PASS,
                                     'db_name'=>SAE_MYSQL_DB,
                                     'db_charset'=>'utf8'
                                     )
                            ),
                   'read'=>array(
                            array(
                                     'db_host'=> SAE_MYSQL_HOST_S.':'.SAE_MYSQL_PORT,
                                     'db_user'=>SAE_MYSQL_USER,
                                     'db_password'=>SAE_MYSQL_PASS,
                                     'db_name'=>SAE_MYSQL_DB,
                                     'db_charset'=>'utf8'
                                     )
                            ),
                   );
$global_db_list = $db_list['write'];</span>

         身份认证密码,可以直接访问https://api.wordpress.org/secret-key/1.1/salt/获取:

<span style="font-family:System;">define('AUTH_KEY', '');
define('SECURE_AUTH_KEY', '');
define('LOGGED_IN_KEY', '');
define('NONCE_KEY', '');
define('AUTH_SALT', '');
define('SECURE_AUTH_SALT', '');
define('LOGGED_IN_SALT', '');
define('NONCE_SALT', '');</span>

          修改wp-includes目录下的functions.php文件:定位到1474行,将下面代码注释掉

<span style="font-family:System;">//$wrapper = null;
         //Strip the protocol.
         //if(wp_is_stream( $target ) ) {
         //      list( $wrapper, $target ) = explode('://', $target, 2 );
         //}
         //From php.net/mkdir user contributed notes.
         //$target= str_replace( '//', '/', $target );
          //Put the wrapper back on the target.
         //if($wrapper !== null ) {
         //      $target = $wrapper . '://' . $target;
         //}</span>

         并在注释的代码上面添加如下代码:

<span style="font-family:System;">if ( substr($target, 0, 10) == 'saestor://' ) {
             returntrue;
    }
         $target= str_replace( '//', '/', $target );</span>

         定位到1796行,在 $basedir = $dir;$baseurl = $url; 上面添加如下代码

<span style="font-family:System;">$dir = SAE_DIR;
$url = SAE_URL;</span>

         在4426行, send_frame_options_header()方法上添加以下代码:

<span style="font-family:System;">if ( !function_exists('utf8_encode') ) {
         functionutf8_encode($str) {
                   $encoding_in= mb_detect_encoding($str);
                   returnmb_convert_encoding($str, 'UTF-8', $encoding_in);
         }
}</span>

          修改wp-admin/includes/file.php文件,注释掉下面代码,第344行

<span style="font-family:System;">// Set correct filepermissions.
//$stat= stat( dirname( $new_file ));
//$perms= $stat['mode'] & 0000666;
//@chmod( $new_file, $perms );</span>

          修改wp-includes/class-wp-image-editor-gd.php文件,注释掉以下代码:405

<span style="font-family:System;">//$stat = stat( dirname( $filename ) );
//$perms= $stat['mode'] & 0000666; 
//same permissions as parent folder, strip off//the executable bits
//@chmod( $filename, $perms );</span>

         修改完后我们就可以上传到SAE中,SAE上传采用的是SVN,分享一个图像化的SVN工具TortoiseSVN下载地址:链接:http://pan.baidu.com/s/1eQisLgu密码:i9nh,安装后,直接右键将我们的项目checkout出来后,将我们修改的wordpress复制到checkout的文件夹1下,右键commit即可。现在我们便可以访问我们的个人博客了。

         第一次访问会让我们初始化wordpress,设置完毕后,进入仪表盘,此时的博客比较简陋,我们可以通过设置主题来修改博客的没关系,网上有很多wordpress的主题,下载后直接解压到wp-content\themes后,右键commit即可,然后在仪表盘里设置主题即可。写文章时,可能经常会写一些代码,普通的文章代码排版很难看,这里我们可以安装一个wordpress插件,来给代码排榜,SyntaxHighlighter插件已经在之前下载的文件中,直接解压到wp-content\plugins目录下使用svncommit一下,仪表盘的插件中就可以看到我们安装的插件。SyntaxHighlighter使用方法就是在写文章时,在文本窗口中直接使用[php]代码[/php],发布后就可以看到,还有很多参数可以调整,在插件的设定中可以看到。

绑定域名

         使用SAE创建的应用只有一个二级域名,SAE给我们提供了绑定顶级域名的方法,首先购买一个顶级域名。在SAE应用管理里面,选择绑定域名。这里我们可以看到,只有备案的应用才可以直接访问国内数据中心,而且新浪的备案方式比较麻烦,所以大部分的应用都使用的海外数据中心,这样仍然可以通过顶级域名访问,但是稳定性跟响应时间都非常的差,通过海外数据中心访问,其实使我们的访问先经过海外,再指向国内,流量相当于之前的2倍。但是没有办法,免费只能将就一下。绑定时新浪提醒我们:请把www.xxxx.com CNAME到yyyy.sinaapp.com以完成域名绑定。同时把randomnum.xxxx.com通过A记录解析到IP地址以完成域名身份认证。我们在购买的域名管理系统中安装说明添加上面两条解析即可。解析完成后并不能立即更新,需要比较长一段时间。需要耐心等候。

         域名解析成功后,访问自己的博客时,响应时间长得让我自己都受不了,想了半天也没有好的优化办法,只能把网站中体积比较大的素材、css样式、JS代码搬回国内,其实就是将链接直接改为二级域名的链接,比如image/1.png改为http://yyyy.sinaapp.com/image/1.png修改后速度的确加快很多。如果有机会还是给应用备案,那样速度才稳定。

         最后欢迎大家访问我的博客www.gaoshaochen.com……