//.................. 其他代码 ...........................import axios from 'axios';// axios 请求超时配置 原本为5000毫秒改为30000,即30秒axios.defaults.timeout = 30000;//.................. 其他代码 ...........................WRITING LOG · 03
技术博客
记录技术实践、问题排查和持续成长,把每一次解决问题的过程留下来。
WORKSPACE
文章阅读
上传文件时nginx网络状态码499无响应
2022-08-31
今天测试了下文件上传,主要是因为文件需要加密后放到文件储存服务上。结果在测试的我写的接口时候总是无响应,排查代码错误日志没任何信息,只有nginx日志有个状态码499。上网查了一圈都叫我改php-fpm和nginx配置,我查了php和nginx配置:上传文件大小限制没问题,等待请求响应时间没问题,保持http会话问题。最后发现是前端js请求头axios设置了5秒的timeout请求超时。cao!幸好前后端都是我在写,不然又不知道要跟前端拉扯几个回合。改动配置如下:
关于Linux终端vim鼠标选中文字会变成可视模式(views)的问题
2022-08-31
有时候想鼠标复制下vim打开的文件,结果发现鼠标选中文本时会变成可视模式无法右键复制。查了下资料发现其实在vim命令模式下输入:set mouse-=a回车就可以了。想要永久有效就改下vim配置文件/usr/share/vim/vim81/defaults.vim
if has('mouse') #把set mouse=a 改成了 -=a set mouse-=aendif
让php支持除了.php以外的自定义后缀文件
2022-08-26
有时候为了项目安全不想让访问者试出index.php想要隐藏.php后缀改为其他格式,比如改为.myphp .asp .do。当然主流php框架比如laravel、thinkphp、CI等都支持单入口模式,只开放public/index.php。那目前要做的一步就是把index.php也改了。操作如下:先改php-fpm下面的的配置,比如我的php-fpm项目配置目录是/etc/php-fpm/php-fpm.d/www.conf。找到;security.limit_extensions这行,去掉前面的;改为
security.limit_extensions = .myphp .asp .do然后重启php-fpm,centos7 下面可以用命令 service php-fpm restart。找到nginx对应的项目配置,比如我的nginx配置是/etc/nginx/conf.d/test.conf,改成这样: #省略的其他配置代码........ location / { root /你的项目根目录; index myphp.do; if ( -f $request_filename) { break; } if ( !-e $request_filename) { rewrite ^/(.*)$ /myphp.do?s=/$1 last; break; } } location ~* \.do$ { root /你的项目目录; fastcgi_index myphp.do; fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; }
php解析mp3音乐专辑信息
2022-08-25
//解析mp3音乐文件额外信息(歌曲名/歌手/专辑名称等)function parse_mp3($file_name) { $info_struct = [ "song_name" => [3, 33, 'trim'], "artist_name" => [33, 63, 'trim'], "album_name" => [63, 93, 'trim'], "year" => [93, 97, 'trim'], "comment" => [97, 126, 'trim'], "genre" => [127, 128, 'genre_name'] ]; $fp = fopen($file_name, "rb") or die("文件打开失败!"); fseek($fp, -128, SEEK_END); $mp3_info = []; $tag = fread($fp, 3); if ($tag == 'TAG') { foreach ($info_struct as $key => $arr) { fseek($fp, $arr[0] - 128, SEEK_END); $mp3_info[$key] = call_user_func($arr[2], fread($fp, $arr[1] - $arr[0])); } } fclose($fp); return $mp3_info;} function genre_name($genre) { $genre = ord($genre); $genre_arr = [ '8' => 'Jazz', '10' => 'New Age ', '11' => 'Oldies ', '12' => 'Other', '13' => 'Pop', '14' => 'R&B', '15' => 'Rap', '16' => 'Reggae', '17' => 'Rock' ]; if (array_key_exists($genre, $genre_arr)) { return $genre_arr[$genre]; }else{ return "Unknow"; }}
php laravel文件上传时接收文件大小为0
2022-08-16
业务需要写了个文件上传,使用的laravel框架上传文件。使用laravel官方提供的request()方法调用校验文件isValid()无论如何都无法通过校验。用dd($_FILES)打印出结果发现文件size为0。
检查了下上传的文件有5M多不可能为0,但是也没报错。怀疑是文件大小超出了php.ini限制的大小,结果确实是这样于是改了下配置。
检查了下上传的文件有5M多不可能为0,但是也没报错。怀疑是文件大小超出了php.ini限制的大小,结果确实是这样于是改了下配置。upload_max_filesize=100Mpost_max_size=100M改完重启php-fpm和nginx搞定!
解决Vue烦人的数据双向绑定赋值问题
2022-08-09
有时候需要vue的v-model绑定数据,但是一旦绑定的变量需要赋值重新使用的时候又不需要双向绑定。这时候就需要用到浅拷贝了,这样写就可以了:Object.assign({},你需要去掉原型链属性的变量)