xBlog部署手记

         一次偶然的机会,在开源中国上了解到一个有趣的开源项目:xblog (C++开发的BLOG程序),因为自己一直做后台开发,主要用C/C++实现,对于Web方面的开发知之甚少,但又比较好奇是否可以用C/C++来实现web应用,因此该项目很对我的胃口,希望能深入了解这个项目的实现。

        近期在xBlog项目作者xSky的帮助下,终于将xBlog项目在我的linux虚拟机上部署成功,现将整个过程记录下来,以方便后续进一步学习,也供其他对xBlog感兴趣的朋友参考。

        在RedHatLinux 6.3 (x86_64, 最简安装环境,minimal,  配置了redhat安装盘自带的本地yum源,无法连接外网)上安装部署xBlog的步骤如下:

  1. 安装文件准备:
    • xblog-master_20140114.zip
    • MySQL-server-5.5.30-1.el6.x86_64.rpm
    • MySQL-client-5.5.30-1.el6.x86_64.rpm
    • MySQL-devel-5.5.30-1.el6.x86_64.rpm
    • libevent-2.0.21-stable.tar.gz

  2. 安装数据库:
    1. 查看是否安装过MYSQL,显示已有相关lib包安装
      # rpm -qa | grep -i mysql

    2. 将系统自带的mysql删除
      # rpm -ev --nodeps  mysql-libs-5.1.61-4.el6.x86_64

    3. 安装MYSQL服务端:
      # yum install -y MySQL-server-5.5.30-1.el6.x86_64.rpm

    4. 安装MYSQL客户端:
      # yum install -y MySQL-client-5.5.30-1.el6.x86_64.rpm

    5. MYSQL安装完成,关闭MYSQL服务:
      # service mysql stop

    6. MYSQL开发库配置:
      #  rpm -ivh MySQL-devel-5.5.30-1.el6.x86_64.rpm

    7. Mysql 配置
      # cp /usr/share/mysql/my-medium.cnf  /etc/my.cnf
      # vi /etc/my.cnf
      在[mysql]节添加如下配置项
      [mysql]
      default-character-set = utf8
       
      在[mysqld]节对配置进行调整
      修改:
      max_allowed_packet = 300M
      添加:
      lower_case_table_names=1
      character_set_server=utf8
      collation-server=utf8_general_ci
      character_set_client=utf8
      max_connections=1000
      #skip-name-resolve
      local-infile = 0
       
      启动MYSQL:
      #service mysql start
       
      对mysql的用户名、帐号、及默认数据库进行调整
      /home/mysql/bin/mysql -u root –p
      然后会提示输入密码,输入正确密码后,会出现mysql>提示符
       
      mysql>use mysql;
      mysql>SET PASSWORD FOR root@localhost=PASSWORD('111111');(修改root密码)
       
      创建xblog数据库:
      mysql>use mysql;
      mysql>insert into user(host, user, password) values('localhost',
      'xblog', password('xblog'));
      mysql>create database xblog default character set utf8 collate utf8_general_ci;
      mysql>grant all privileges on xblog.* toxblog@localhost identified by 'xblog';
      mysql>flush privileges;
      mysql>quit

  3. libevent安装
    1. 原本计划通过rpm包安装(rpm -ivh libevent-devel-1.4.13-4.el6.x86_64.rpm),但是发现依赖:libevent-headers-1.4.13-4和libevent-doc-1.4.13-4,但是安装rpm -ivh libevent-headers-1.4.13-4.el6.noarch.rpm, rpm -ivh libevent-doc-1.4.13-4.el6.noarch.rpm的时候又报错说依赖:libevent-devel-1.4.13-4,陷入依赖的死循环

    2. 网上查了一下,在CentOS, REHL6上似乎的确存在libevent依赖问题,应此改用源代码包安装:libevent-2.0.21-stable.tar.gz
      • tar -xvzf libevent-2.0.21-stable.tar.gz
      • ./configure
      • make
      • make install

  4. 编译源代码
    1. 解压源码包:
      • yum install unzip.x86_64
      • unzip xblog-master_20140114.zip

    2. 编译源码:
      • yum install gcc.x86_64
      • yum install gcc-c++.x86_64
      • yum install make.x86_64
      • yum install zlib.x86_64
      • yum install zlib-devel.x86_64
      • 调整xBlogMain.cpp的第18行为:(int)event_get_version_number(),
      • 编辑makefile文件
        增加:LIB_DIR     := /usr/lib64/mysql
        将LDFLAGS调整为: LDFLAGS     := -L$(LIB_DIR)$(addprefix -l,$(LD_LIBS)) `mysql_config --cflags --libs`
      • make

  5. 系统参数配置
    1. 编辑xblog的配置文件xblog.ini

      设置监听地址及端口:
      [HTTPD]
      IP=192.168.94.135
      PORT=8080

       
      设置根据之间建立的数据库设置数据库的参数:
      [MYSQLPOOL]
      IPADDR=127.0.0.1
      PORT=3306
      USER=
      xblog
      PASSWD=xblog
      DBNAME=xblog

    2. 关闭linux防火墙

      iptables -L
      iptables -F
      service iptables stop
      chkconfig --level 2345 iptables off
      chkconfig --list | grep iptables


  6. 设置环境变量,启动应用
    1. 由于需动态加载libevent库,应此在脚本执行前,需指定lib目录
      whereis libevent
      libevent:
      /usr/local/lib/libevent.la   /usr/local/lib/libevent.a   /usr/local/lib/libevent.so
       
      在xBlog.sh中添加:
      export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

    2. 调整脚本的执行权限
      chmod +x xBlog.sh

    3. 由于部署主机无法连接外网,因此需手动调整部分代码:

      编辑/xblog-master/xblogroot/admin/admin.htm
      对jquery.min.js访问进行调整:
      原:
      <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
       
      <script type="text/javascript" src="/admin/js/jquery.main.js"></script>
      <script type="text/javascript" src="/admin/js/admin.js"></script>

      调整为:
      <!-- <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> -->
      <script type="text/javascript" src="/admin/js/jquery-1.7.2.min.js"></script>
      <script type="text/javascript" src="/admin/js/admin.js"></script>
      <script type="text/javascript" src="/admin/js/jquery.main.js"></script>
        
    4. 启动xblog:

      # ./xBlog.sh  start
      Now will start the [xblog].
      Now run the [xblog]. Please waite...
      The [xblog] is started successful! The pid is [24268].

       
  7. 访问:http://192.168.94.135:8080/admin (admin,123)

    修改部分默认配置:
    网站配置(站点配置)页面中,将“XBLOG_HOST”的访问地址设置为“http://192.168.94.135:8080/

  8. 登录系统首页:http://192.168.94.135:8080/



