利用百度BAE搭建discuz论坛

最近尝试了利用百度云应用管理BAE搭建discuz论坛, 这里做简要记录

创建应用

百度开发者中心 创建一个应用,选择WEB应用下的PC Iframe应用

托管设置

之后进行托管设置, 确定域名XXX.duapp.com

创建一个版本,并上传PHP代码包

(BAE有些函数规则发生改变,所以需要使用为BAE环境做过调整的discuz for BAE 版本)

需要注意的是在上传的代码包里面的 bcs/config.php 中的内容应该修改为

1
2
3
4
5
6
7
<?php
define('BAIDU_BCS_BUCKET', '创建的bucket名称');
define('BAIDU_BCS_AK', getenv('HTTP_BAE_ENV_AK'));
define('BAIDU_BCS_SK', getenv('HTTP_BAE_ENV_SK'));
?>

同时在数据库中设置为UTF-8,

注意开启缓存 cache 最少30M(亲测50M完全是OK的)

安装

之后上线应用,访问http://你的域名.duapp.com/install/index.php

即可完成安装(需要用到创建的数据库名称)

fedora下安装sublime text 2的方法

首先去官网下载最新的压缩包

  • 把文件解压到$HOME/.sublime_text_2文件夹中:

    1
    2
    tar -xf (sublime压缩包的文件名).tar.bz2
    sudo mv (解压后的文件夹) tools/Sublime_Text_2
  • 在/usr/bin目录下面创建一个链接

    1
    vim sublime

在文件中写入这些代码:

1
2
3
4
#!/bin/bash
export SUBLIME_HOME="~/tools/Sublime_Text_2"
$SUBLIME_HOME/sublime_text $*

修改文件权限并且移动

1
chmod 555 sublime && mv sublime /usr/bin/sublime

这样就可以在终端中直接执行sublime了

Vim7.3 for Windows 配置

一直是在Linux下用Vim,但是有些时候在别人电脑或者机房又不得不用windows来写代码,所以也就下载了vim for windows。但是今天打开一个朋友写的网页的时候,出现了乱码的问题,所以把解决方法记录一下,也就是和在linux下面一样,修改配置文件就可以了。接下来进入正题。

选项意义概述

Vim有四个跟字符编码方式有关的选项,分别是:encodingfileencodingfileencodingstermencoding (这些选项可能的取值可以参考 Vim 的帮助 :help encoding-names),它们各自的意义:

  • encoding: Vim 内部使用的字符编码方式,包括Vim的buffer(缓冲区)、菜单文本、消息文本等。用户手册上建议只在.vimrc中改变它的值,事实上似乎也只有在.vimrc 中改变它的值才有意义。

  • fileencoding: Vim 中当前编辑的文件的字符编码方式,Vim 保存文件时也会将文件保存为这种字符编码方式 (不管是否新文件都如此)。

  • fileencodings: Vim 启动时会按照它所列出的字符编码方式逐一探测即将打开的文件的字符编码方式,并且将 fileencoding 设置为最终探测到的字符编码方式。因此最好将 Unicode 编码方式放到这个列表的最前面,将拉丁语系编码方式 latin1 放到最后面。

  • termencoding: Vim 所工作的终端 (或者 Windows 的 Console 窗口) 的字符编码方式。这个选项在 Windows 下对我们常用的 GUI 模式的 gVim 无效,而对 Console 模式的 Vim 而言就是Windows控制台的代码页,并且通常我们不需要改变它。(我尝试改变了它为UTF-8,但对于console模式的编码方式却没有改变)

配置说明

由于 Unicode 能包含几乎所有的语言的字符,Unicode的UTF-8编码方式又是非常具有性价比和通用的编码方式,所以把encoding的值设置为utf-8。同时将encoding设置为utf-8时,Vim自动探测文件的编码方式会更准确。在中文Windows里编辑的文件,为了兼顾与其他软件的兼容性,文件编码还是设置为GB2312/GBK比较合适,因此fileencoding建议设置为chinese (chinese是个别名,在Unix里表示gb2312,在Windows里表示cp936,也就是GBK的代码页)。

具体配置

