我是在新浪的SAE上安装ThinkPHP,SAE引擎的,直接安装源代码包,而后启动Memcache和MySql服务就能够运行成功了。
已经下载了wampserver,之后有时间试下在本地运行ThinkPHP。
在app/lib/Action/
文件夹下能够为每个模块定义控制器类,一个模块能够包含多个操做方法,当有请求的时候,会从URL参数中解析当前请求的模块和操做。好比定义的默认控制器类IndexAciton.class.php
:php
<?php class IndexAction extends Action{ ptotect function _initialize(){ header("Content-Type:text/html;charset=utf-8"); } public function index(){ $this->display(); } public function imit(){ echo "<h2>Sae服务模拟器功能测试(如下服务在本地也能够运行):</h2>"; } }
访问http://localhost/
,系统会访问默认的模块(Index)的默认操做(index)。相对的输入http://localhost/Index/imit
,系统就会访问默认的模块(Index)的操做方法(imit)。这种URL模式是PATHINFO模式,ThinkPHP的默认格式,还能够在ThinkPHP/Conf/convention.php
里设置其余格式,如普通模式、REWRITE模式和兼容模式。html
只是笔记,为何不能设置为仅本身可见呢,我写的乱七八糟都很差意思给人看啊。app
URL请求的REWRITE模式,是在PATHINFO模式的基础上添加剧写规则的支持,Apache的话,是在入口文件同级处添加.htaccess文件,内容是:ide
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] </IfModule>
只有这样是不行的,还须要开启Apache的rewrite功能。在httpd.conf
配置文件中找到LoadModule rewrite_module modules/mod_rewrite.so
去掉前面的#
,找到AllowOverride None
改成AllowOverride All
。如此才有效。测试