Report
1 IDE搭建 (nginx+php+mysql)
2 APF V2框架了解 (DEMO)
3 NGINX了解 (configure)
4 项目本地部署 (xinfang_site)
一、IDE搭建
1. 安装方式:[apt-get],[tar -zxvf]
2. 遇到问题:
(1)D:nginx卸载后重新安装,无法完全安装。
S:{
“失败”:卸载时使用“rm”,后用“which nginx”查看仍有部分文件及文件夹,就手动删除了文件及文件夹,后重新安装失败;
"成功":重新尝试“apt-get --purge remove nginx”;参考:http://www.peterbe.com/plog/how-to-uninstall-nginx-with-apt;
}
二、APF框架
1.demo
(1)功能:读取mysql表内容,输出显示;
(2)遇到问题:
1)D:从controller将数组参数传递给page页面后,从html页面解析数组出错;
S:“原因”:二维数组a[n][m]从controller到page后,被解析为n个一维数组b[m];
"解决":将传参语句“return $array;”改为后者的形式“return array("p1"=>$array);”;
2)D:html页面内嵌php的语法错误
S:"参考":http://www.cnblogs.com/janoyu/archive/2010/05/04/sourcejoy_com_php_other_syntax.html;
2. 框架认识
(1)主体目录:classes/,component/,config/,controller/,interceptor/,page/,index.php
(2)请求流程:
1)URL请求经过NGINX路由解析,进行负载均衡分发request,定位到host,后将请求提给php服务器,请求相应资源;
2)调用getInstance()方法获取APF实例,并启动run()方法;
3)APF做加载route、config,查找mapping确定用于处理请求的controller,后拦截器过滤,后controller处理请求;
4)controller处理完成return,后到page目录寻找展示页面XX.php, XX.php调用getView()寻找XX.html,完成页面显示;
三、 NGINX认识
(1)认识:路由定位、负载均衡
(2)配置:
1)主要包括header,events,http,server部分的配置;
2)配置文件为nginx.conf,还有在前者中include的其他配置文件;不同配置文件中出现的不同位置的log文件,一般以/conf.d/my.conf为准;
3)server配置中,rewrite的参数:last和break;last在对url改写后重新返回server进行匹配,而break在改写后不再对后面的location进行匹配;
4)server配置中,servername任意指定,但需要跟php项目中制定的servername对应;
5)server配置中,root和alias。root为路径前缀,匹配时需要先追加location处的匹配规则;alias为全路径,直接匹配;
6)关于fastcgi_params。
Nginx有两份fastcgi配置文件,分别是”fastcgi_params“和”fastcgi.conf“,区别是后者比前者多了一行[SCRIPT_FILENAME]的定义
(fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;)
[fastcgi_param]指令是数组型的,配置时层级优先级是:内层替换外层;当在同级多次使用的时候,是新增而不是替换。
(3)问题
1)location匹配问题。
Nginx 的 location 匹配规则是:“正则 location ”让步 “普通 location”的严格精确匹配结果;但覆盖 “普通 location ”的最大前缀匹配结果。即:先匹配普通 location ,再匹配正则 location ,但是如果普通 location 的匹配结果恰好是“严格精确( exact match )”的,则 nginx 不再尝试后面的正则 location ;如果普通 location 的匹配结果是“最大前缀”,则正则 location 的匹配覆盖普通 location 的匹配。
(4)参考:
1. 完整配置:http://www.cnblogs.com/xiaogangqq123/archive/2011/03/02/1969006.html;
2. rewrite:http://blog.csdn.net/cnbird2008/article/details/4409620;
3. http://jingyan.baidu.com/article/ca41422fe36c261eae99ed9f.html;
4. location匹配:http://blog.csdn.net/yanook/article/details/9629561;
四、项目本地部署
(1)项目内容:“xinfang_site”:[app-aifang-api],[app-aifang-touch],[app-aifang-chart],[app-aifang-api],[/twpages/kfstouch/]
(2)遇到问题
1)D:访问页面无显示。原因:部分支持软件为安装,如solr,redis;
N:注意检查相关扩展插件在php conf中有没有进行配置;
1 IDE搭建 (nginx+php+mysql)
2 APF V2框架了解 (DEMO)
3 NGINX了解 (configure)
4 项目本地部署 (xinfang_site)
一、IDE搭建
1. 安装方式:[apt-get],[tar -zxvf]
2. 遇到问题:
(1)D:nginx卸载后重新安装,无法完全安装。
S:{
“失败”:卸载时使用“rm”,后用“which nginx”查看仍有部分文件及文件夹,就手动删除了文件及文件夹,后重新安装失败;
"成功":重新尝试“apt-get --purge remove nginx”;参考:http://www.peterbe.com/plog/how-to-uninstall-nginx-with-apt;
}
二、APF框架
1.demo
(1)功能:读取mysql表内容,输出显示;
(2)遇到问题:
1)D:从controller将数组参数传递给page页面后,从html页面解析数组出错;
S:“原因”:二维数组a[n][m]从controller到page后,被解析为n个一维数组b[m];
"解决":将传参语句“return $array;”改为后者的形式“return array("p1"=>$array);”;
2)D:html页面内嵌php的语法错误
S:"参考":http://www.cnblogs.com/janoyu/archive/2010/05/04/sourcejoy_com_php_other_syntax.html;
2. 框架认识
(1)主体目录:classes/,component/,config/,controller/,interceptor/,page/,index.php
(2)请求流程:
1)URL请求经过NGINX路由解析,进行负载均衡分发request,定位到host,后将请求提给php服务器,请求相应资源;
2)调用getInstance()方法获取APF实例,并启动run()方法;
3)APF做加载route、config,查找mapping确定用于处理请求的controller,后拦截器过滤,后controller处理请求;
4)controller处理完成return,后到page目录寻找展示页面XX.php, XX.php调用getView()寻找XX.html,完成页面显示;
三、 NGINX认识
(1)认识:路由定位、负载均衡
(2)配置:
1)主要包括header,events,http,server部分的配置;
2)配置文件为nginx.conf,还有在前者中include的其他配置文件;不同配置文件中出现的不同位置的log文件,一般以/conf.d/my.conf为准;
3)server配置中,rewrite的参数:last和break;last在对url改写后重新返回server进行匹配,而break在改写后不再对后面的location进行匹配;
4)server配置中,servername任意指定,但需要跟php项目中制定的servername对应;
5)server配置中,root和alias。root为路径前缀,匹配时需要先追加location处的匹配规则;alias为全路径,直接匹配;
6)关于fastcgi_params。
Nginx有两份fastcgi配置文件,分别是”fastcgi_params“和”fastcgi.conf“,区别是后者比前者多了一行[SCRIPT_FILENAME]的定义
(fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;)
[fastcgi_param]指令是数组型的,配置时层级优先级是:内层替换外层;当在同级多次使用的时候,是新增而不是替换。
(3)问题
1)location匹配问题。
Nginx 的 location 匹配规则是:“正则 location ”让步 “普通 location”的严格精确匹配结果;但覆盖 “普通 location ”的最大前缀匹配结果。即:先匹配普通 location ,再匹配正则 location ,但是如果普通 location 的匹配结果恰好是“严格精确( exact match )”的,则 nginx 不再尝试后面的正则 location ;如果普通 location 的匹配结果是“最大前缀”,则正则 location 的匹配覆盖普通 location 的匹配。
(4)参考:
1. 完整配置:http://www.cnblogs.com/xiaogangqq123/archive/2011/03/02/1969006.html;
2. rewrite:http://blog.csdn.net/cnbird2008/article/details/4409620;
3. http://jingyan.baidu.com/article/ca41422fe36c261eae99ed9f.html;
4. location匹配:http://blog.csdn.net/yanook/article/details/9629561;
四、项目本地部署
(1)项目内容:“xinfang_site”:[app-aifang-api],[app-aifang-touch],[app-aifang-chart],[app-aifang-api],[/twpages/kfstouch/]
(2)遇到问题
1)D:访问页面无显示。原因:部分支持软件为安装,如solr,redis;
N:注意检查相关扩展插件在php conf中有没有进行配置;
2)D:[/xinfang_site/config/aifang-touch/resource.php]和[/xinfang_site/aifang-touch/config/resource.php]两个配置文件的优先级。
N:加载config时,越靠后加载优先级越高。