================================================== X-Blog V1.0 正式版配置及使用说明 如需要帮助和程序有BUG,请到我的BLOG(http://blog.ybpz.com)提出 ================================================== 1.将文件夹中的文件及文件夹全部上传到你的空间; 2.然后运行根目录下的Setup.asp进行安装; 3.为了网站安全,推荐修改后台管理目录,最好改为只有自己知道 注:此次更新未涉及到数据库,升级的朋友请直接保留数据库,然后下载的程序覆盖以前的后,执行setup.asp即可 ================================================== X-Blog V1.0 正式版使用帮助 ================================================== 1.若生成html时出现错误,请检查空间是否支持STREAM和FSO. 2.请确认模板路径和相应的文件存在. 3.模板制作和移植可以参考:Demo.asp 4.JS全站静态调用格式可以参考:Js.html 5.动态时间格式可以参考:Time.asp 6.Mdb目录下有Database.asp和Link.asp两个文件,是其它BLOG数据库转向X-Blog的转换文件. 7.一些模板的特定功能,可以查看和修改Inc/Skin.asp文件 8.最近更新文件:New.asp 9.热门浏览文件:Hot.asp 10.如遇出现乱码,请根据你的空间来设置,分两种情况 如本地测试,则在IIS自定义错误页中编辑500:100,消息类型为:URL,地址填写/500-100.asp 如在虚拟主机中,则在自定义错误项中选则500-100,地址填写500-100.asp ================================================== X-Blog V1.0 正式版主要功能 ================================================== 1.全站生成静态(可一键生成全站),可自定义后缀名,支持全站假静态,譬如浏览器地址为:http://www.ybpz.com/log/?/ID/100.html,后缀可自定义. 2.支持全站JS调用,也就是说在静态页面中可以通过JS来动态显示数据. 3.模板标签化,模板和数据分离,可轻松设计和移植自己喜欢的皮肤,只用替换相应的标签即可. 4.全站合理使用缓存,当使用假静态浏览BLOG时,速度更快. 5.自带友情链接,图片管理,在线文件管理和修改,及蜘蛛访问记录等. 6.后台数据库在线压缩备份和还原. 7.自定义验证码问题和答案的功能,个性化的展现. 8.图片展示使用Jquery,并且支持最大图片大小. 9.使用网易的超简单编辑器,只有两个文件,就算在网速很慢的情况下,编辑器加载也不是问题. 10.日志和图片分类均支持外部跳转与二级分类,并且支持Keyword和Description,更加有利于SEO优化,同时日志和图片也支持外部跳转. 11.后台静态生成使用局部AJAX操作. 12.简单的会员功能及强大的可扩展功能 ================================================== X-Blog 更新说明 如需要帮助和程序有BUG,请到我的BLOG(http://blog.ybpz.com)提出 ================================================== V1.0 正式版 更新 1.修正静态生成时的几个标签 2.添加可自定义日志和图片目录功能 3.修正查找错误的BUG 4.修正动态浏览时的几个常见BUG 5.修正后台静态生成时出现错误的BUG 6.新增PINK皮肤一款 7.添加BLOG安装程式. 8.添加自定义验证码功能 9.添加后台修改数据库目录,管理目录,日志目录,图片目录功能 V1.0 Beta4 更新 1.添加会员系统 2.添加最近更新(New.asp)及热门点击(Hot.asp) 3.后台添加查找功能分定位分页功能 4.添加后台管理会员功能 V1.0 Beta3 更新 1.修正后台一些BUG 2.修正动态浏览时TAG页面产生错位的BUG 3.修正动态浏览时分类页无信息时列表无提示的BUG 4.修正其它小BUG V1.0 Beta2 更新 1.修改编辑器为:FCKeditor2.6.3版本 2.摘要使用编辑器功能,避免标签被破坏 3.修正一些其它小BUG V1.0 Beta1 20081010更新 1.添加后台栏目分权限分用户管理,分别有三个角色(超级管理员,普通管理员,普通用户) 2.添加后台TAG管理,可进行日志图片分开管理,也可进行编辑和删除 3.添加后台JS调用演示,模板标签演示 4.更新发表日志时多个逗号连用可能造成IIS崩溃的BUG 5.修正一些其它小BUG V1.0 Beta1更新 1.添加Robot.txt文件 2.修正后台静态生成首页BUG 3.更新Skin.asp文件,可自由设置首页是显示图片还是日志,模板机制删除Index_Multi.html文件. 4.更新Static.asp和Dynamic.asp文件的一些错误及BUG 5.更新Tag/Index.asp和Search/Index.asp的错误 6.更新后台管理的一些错误 V1.0 Beta发布更新 1.全站生成静态(可一键生成全站),可自定义后缀名,支持全站假静态,后缀可自定义. 2.支持全站JS调用,也就是说在静态页面中可以通过JS来动态显示数据. 3.模板标签化,模板和数据分离,可轻松设计和移植自己喜欢的皮肤,只用替换相应的标签即可. 4.全站合理使用缓存,当使用假静态浏览BLOG时,速度更快. 5.自带友情链接,图片管理,在线文件管理和修改,及蜘蛛访问记录等. 6.后台数据库在线压缩备份和还原. 7.个性的验证码功能,给人一种新颖的感觉. 8.图片展示使用Jquery,并且支持最大图片大小. 9.使用网易的超简单编辑器,只有两个文件,就算在网速很慢的情况下,编辑器加载也不是问题. 10.日志和图片分类均支持外部跳转与二级分类,并且支持Keyword和Description,更加有利于SEO优化,同时日志和图片也支持外部跳转.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值