存档

作者存档

codeigniter的url去掉index.php

2012年1月19日 一棵葱 没有评论

版权声明:原创作品,转载请务必以超链接形式标明文章 原始出处 、作者和本声明,否则将追究法律责任。

最近使用codeigniter做了个网站,为了保持url的美观,也为了安全起见,决定去掉url中的index.php。

起初google了半天也没找到正确的写法,最后还是自己边看手册边摸索地写了出来,自己学到了很多,同时也分享给大家。

CI中的路径配置是
$config['uri_protocol'] = ‘AUTO’;
其它配置没有测试,请自己尝试。

以下是nginx.conf的配置:
阅读全文…

分类: CodeIgniter, nginx 标签: , ,

ubuntu11.10安装vmware-tools

2012年1月16日 一棵葱 没有评论

在vm上安装ubuntu11.10,本想安装vmware-tools,结果出现找不到smp_lock.h文件的错误,编译中止。google了一下,原因是新的2.6.39以后的内核,已经木有这个文件了。
最后还是采用以下方案解决了问题:

http://archive.blackbuntu.com/bb03/vmware-patch/

选择:vmware2.6.39guest.tar.bz2
解压缩,运行patch-modules_2.6.39.sh

ok,安装成功!

分类: Ubuntu 标签: ,

FTP的standard和passive两种连接类型

2011年12月26日 一棵葱 没有评论

FTP支持两种模式,一种方式叫做Standard (也就是 PORT方式,主动方式),一种是 Passive (也就是PASV,被动方式)。 Standard模式 FTP的客户端发送 PORT 命令到FTP服务器。Passive模式FTP的客户端发送 PASV命令到 FTP Server。

PORT 和 PASV的简单区别如下:

Port模式FTP 客户端首先和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。

Passive模式在建立控制通道的时候和Standard模式类似,但建立连接后发送的不是Port命令,而是Pasv命令。FTP服务器收到Pasv命令后,随机打开一个高端端口(端口号大于1024)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。

因为IE浏览器默认使用的是Passive(被动)模式,所以要连接Linux服务器大于1024端口,而防火墙并没有开发1024以上的端口,导致登录ftp服务器被防火墙阻止。

分类: ftp 标签:

PHP5.3.x中弃用的功能

2011年12月7日 一棵葱 没有评论

PHP 5.3.0 新增了两个错误等级: E_DEPRECATED
和 E_USER_DEPRECATED. 错误等级 E_DEPRECATED 被用来说明一个函数或者功能已经被弃用. E_USER_DEPRECATED 等级目的在于表明用户代码中的弃用功能, 类似于
E_USER_ERROR 和 E_USER_WARNING 等级.

下面是被弃用的 INI 指令列表. 使用下面任何指令都将导致 E_DEPRECATED 错误.

define_syslog_variables

register_globals

register_long_arrays

safe_mode

magic_quotes_gpc

magic_quotes_runtime

magic_quotes_sybase

弃用 INI 文件中以 ‘#’ 开头的注释.
阅读全文…

分类: PHP 标签:

MySQL帐户创建与删除、口令更改

2011年12月5日 一棵葱 没有评论

1. 创建用户账户

可以用三种方式创建MySQL账户:
1 使用GRANT语句

2 直接操作MySQL授权表

3 使用CREATE USER语句

最好的方法是使用GRANT语句,因为这样更精确,错误少。

创建账户的其它方法是使用MySQL账户管理功能的第三方程序。phpMyAdmin即是一个程序。

下面的示例说明如何使用MySQL客户端程序来设置新用户。为了更改,你必须以MySQL root用户连接MySQL服务器,并且root账户必须有mysql数据库的INSERT权限和RELOAD管理权限。

首先,使用MySQL程序以MySQL root用户来连接服务器:

MySQL --user=root MySQL

如果你为root账户指定了密码,还需要为该MySQL命令和本节中的其它命令提供–password或-p选项。
阅读全文…

分类: MySQL 标签: , ,

Linux上源码安装Subversion

2011年12月2日 一棵葱 没有评论

subversion(以下简称svn)是近年来崛起的版本管理工具,能够比较好得替换cvs。

svn主要有2种运行方式:

1. 独立运行的服务器
2. 与apache集成

二种方式各有利弊,可以根据自己的需要进行配置,我不需要Http进行访问,只需要客户端可以Commit & update 就可以,下面是选择的第一种方式——独立运行的SVN服务器。

svn存储版本数据也有2种方式:

1. BDB–Berkeley Datebase
2. FSFS–文件存储

BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。

下面正式进入安装阶段
阅读全文…

分类: svn 标签: , , ,

CentOS下iptables详解

2011年12月2日 一棵葱 没有评论

1. 引言

CentOS 內置了一个非常強劲的防火牆,统称为 iptables,但更正确的名称是 iptables/netfilter。iptables 是一个用戶空间的模块。作为用戶,你在命令行就是通过它将防火牆规则放进缺省的表裡。netfilter 是一个核心模块,它內置於內核中,进行实际的过滤。iptables 有很多前缀图像界面可以让用戶新增或定义规则,但它们很多时不及使用命令行般有灵活性,而且限制用戶了解实际发生的事情。我们将会学习 iptables 的命令行界面。

