codeigniter的url去掉index.php
最近使用codeigniter做了个网站,为了保持url的美观,也为了安全起见,决定去掉url中的index.php。
起初google了半天也没找到正确的写法,最后还是自己边看手册边摸索地写了出来,自己学到了很多,同时也分享给大家。
CI中的路径配置是
$config['uri_protocol'] = ‘AUTO’;
其它配置没有测试,请自己尝试。
以下是nginx.conf的配置:
阅读全文…
起初google了半天也没找到正确的写法,最后还是自己边看手册边摸索地写了出来,自己学到了很多,同时也分享给大家。
CI中的路径配置是
$config['uri_protocol'] = ‘AUTO’;
其它配置没有测试,请自己尝试。
以下是nginx.conf的配置:
阅读全文…
在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,安装成功!
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服务器被防火墙阻止。
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 文件中以 ‘#’ 开头的注释.
阅读全文…
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选项。
阅读全文…
subversion(以下简称svn)是近年来崛起的版本管理工具,能够比较好得替换cvs。
svn主要有2种运行方式:
1. 独立运行的服务器
2. 与apache集成
二种方式各有利弊,可以根据自己的需要进行配置,我不需要Http进行访问,只需要客户端可以Commit & update 就可以,下面是选择的第一种方式——独立运行的SVN服务器。
svn存储版本数据也有2种方式:
1. BDB–Berkeley Datebase
2. FSFS–文件存储
BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。
下面正式进入安装阶段
阅读全文…
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 规则链,借以过滤进入我们的机器的压缩 —— 亦即是将坏蛋拒诸门外。
阅读全文…
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脚本配置工具就是基础之一,它是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的版本号.
阅读全文…
在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 重启