Gowhich

Durban's Blog

前提是我用的是ubuntu

Image

通过增加swap的大小,就能提升程序运行速度,对于程序开发的我,还是被耍了一下,我居然不知道

最近运行浏览器google chrome,无意间打开了多个tab,然后就发现电脑卡住了

无意间最近观察了下进程发现swap在卡住的时候是占用满了的,然后还是2G我发现不对,于是想着这玩意以前接触过,应该可以扩容于是搞起来

1
sudo fallocate -l 8G /swapfile8 # 创建命令
1
sudo mkswap /swapfile8 # 格式化命令
1
sudo swapon /swapfile8 # 挂载swap

如果swap在使用中,需要先进行卸载swap操作

1
sudo swapoff /swapfile # 卸载swap

注意我是卸载的*/swapfile不是/swapfile8*

最近网站被发现有漏洞,网安管的越来越严格了

简单说就是需要做一些基本的配置

配置如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
server_tokens off; # 隐藏版本号
proxy_hide_header X-Powered-By; # 关闭 x-powerd-by
proxy_cookie_path / "/; Path=/; Secure; HttpOnly";
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
add_header X-Frame-Options SAMEORIGIN;
add_header Content-Security-Policy "default-src 'self' *.qeeniao.com; script-src 'self' 'unsafe-inline' 'unsafe-hashes' *.qeeniao.com https://hm.baidu.com; style-src 'self' 'unsafe-inline' 'unsafe-hashes' *.qeeniao.com";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options nosniff;
add_header Cache-Control max-age=3600;

if ($request_method ~* OPTIONS) {
return 403;
}

只要在nginx的配置中加入这几项

composer安装SSL证书异常处理,报错信息:error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed

最近发现composer的传统安装方式不行了

传统方式

1
2
3
curl --insecure -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

主要是,执行

1
curl --insecure -sS https://getcomposer.org/installer | php

报错。

有的时候报错

All settings correct for using Composer
Downloading…
Failed to decode zlib stream

有的时候报错

All settings correct for using Composer
Downloading…
The “https://getcomposer.org/versions“ file could not be downloaded: SSL operation failed with code 1. Open
SSL Error messages:
error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed
Failed to enable crypto
failed to open stream: operation failed
Retrying…
The “https://getcomposer.org/versions“ file could not be downloaded: SSL operation failed with code 1. Open
SSL Error messages:
error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed
Failed to enable crypto
failed to open stream: operation failed
Retrying…
The “https://getcomposer.org/versions“ file could not be downloaded: SSL operation failed with code 1. Open
SSL Error messages:
error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed
Failed to enable crypto
failed to open stream: operation failed
The download failed repeatedly, aborting.

使用

1
curl --insecure -ksS https://getcomposer.org/installer | php

也不行,依然报错

All settings correct for using Composer
Downloading…
The “https://getcomposer.org/versions“ file could not be downloaded: SSL operation failed with code 1. Open
SSL Error messages:
error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed
Failed to enable crypto
failed to open stream: operation failed
Retrying…
The “https://getcomposer.org/versions“ file could not be downloaded: SSL operation failed with code 1. Open
SSL Error messages:
error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed
Failed to enable crypto
failed to open stream: operation failed
Retrying…
The “https://getcomposer.org/versions“ file could not be downloaded: SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed
Failed to enable crypto
failed to open stream: operation failed
The download failed repeatedly, aborting.

执行

1
php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"

也不行。

可能是我服务器的证书问题,具体原因不详,具体解决方案如下

1
wget --no-check-certificate https://install.phpcomposer.com/installer -O ./composer-setup.php

下载安装文件,再下载证书文件

1
wget https://curl.haxx.se/ca/cacert.pem --no-check-certificate -O ./cacert.pem

修改php.ini中的openssl.cafile配置

1
vi /usr/local/lib/php.ini

修改为

1
openssl.cafile=/root/cacert.pem

退出修改在执行

1
php composer-setup.php

就可以安装成功了

命令很简单

1
curl -o /dev/null -s -w %{http_code}---%{content_type}---%{time_namelookup}---%{time_namelookup}---%{time_connect}---%{time_starttransfer}---%{time_total}---%{speed_download}"\n" "http://www.baidu.com/"

把”http://www.baidu.com"替换一下就可以了

下面对参数进行下说明

-o /dev/null:把curl 返回的html、js 写到垃圾回收站[/dev/null]
-s:去掉所有状态
-w:按照后面的格式写出rt

http_code http:状态码

content_type:类型

time_namelookup:DNS解析域名的时间

time_commect:client和server端建立TCP连接的时间

time_starttransfer:从client发出请求,到web的server响应第一个字节的时间

time_total:client发出请求,到web的server发送回所有的相应数据的时间

speed_download:下载速度 单位 byte/s

— 分隔符号

GET

1
curl -v www.xxx.com/xxx/xxx/xx

POST

1
2
curl -v www.aaa.com/xxx/xxxx -d 'xx=14&xxx=xxx'
curl -v -X POST www.aaa.com/xxxx -d 'xx=14&xxx=ddd'

PUT

1
curl -v -X PUT -d "xx=19&xx=C" www.xx.com/ss/ss

DELETE

1
curl -v -X DELETE www.xx.com/xx/sss

如何添加HEADER