最后对于文件中显示乱码、菜单乱码、右键菜单乱码以及Conlse输出乱码问题的解决方案,修改Vim编辑器所对应的配置文件_vimrc(这个文件在你安装vim 的那个目录下),添加如下配置:

  • 关于常规设置:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    "总是显示标签。0:不显示;1:多于1个时显示"
    set showtabline=2
    "开启行号"
    set number
    "开启自动缩进, 7.3以上版本已自动开启"
    set autoindent
    "缩进宽度为4个字符"
    set shiftwidth=4
    "tab宽度为4个字符"
    set tabstop=4
    "编辑时将所有tab替换为空格"
    set et
    "按一次Backspace就删除4个空格"
    set smarttab
  • 关于色彩和字体之类的设置:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    "配色方案(这里可以自选,我比较喜欢这个配色方案)"
    colo desert
    "开启语法高亮, 7.3版本已自动开启"
    syntax on
    "字体设置"
    set guifont=courier_new:h10
    "关闭兼容模式"
    set nocompatible
    "以下三行模拟Windows操作,如Ctrl-C复制"
    source $VIMRUNTIME/vimrc_example.vim
    source $VIMRUNTIME/mswin.vim
    behave mswin
    "不生成备份文件,下面这句要写在behave mswin下面,否则还是会生成备份,情况不明"
    set nobackup
  • 关于编码部分的设置:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    "GVIM内部编码"
    set encoding=utf-8
    "当前编辑的文件编码"
    set fileencoding=utf-8
    "GVIM支持打开的文件编码(这里也是参考帮助手册来的)"
    set fileencodings=utf-8,gbk,gb2312,big5,latin1
    "解决菜单及右键菜单乱码"
    source $VIMRUNTIME/delmenu.vim
    source $VIMRUNTIME/menu.vim
    "解决consle输出乱码"
    language messages zh_CN.utf-8
    "防止特殊符号无法正常显示,如五角星等1"
    set ambiwidth=double
  • 主体设置部分:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    set diffexpr=MyDiff()
    function MyDiff()
    let opt = '-a --binary '
    if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
    if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
    let arg1 = v:fname_in
    if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
    let arg2 = v:fname_new
    if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
    let arg3 = v:fname_out
    if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
    let eq = ''
    if $VIMRUNTIME =~ ' '
    if &sh =~ '\<cmd'
    let cmd = '""' . $VIMRUNTIME . '\diff"'
    let eq = '"'
    else
    let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
    endif
    else
    let cmd = $VIMRUNTIME . '\diff'
    endif
    silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
    endfunction

以上就是我关于windows下VIM的配置修改了。我使用的配置文件可以在Vim for Windows setting下载得到。

LAMP环境的快速搭建

这是我在我的centos 吧专门写的教程帖,目的也就是为了让新手可以更快的搭建起来环境,而不是一直在门外徘徊。所以就搬过来了,时间神马的就按照原帖来吧。

写在前面

本篇文章是面向linux新手,文中采用环境是Win7+V-BOX,配置过程用putty进行操作(个人习惯而已),linux系统使用CentOS6.3版本。CentOS的安装方法及虚拟机中网络配置请参阅centos吧精品帖【教程】最全centos 安装方法及内容详解。为了尽量一次性可以让读者完成LAMP环境的搭建,本次安装过程都采用yum包管理机制进行安装。当然生产环境下一般都是采用源码编译的。在近期我也会再出连载文,使用源码包进行LAMP环境的搭建,欢迎关注。如果有任何意见或者建议都可以到centos吧发帖询问。
Ps:本文LAMP = Linux + Apache + Mysql + PHP

安装过程(先确保你的系统网络正常或者搭建好了本地源)

1. 首先安装Apache,使用命令:

sudo yum install httpd –y

2. 然后安装Mysql,使用命令

sudo yum install mysql mysql-server –y

3. 再安装php ,使用命令

sudo yum install php –y

4. 安装完毕之后启动apache. 使用

sudo service httpd start

启动成功了,我们访问一下,在浏览器的地址栏输入虚拟机IP。

好,这里遇到了我们的第一个问题, 无法访问

  • apache服务已经打开,但是却无法访问
    这里很可能是iptables的防御规则导致的。

执行iptables –L查看所有的iptables的规则。

关于iptables的知识可以自行了解或者关注后续讲解
我们执行 sudo iptables –F 清除所有规则

接下来在浏览器输入虚拟机地址 ,我们看到如下:

我们已经访问成功了!

  • 当然在这里的时候也许还有人是访问不了的,可能是因为CentOS自带的SElinux机制影响的

我们执行getenforce命令来查看SElinux的状态,使用sudo setenforce 0来改变SElinux为permission状态。

