一直不是很满意apache2的prefork模式对内存的占用,感觉速度也慢了点,另外php很多模块都不是线程安全的,所以采用fastcgi来运行php,,我认为比较好
但是apache2自己的fastcgid却有很多问题,还好国人编写了fcgid这个二进制兼容模块
在Ubuntu server 8.04 linux下配置好apache2+worker+fcgid+php5后,无奈Fleaphp的URL_REWRITE模式总是有问题,报错:
No input file specified.
确定 /etc/php5/cgi/php.ini中的 cgi.fixpath_info是设置为1的
看了fcgid的文档,说需要设置
PHP_Fix_Pathinfo_Enable 1
但依然不起作用
后来测试发现,是由于apache2的url_rewrite模块指令问题,在mod_php5下,我们用这个规则:
这样就没有问题,但是在fastcgi模式下,这么写,就会出现 No input file specified.
经检查发现 PATH_INFO 环境变量都是空的
后来查阅apache2的文档,发现rewrite模块的一个设置,看到了曙光:
'env|E=VAR:VAL' (set environment variable)
This forces an environment variable named VAR to be set to the value VAL, where VAL can contain regexp backreferences $N和%N which will be expanded. You can use this flag more than once to set more than one variable. The variables can be later dereferenced in many situations, but usually from within XSSI (via <!--#echo var="VAR"-->) or CGI (例如, $ENV{'VAR'}). Additionally you can dereference it in a following RewriteCond pattern via %{ENV:VAR}. Use this to strip but remember information from URLs. 于是修改重写规则为:
然后修改FLEA/Filter/Uri.php中的第29-32行为:
这样就可以了,很郁闷吧,这个 'REDIRECT_PATH_INFO' google一下,居然没有什么记录!
分享下成功吧!
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php [L,E=PATH_INFO:$1]
分享到:
相关推荐
### FleaPHP开发指南知识点详解 #### 一、FleaPHP概述 - **设计初衷**:FleaPHP框架旨在简化Web应用开发流程,减少开发者负担,...无论是对于初学者还是经验丰富的开发者来说,FleaPHP都是一款值得关注和学习的框架。
8. **错误处理**:Fleaphp有完善的错误处理和日志记录功能,能帮助开发者在开发过程中快速定位和解决问题。它还支持自定义错误页面,提升用户体验。 9. **安全特性**:Fleaphp关注应用的安全性,内置了防止SQL注入...
2. **MVC架构**:Fleaphp遵循Model-View-Controller(模型-视图-控制器)的设计模式,这是一种常见于Web开发中的架构模式。Model处理数据,View负责显示,而Controller协调这两者之间的交互,帮助开发者实现业务逻辑...
- **易用性**:Fleaphp的API设计简洁明了,学习曲线平缓,适合初学者和有经验的开发者。 - **MVC架构**:遵循Model-View-Controller模式,使得业务逻辑、数据处理和界面展示分离,提高代码可维护性。 - **路由...
2. **MVC模式**:Model-View-Controller(模型-视图-控制器)是FleaPHP的基础设计模式,它将业务逻辑、数据处理和用户界面分离,提高了代码的可读性和可维护性。 3. **路由系统**:FleaPHP拥有灵活的路由规则,可以...
8. **错误处理与日志**:Fleaphp提供了错误处理和日志记录机制,确保在遇到问题时能够及时定位和修复,同时对应用的运行状态进行跟踪。 9. **依赖注入**:通过依赖注入,可以实现更灵活的代码设计,降低组件之间的...
6. **错误处理与日志记录**:FleaPHP提供了一套完整的错误处理和日志记录机制,有助于调试和优化应用,确保其稳定运行。 7. **缓存管理**:框架内建了缓存支持,包括文件缓存、内存缓存(如APC、Memcached、Redis)...
Fleaphp的轻量级特性使其在小型项目中表现出色,同时,其灵活的配置和丰富的功能也适用于中大型项目。 二、路由系统 Fleaphp的路由系统允许开发者定义URL到控制器方法的映射,这样可以根据URL请求动态地执行相应的...
视图是用户看到并与之交互的界面,Fleaphp框架使用Smarty模板引擎来实现视图层,这样可以将业务逻辑与展示逻辑分离,有助于代码的维护和更新。 6. 自动加载(Autoloading): Fleaphp框架使用PHP 5的__autoload魔术...
### FleaPHP 开发指南知识点总结 #### 一、开始前的准备工作 - **环境配置**: 为了确保学习过程中的顺畅体验,推荐使用统一且稳定的开发环境。文章建议使用APM Express 5(以下简称APMXE5)作为开发工具,并且下载...
FleaPHP的单入口文件是整个框架运行的核心,理解其工作原理对于开发和调试FleaPHP应用至关重要。通过深入研究`FleaPHP核心.chm`文档,开发者可以获得更详细的框架内部机制和最佳实践,从而更好地利用FleaPHP构建高效...
社区的活跃度和友好的氛围有助于初学者快速上手。 总结来说,Fleaphp框架以其简洁高效的设计,为PHP开发者提供了一个快速构建Web应用的工具。理解并熟练运用其核心组件,如模型、视图、控制器、路由和中间件,将使...
`FLEAPHP手册1.chm`为开发者提供了框架的使用指南,包括路由设定、模型构建、视图渲染、控制器操作等,有助于快速理解和应用这个框架。 【Smarty】:Smarty是一个PHP模板引擎,将业务逻辑和显示模板分离,提高代码...
fleaphp.chm手册
在FleaPHP开源应用程序开发框架中,有几个关键的系统方法,它们是开发高效Web应用的基础。下面我们将详细探讨这些方法: 1. **FLEA::initWebControls()**: 这个函数用于初始化WebControls,它返回一个`FLEA_...
### FleaPHP框架学习教程知识点概述 #### 一、FleaPHP框架简介 - **特点**:FleaPHP是一款轻量级的PHP框架,旨在帮助开发者快速、轻松地创建应用程序。该框架简单易懂,拥有丰富的示例和中文文档,支持PHP4和PHP5...
PHP一键安装环,简单,方便,实用。此环境包括[APACHE2+PHP5+MYSQL5] 安装完成后在D盘自动生成apmxe文件夹,双击文件夹中的run-fleaphp.exe自动运行PHP环境。