yii2 模块中使用restful的pretty url带参数导致404 not found cannot resolve url

在模块中加了restful接口,不带参数是可以正常访问的

base_url/controller/action

带上参数不能正常访问

base_url/controller/action/15

如果不用pretty url是可以的

base_url/controller/action?id=15

按照官方文档配置无效http://www.yiichina.com/doc/guide/2.0/rest-versioning

最后发现,用另一种方式声明url rule可以了

我觉得我要弃坑了~~~

使用nginx反向代理docker容器实现不同域名访问不同容器

环境:

ubuntu 16.04

docker 17.05

nginx 1.10.3 (ubuntu)

首先安装nginx

启动docker容器并映射端口

添加反向代理配置/etc/nginx/conf.d/reverse-proxy.conf

启动nginx

 

 

http重定向到https

 

PHP自定义错误处理、异常处理

在阅读yii源码过程中,学习到几个系统级别的错误和异常处理方式。

如果完全自定义,可以调用ini_set(‘display_errors’,false)关闭系统的错误显示,注意,这个和error_reporting的区别,error_reporting是需要打开,参考http://stackoverflow.com/questions/1053424/how-do-i-get-php-errors-to-display

set_error_handler设置错误处理函数,注意函数返回值如果是true,则表示错误已经处理掉,error_get_last将没有错误信息。可以通过trigger_error来触发此函数的执行。

set_exception_handle设置异常处理函数,用来处理没有被捕获的异常

register_shutdown_function注册脚本结束时的处理函数,脚本结束分为正常结束和异常结束,此处都会调用,可以用来计算脚本执行时间之类的。

继续阅读PHP自定义错误处理、异常处理

php mb_parse_str 对 multipart/form-data无效

在处理restful的PUT方法时,Content-type为multipart/form-data时,使用mb_parse_str无法格式化数据。
参考:http://php.net/manual/zh/function.mb-parse-str.php

bool mb_parse_str ( string $encoded_string [, array &$result ] )

解析 GET/POST/COOKIE 数据并设置全局变量。 由于 PHP 不提供原始 POST/COOKIE 数据,目前它仅能够用于 GET 数据。 它解析了 URL 编码过的数据,检测其编码,并转换编码为内部编码,然后设置其值为 arrayresult 或者全局变量。

继续阅读php mb_parse_str 对 multipart/form-data无效