1
curl -v -H 'ApiKey:xxx' -H 'Sign:xxx' -H 'RequestTime:xxx' -H 'Content-Type:application/json' -H 'User-Agent:PostmanRuntime/7.26.10' -H 'Accept:*/*' -H 'Accept-Encoding:gzip, deflate, br' -H 'Connection:keep-alive' -X POST www.xx.com/test/xxxx -d '{"xxx":"xxx","dd":"1"}'

laravel部署错误提示“Please provide a valid cache path.”解决办法

解决方法如下:

1、确保storage目录下有如appframeworkviews三个目录。

2、确保storage/framework目录下也有cachesessionsviews三个目录。

缺少以上目录就手动创建,然后访问网站首页试试。

使用vim最开始的时候,如果是写python的话,首先需要配置的就是缩进

如果缩进没有配置,对于入门pyhton的小白,可以说是非常苦恼,因为缩进出问题的话,代码写了也是编译不通过的

如何配置tab

首先打开~/.vimrc,没有的话自己创建一个~/.vimrc

在.vimrc中添加如下配置

1
2
3
4
set shiftwidth=4 " 缩进的宽度
set softtabstop=4 " 退回缩进的宽度
set nu " 显示行号
set autoindent " 自动缩进

配置完之后保存,再进行编辑文件的时候,在操作换行时缩进的宽度就变成了4

VIM 缩进(这个适用于在打开vim的情况下)

VIM设置自动缩进:

1
2
set autoindent
set cindent

VIM Tab键宽度

1
set tabstop=4

统一设置为缩进为4

1
2
set softtabstop=4
set shiftwidth=4

不要用空格键代替空格

1
set noexpandtab

显示行号:

1
set number

以上命令的输入需要在打开vim的情况下,先输入:(冒号)之后在输入对应的命令

前景

最近在试驾Nestjs,感觉还不错,但是知识点满多的,嗯,暂时还没放弃

在试驾的过程中,遇到一个获取数据逻辑,现在的逻辑这样的,函数如下

1
2
3
4
5
6
7
8
9
10
11
12
13
@Get('/index')
index(@Res() res: Response) {
var cats: Promise<Cats[]> = this.catsService.findAll();

cats.then(data => {
return res.render('cats/index', {
message: 'Cats',
data: data
})
}).catch(error => {
console.log(error);
})
}

写完之后,发现then…catch,让我想起来,我用Reactjs开发的时候,曾经把这玩意换成了async/await于是,函数修改成如下

1
2
3
4
5
6
7
8
9
10
11
@Get('/index')
async index(@Res() res: Response) {
var cats: Promise<Cats[]> = this.catsService.findAll();

var data = await cats;

return res.render('cats/index', {
message: 'Cats",
data: data,
})
}

该写完之后,又让我想起来,我在用Nodejs写接口的时候,需要对await cats的执行做下异常捕获,不然访问的时候直接崩溃,对终端不太友好,于是该写如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Get('/index')
async index(@Res() res: Response) {
var cats: Promise<Cats[]> = this.catsService.findAll();

try {
const data = await cats;

return res.render('cats/index', {
message: 'Cats",
data: data,
})
} catch (err) {
// 处理异常逻辑
console.log(err);
}
}

建议:使用async/await的情况下,如果遇到异常会导致接口异常,为了能够正常处理逻辑,可以使用try…catch

日常工作中查看进程的命令有ps和top,但是只能查看到相对路径,如果想看到详细的信息,如绝对路径等是比较困难的

不过可以通过如下的方法来查看进程的详细信息

Linux在启动一个进程的时候,系统会在/proc目录下面创建一个以PID命名的文件夹

比如以nginx为例

1
2
3
4
5
6
$ ps -ef | grep nginx
root 3882 3865 0 2020 pts/0 00:00:00 nginx: master process /usr/bin/openresty -g daemon off;
nobody 3969 3882 0 2020 pts/0 00:00:03 nginx: worker process
nobody 3970 3882 0 2020 pts/0 00:00:05 nginx: worker process
nobody 3971 3882 0 2020 pts/0 00:00:10 nginx: worker process
nobody 3972 3882 0 2020 pts/0 00:00:57 nginx: worker process

我们拿PID 3882查看下

1
2
3
4
$ ls /proc/3882
attr cgroup comm cwd fd io map_files mountinfo net oom_adj pagemap root sessionid stack status timers
autogroup clear_refs coredump_filter environ fdinfo limits maps mounts ns oom_score personality sched setgroups stat syscall uid_map
auxv cmdline cpuset exe gid_map loginuid mem mountstats numa_maps oom_score_adj projid_map schedstat smaps statm task wchan

其中包括一个名为exe的文件,这个文件即记录了绝对路径,通过llls -l命令即可查看。

里面的文件的含义,如下

  • cwd 符号链接的是进程运行目录;
  • exe 符号连接就是执行程序的绝对路径;
  • cmdline 就是程序运行时输入的命令行命令;
  • environ 记录了进程运行时的环境变量;
  • fd 目录下是进程打开或使用的文件的符号连接。

其他的请自行搜索

composer安装错误处理

错误提示内容

Class UpdateHelper\ComposerPlugin contains 2 abstract methods and must therefore be declared abstract or implement the remaining methods

解决办法

1
2
rm -rf vendor
composer require kylekatarnls/update-helper:"^1.2.1"

composer版本:[email protected]

参考文章:https://github.com/kylekatarnls/update-helper/issues/7

0%