安装certbot.
https://certbot.eff.org/
选择操作系统和web服务器
centos 7需要安装epel源
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm rpm -ivh epel-release-latest-7.noarch.rpm yum -y install yum-utils yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional sudo yum install certbot-nginx
在命令行下运行下面的命令生成证书
certbot certonly --cert-name www.hiworld.com -d www.hiworld.com -d hiworld.com --webroot -w /data/www/hiworld/web --email abc@qq.com --no-eff-email --agree-tos certbot certonly --cert-name hiworld-api-certbot -d api.hiworld.com --webroot -w /data/www/php/ladder/frontend/web --email abc@qq.com --no-eff-email --agree-tos certbot certonly --cert-name hiworld-web-certbot -d www.hiworld.com -d hiworld.com --webroot -w /data/www/php/ladder_web --email abc@qq.com --no-eff-email --agree-tos certbot certonly --cert-name hiworld-mobile-certbot -d m.hiworld.com --webroot -w /data/www/php/dist --email abc@qq.com --no-eff-email --agree-tos
--cert-name 证书名称
-d 域名
--webroot -w web站点的根目录,注:此处应和nginx的root保持一致,certbot会在该目录下生产.well-konwn目录,并且该目录下生产的文件要可以访问
--email 邮件地址 此处加上这个选项,就不要在生成时在命令行输入了
--agree-tos 此处加上这个选项,就不要在生成时在命令行输入了
查看本机的出口公网IP信息:
curl ifconfig.me
或者:
curl cip.cc
今天遇到一个问题,在适用lararl跑脚本对老师的作息表进行拆分(一个6000多行的表拆分后带个300万行)时,发现随着脚本的运行,内存的使用量在不断增加,cpu的占用也随之在不断的增加。最后因为内存不够用而中断退出。
一开始的想可能是因为内存不够用,所以在脚本前面加入ini_set('memory_limit', '512M'); 发现内存还是不够用,又增加到1024M,2048M...,最后也没有解决问题,内存占用到50%多的时候依然会挂掉,我们的开发机是2核4G的阿里云ECS,这样不断加内存的方法显然是不行的,因为操作系统的剩余内存是有限的。
后来想,可能是数组在插入到数据库后没有unset掉,造成内存溢出。所以尝试,每次插入数组后unset掉,依然没有解决内存占用过高的问题。
最后想到,有可能是因为数据库连接的问题,在脚本执行的过程中,PDO连接一直被占用,没有被释放。随着数据量的不断增加,PDO连接需要处理的数据量一直在增加。所需要的内存也会一直增加。
按照这个思路,可以在处理完一部分数据时(比如拆分完200行时),可以断开一下PDO连接,然后重连一次,这样可以释放一次内存。
laravel里面有关数据库连接的方法在vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php中,disconnect()可以断开PDO连接,reconnect()断开连接后重连,但是这两个方法都是只断开不会释放连接,当再次连接时,直接从 $this->connections数组中取出来。purge()断开连接后,会将他从$this->connections中unset掉,释放内存。看来就是这个方法了。
\DB::connection()->enableQueryLog(); $result = \DB::select('select * from activity'); $log = \DB::getQueryLog(); dd($log); \error_log('$log = ' . print_r($log, true) . "\n", 3, "/tmp/error.log");
今天遇到github的仓库克隆不下来,报错如下:
fatal: unable to access 'https://github.com/fisher-yu/golang.git/': SSL connect error
过完年回来, github不安分了, 发现博文说不支持TLSv1/TLSv1.1: Weak cryptographic standards removed, 没看到这篇博文之前, 还以为是代理问题, 设置过, 还是不行, 还更新到最新的git, 还是不行, 就查了一下TLS协议, 终于通过git的文档中获得提示: git配置文档.
首先, 更新git, 我也没查过要更新到什么版本, 反正之前用1.8有问题, 接下来的操作都不起效, 换了2.16以后才可以, 有条件就更到最新呗. 至于怎么更新, 自己查资料, 我就不喜欢惯着你们. PS:OpenSSL和libcurl可能也要升级
然后就开始设置了, 就一行命令
git config --global http.sslversion tlsv1
理论上来说, 应该是不支持TLSv1的, 但设置成tlsv1才行, 其他的tlsv1.2什么的都不行, 我也不知道啊, 求指教, 求科普
因为是刚找到的方法, 也许其他大神还没有发现这问题, 如果有更好的办法, 请不吝指教.