都执行完成后,应该就可以访问了。

5.测试是否可以执行php代码

执行 vim /var/www/html/test.php 写入测试代码

保存退出,用浏览器进行访问

成功!

但是向后看,发现组成模块里面没有mysql。说明现在还不支持mysql模块,因为我们少安装了一个东西 现在执行

1
sudo yum install php-mysql

添加php和mysql的中间模块,重启apache服务:sudo service httpd restart 再次访问,发现组成模块中有了mysql的信息,说明可以访问mysql的数据库了。

接下来执行sudo service mysqld start 启动mysql服务。
执行

1
mysql -u root -p

访问mysql数据库

表示mysql数据库也正常,到此,LAMP环境初步建成

6.设置服务的开机自动启动(可以不做)

使用

1
2
sudo chkconfig httpd on
sudo chkconfig mysqld on

7.LAMP环境的配置文件

1
2
3
Apache: /etc/httpd/conf/httpd.conf
Php: /etc/php.ini
Mysql: /etc/my.cnf

LAMP环境搭建小结

通过以上过程,你就已经成功的搭建好了LAMP环境,剩下的配置就是修改你的配置文件,进而达到效果。类似启动类型,模块,超时,地址,状态之类的,都会在下篇文章中写出。
使用yum安装LAMP环境是最简单的,也是最方便的。不过生产环境都是用的源码包,因为源码包可以更加个性化的定义你需要的模块。

CentOS安装方法

cat 命令研究

有人问我关于centos里面使用cat命令的问题,我在这里简单记录一下。
在linux下,cat应该是使用最频繁的命令之一了吧。

cat命令在Linux作以下用途:

  • 在屏幕上显示文本文件。
  • 复制文本文件。
  • 合并文本文件。
  • 创建新的文本文件。

cat命令支持的语法如下:

1
2
3
4
cat filename
cat options filename
cat file1 file2
cat file1 file2 > newcombinedfile

显示文件的内容:

1
cat /tmp/test

上面的命令就是查看文件/tmp/test的内容,把内容输出到屏幕。
但是也可以使用

1
cat /tmp/test > /tmp/test2

使用上面的命令,可以把文件内容重定向到/tmp/test2文件中

串联文件:

串联文件是把文件内容一起输出,但是不会改变源文件的内容

1
cat /tmp/test1 /tmp/test2 /tmp/test3

以上命令会将/tmp 目录下的 test1 ,test2 ,test3 三个文件的内容一起输出,当然也可以使用重定向命令查看输出内容

1
cat /tmp/test1 /tmp/test2 /tmp/test3 >/tmp/testoutputs

重定向至/tmp 下的testoutputs 文件中

当然查看的时候可以配合管道命令使用

cat /tmp/test1 /tmp/test2 /tmp/test3 | less

fedora安装后最初的事情

更新源

1
2
3
sudo yum localinstall --nogpgcheck http://mirrors.163.com/rpmfusion/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://mirrors.163.com/rpmfusion/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm (这个是添加国内的软件源)
sudo yum update

网络相关

firefox

1
sudo yum install firefox

chrome / chromium

我本人比较习惯用chrome的 不过最近网络不是很稳定 先补充chromium 的安装方法吧

  • chromium的安装
    首先添加chromium的fedora源,将下载好的 .repo 文件移动到/etc/yum.repos.d/下, 执行

    1
    sudo yum install chromium
  • chrome的安装
    官网上下载chrome 的rpm包,或者从我的网盘下载对应的32位64位 的rpm 包
    执行

    1
    sudo rpm -ivh google-chrome.rpm

安装证书

1
sudo yum localinstall --nogpgcheck http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-branched.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-branched.noarch.rpm

压缩/解压软件

1
2
sudo yum install unrar
sudo yum install p7zip

影音播放

1
2
3
sudo yum install gstreamer-plugins-good gstreamer-plugins-bad gstreamer-plugins-ugly libtunepimp-extras-freeworld xine-lib-extras-freeworld(安装音频解码器)
sudo yum install ffmpeg ffmpeg-libs gstreamer-ffmpeg libmatroska xvidcore(安装视频解码器)

编辑器

  • vim

    1
    sudo yum install vim
  • Sublime Text
    我也很喜欢因为运行速度快,而且免费。安装方法可以参考我的fedora下安装sublime text 2这篇文章。