在我们正式应付 iptables 前,我们必须对它的运作有一个基本的理解。iptables 利用到 IP 地址、协议(tcp、udp、icmp)及端口这些概念。我们不需要成为这些方面的专家(因为我们可以找到所需的信息),但对它们有一般的理解会有帮助。

iptables 将规则放进缺省的规则链(INPUT、OUTPUT 及 FORWARD),而所有流量(IP 压缩)都会被相关的规则链检查,根据当中的规则判断如何处理每个压缩,例如:接纳或丟棄它。这些动作称为目标,而最常见的两个缺省目标就是 DROP 来丟棄压缩;或 ACCEPT 来接纳压缩。

规则链

我们可以在过滤表的 3 条缺省规则链內加入规则,来处理通过这些规则链的压缩。它们分別是:

* INPUT – 所有以主机为目的地的压缩。
* OUTPUT – 所有源自主机的压缩。
* FORWARD – 这些压缩的目的地或来源地都不是主机,但路经主机(由它选路)。假若你的主机是一个路由器,这条规则链将会被应用。

我们将会花费最多时间处理 INPUT 规则链,借以过滤进入我们的机器的压缩 —— 亦即是将坏蛋拒诸门外。
阅读全文…

分类: Linux, 网络 标签: , ,

CodeIgniter中使用Smarty模板引擎

2011年11月25日 一棵葱 没有评论

版权声明:原创作品,转载请务必以超链接形式标明文章 原始出处 、作者和本声明,否则将追究法律责任。

刚接触了 codeigniter,感觉其模板解析类比较简单,教程中有一句“模板解析类不是一个完善的模板解析方案。为了保持最高性能,我们的模板解析类非常精简。”,这也说明了这一点。所以还是用 smarty 吧。

1. 下载 Smarty-3.1.5 并解压,将其中的 libs 目录复制到 application/third_party 并改名为 Smarty-3.1.5(当然你可以复制到其它位置)

2. 在目录 application/libraries 下建立一个类文件 CI_Smarty.php(当然也可以命名为 MY_Smarty.php,只要前缀定义的是 MY)
阅读全文…

linux下configure命令详细介绍

2011年11月17日 一棵葱 没有评论

Linux环境下的软件安装,并不是一件容易的事情;如果通过源代码编译后在安装,当然事情就更为复杂一些;现在安装各种软件的教程都非常普遍;但万变不 离其中,对基础知识的扎实掌握,安装各种软件的问题就迎刃而解了。Configure脚本配置工具就是基础之一,它是autoconf的工具的基本应用。
与一些技巧相比,Configure显得基础一些,当然使用和学习起来就显得枯燥乏味一些,当然要成为高手,对基础的熟悉不能超越哦。
为此我转载了一篇关于Configure选项配置的详细介绍。供大家参考
‘ configure’脚本有大量的命令行选项.对不同的软件包来说,这些选项可能会有变化,但是许多基本的选项是不会改变的.带上’– help’选项执行’configure’脚本可以看到可用的所有选项.尽管许多选项是很少用到的,但是当你为了特殊的需求而configure一个包 时,知道他们的存在是很有益处的.下面对每一个选项进行简略的介绍:
–cache-file=FILE
‘configure’会在你的系统上测试存在的特性(或者bug!).为了加速随后进行的配置,测试的结果会存储在一个cache file里.当configure一个每个子树里都有’configure’脚本的复杂的源码树时,一个很好的cache file的存在会有很大帮助.
–help
输出帮助信息.即使是有经验的用户也偶尔需要使用使用’–help’选项,因为一个复杂的项目会包含附加的选项.例如,GCC包里的’configure’脚本就包含了允许你控制是否生成和在GCC中使用GNU汇编器的选项.
–no-create
‘configure’中的一个主要函数会制作输出文件.此选项阻止’configure’生成这个文件.你可以认为这是一种演习(dry run),尽管缓存(cache)仍然被改写了.
–quiet
–silent
当’configure’进行他的测试时,会输出简要的信息来告诉用户正在作什么.这样作是因为’configure’可能会比较慢,没有这种输出 的话用户将会被扔在一旁疑惑正在发生什么.使用这两个选项中的任何一个都会把你扔到一旁.(译注:这两句话比较有意思,原文是这样的:If there was no such output, the user would be left wondering what is happening. By using this option, you too can be left wondering!)
–version
打印用来产生’configure’脚本的Autoconf的版本号.
阅读全文…

CentOS的防火墙iptables配置

2011年11月16日 一棵葱 没有评论

在Linux中设置防火墙,以CentOS为例,打开iptables的配置文件:

vi /etc/sysconfig/iptables

通过/etc/init.d/iptables status命令查询是否有打开80端口,如果没有可通过两种方式处理:
方法一:
1.修改vi /etc/sysconfig/iptables命令添加使防火墙开放80端口

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

2.关闭/开启/重启防火墙

/etc/init.d/iptables stop
/etc/init.d/iptables start
#restart 重启

阅读全文…