效果图:
参考:
http://php.net/manual/zh/function.pack.php
https://www.jianshu.com/p/947528f3dff8
http://blog.csdn.net/midfar/article/details/7227758
效果图:
参考:
http://php.net/manual/zh/function.pack.php
https://www.jianshu.com/p/947528f3dff8
http://blog.csdn.net/midfar/article/details/7227758
在模块中加了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可以了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
components' => [ ... 'urlManager' => [ 'enablePrettyUrl' => true, 'enableStrictParsing' => false, 'showScriptName' => false, 'rules' => [ [ 'class' => 'yii\rest\UrlRule', 'controller' => [ 'api/v1_0/user', ], 'tokens'=>[ '{id}' => '<id:\\d[\\d,]*>', //default ], 'extraPatterns'=>[ 'GET,HEAD {id}/projects' => 'projects', ] ], ], 'rules'=>[ '<module:\w+>/<controller:\w+>/<action:\w+>/<id:\d+>'=>'<module>/<controller>/<action>', ], ] ], |
我觉得我要弃坑了~~~
环境:
ubuntu 16.04
docker 17.05
nginx 1.10.3 (ubuntu)
首先安装nginx
1 |
apt-get install -y nginx |
启动docker容器并映射端口
1 |
docker run -d -p 8080:80 --name domain1 httpd |
1 |
docker run -d -p 8081:80 --name domain2 httpd |
添加反向代理配置/etc/nginx/conf.d/reverse-proxy.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
server { listen 80; server_name domain1.com; location / { proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:8080; } access_log /var/log/nginx/domain1.com_access.log; } server { listen 80; server_name domain2.com; location / { proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:8081; } access_log /var/log/nginx/domain2_access.log; } |
启动nginx
1 |
/etc/init.d/nginx start |
http重定向到https
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
server { listen 80; server_name domain.com; return 301 https://$server_name$request_uri; } server { listen 443; server_name domain.com; ssl on; ssl_certificate /home/ca/yun2.nopass.crt; ssl_certificate_key /home/ca/yun2.nopass.key; location / { proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://127.0.0.1:8080; } client_max_body_size 512M; access_log /var/log/nginx/yun2.ahuer.com_access.log; } |
在用mysqli的multi_query开发数据库备份恢复功能过程中遇到了MySQL server has gone away错误。主要解决方案是,配置mysql配置文件的max_allowed_packet配置,如:max_allowed_packet = 100M,以下是问题重现。 继续阅读mysqli multi_query MySQL server has gone away
在vue.js里定义嵌套组时发现一个问题,只有最外层的组件被渲染了,代码如下 继续阅读Vue.js嵌套组件定义
在阅读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注册脚本结束时的处理函数,脚本结束分为正常结束和异常结束,此处都会调用,可以用来计算脚本执行时间之类的。
在处理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 编码过的数据,检测其编码,并转换编码为内部编码,然后设置其值为 array 的
result
或者全局变量。