阿紫
分类
存档
热门文章
最新评论
最新留言
链接
公告
标签云
计数器
91863
搜索
nginx+ci
话说在/application/controllers下写了个hello.php,然后呢,在hello.php里写了个test方法欲输出hello world,可是呢,当我通过http://localhost/ci/index.php/hello/test访问时,却出现404。原因呢,nginx配置。好吧,废话就不多说了(其实也不会说),直接上正确的配置。
server { listen 80; server_name localhost; index index.php index.htm index.html; root /www/php_example/; #limit_conn crawler 20; location / { index index.php index.html; if (!-e $request_filename) { rewrite ^/(.*)$ /index.php/$1 last; } } location ~ .*\\.(php|php5)?$ { #fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location ~ .*\\.(php|php5)?($|/) { set $script $uri; set $path_info ""; if ($uri ~ "^(.+.php)(/.+)") { set $script $1; set $path_info $2; } fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$script; fastcgi_param SCRIPT_NAME $script; fastcgi_param PATH_INFO $path_info; } }
ci
ci:CodeIgniter
M:Model,数据模型。代表你的数据结构。通常来说你的模型类将包含取出、插入、更新你的数据库资料这些功能。
V:View,是展示给用户的信息。一个视图通常是一个网页。
C:Controller,是模型、视图以及其他任何处理HTTP请求说必须的资源之间的中介,并生成网页。
ci是一款轻量级单入口框架。即所有的控制器的访问都从index.php开始并且在index.php中结束。
一、安装:
1、将CodeIgniter文件夹拷贝到网站根目录下
2、配置目录。/application/config/config.php,修改为你的网站域名,如果本地测试localhost即可。
$config['base_url']= 'http://localhost;
3、配置数据库。/application/config/database.php
为了安全起见,application与system可以放在别的地方,只需要在index.php中重新指定路径即可。
$system_path = '/CodeIgniter/system';
$application_folder = '/CodeIgniter/application';
二、CodeIgniter目录结构:
system:框架程序目录
core: 核心程序:框架的基类、初始化
database: 数据库操作相关的程序
fonts: 字库
helpers: 辅助函数
language: 语言包
libraries: 通用类库,比如验证、缓存、图像处理
application:项目目录
cache: 存放数据或模板缓存文件
config: 与项目相关的配置
controllers:MVC的控制器,继承CI_Controller
core: 项目的核心程序
errors: 错误提示模板
helpers: 项目的辅助函数
hooks: 在不修改系统核心文件的基础上扩展系统功能
language:语言包
libraries: 通用类库
logs: 日志
models: MVC模型,一般继承CI_Model
thride_party:第三方库
views: MVC视图,主要是模板
三、业务流程
- index.php 作为前端控制器,初始化运行 CodeIgniter 所需要的基本资源。
- Router 检查 HTTP 请求,以确定谁来处理请求。
- 如果缓存(Cache)文件存在,它将绕过通常的系统执行顺序,被直接发送给浏览器。
- 安全(Security)。应用程序控制器(Application Controller)装载之前,HTTP 请求和任何用户提交的数据将被过滤。
- 控制器(Controller)装载模型、核心库、辅助函数,以及任何处理特定请求所需的其它资源。
- 最终视图(View)渲染发送到 Web 浏览器中的内容。如果开启缓存(Caching),视图首先被缓存,所以将可用于以后的请求。
url 组成: 入口---->控制器---->方法------>参数
例: localhost/index.php/welcome/index
localhost:域名
index.php: 主入口文件
welcome: 控制器名
index: welcome中的一个方法
如果方法名空缺,默认访问当前控制器下的index方法;
四、控制器
1、控制器:
一个控制器就是一个类文件,用户通过URL访问的就是某个控制器类中的具体成员方法,并由这个方法中的代码去做某些操作
2、创建控制器:
a、创建文件夹/application/controllers;
b、类名必须以大写字母开头
c、集成核心的控制器类CI_Controller
3、创建方法:
a、就是创建一个成员方法function()
b、默认访问的是index方法
4、URL如何传递参数给方法
方法段后的按次序传入方法中的形式参数
php执行外部命令
这几天在做一个域名解析的东东,要在php中调用系统命令,就整理一下。
一、使用exec()函数执行系统外部命令:
原型:function exec(string $command,array[optional] $output,int[optional] $return_value) 例:exec("nslookup $s1 $s2",$result,$output);//执行nslookup命令
exec执行系统外部命令时不会输出结果,而是返回结果的最后一行,如果想得到结果可以使用第二个参数,将结果输出到指定的数组,数组一个记录代表输出的一行,第三个参数是取得命令执行的状态码,执行成功返回0.
二、使用system函数执行系统外部命令:
原型:function system(string $command,int[optional] $return_value) 例:system("nslookup $s1 $s2");
三、使用函数passthru执行外部命令:
原型:function passthru(string $command,int[optional] $return_value)
与system的区别是,passthru直接将结果输出到浏览器,但是不返回任何值,且可以输出二进制。
四、反撇号(`)执行外部命令:
使用该命令时要确保shell_exec函数可用。