腾讯云服务器 CentOS 7.6 快速搭建 LNMP 环境

我在腾讯云上购买了云服务器,系统是 CentOS 7.6 x64,自己整理了以下脚本文件,可以快速安装 LNMP 环境。

文件列表及备注如下:

1-init.sh      # 初始化更新系统软件库
2-account.sh   # 创建 www、mysql 账号
3-openss1.sh   # 安装 openssl-1.1.1d
4-nginx.sh     # 安装 nginx-1.16.1
5-php.sh       # 安装 php-7.2.28
6-mysql.sh     # 安装 mysql-5.7.28
my.cnf         # mysql 的配置文件
nginx.conf     # nginx 的全局配置文件
mysite.conf    # nginx 的示例网站配置文件

包含了 6 个 shell 脚本文件和 3 个配置文件,按顺序执行以上 6 个脚本,php、nginx、mysql 都被安装在 /usr/local 目录下的各自目录。其中,mysql 采用二进制包安装,默认密码保存在 lnmp-script/mysql_new_password.log。默认的配置文件只保证服务能够正常跑起来,如果想要达到最佳性能,需要自己结合服务器硬件配置去做优化。

分类至 杂项
0条评论

浏览器后退到前一页时还原之前的状态

本博客后台有个文章列表页,数据是通过 ajax 加载数据的:

当我翻到第2页时,点击编辑按钮去编辑文章(列表页跟编辑页是同一个 iframe),之后点击浏览器的后退按钮,退回到列表页,但是列表页又从第1页开始加载了,而我希望它停留在之前的第2页不变。所以,在翻页时,要做个记住页码的功能。

曾想过用 cookie、localStore 实现,用 cookie 的话还得引入第三方 js 库,用 localStore 又担心兼容性差,最后还是回归到 form 表单上。

分类至 杂项
0条评论

Git 中修改已提交的用户名/邮箱

1、执行一个 sh 文件

git filter-branch --env-filter '

OLD_EMAIL="旧邮箱"
CORRECT_NAME="新提交的名字"
CORRECT_EMAIL="新提交的邮箱"

if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_COMMITTER_NAME="$CORRECT_NAME"
    export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_AUTHOR_NAME="$CORRECT_NAME"
    export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags

2、如果遇到权限问题则赋予权限,例如

Permission denied

#执行如下命令
chmod +x  XXXX.sh

3、如果遇到以下错误,修复它

Cannot create a new backup.
A previous backup already exists in refs/original/
Force overwriting the backup with -f
 
#执行如下命令
git filter-branch -f --index-filter 'git rm --cached --ignore-unmatch Rakefile' HEAD

4、最后提交(慎重)

git push origin --force --all

 

分类至 杂项
0条评论

git-flow 的工作流程

当在团队开发中使用版本控制系统时,商定一个统一的工作流程是至关重要的。Git 的确可以在各个方面做很多事情,然而,如果在你的团队中还没有能形成一个特定有效的工作流程,那么混乱就将是不可避免的。

基本上你可以定义一个完全适合你自己项目的工作流程,或者使用一个别人定义好的。

在这章节中我们将一起学习一个当前非常流行的工作流程 git-flow。

分类至 杂项
0条评论

Git中的AutoCRLF与SafeCRLF换行符问题

最近在使用GitHub,发现不时没有修改过的文件要提交,对比发现文件全部修改,但找不到不一样的地方。
想可能是换行符的问题,因为Windows和Linux的换行符不一样,而Git默认应该是Linux的,今天Bing了下,果然是这个问题。

CR回车 LF换行Windows/Dos CRLF \r\n
Linux/Unix LF \n
MacOS CR \r

 

分类至 杂项
0条评论

C2 A0 特殊空格

今天下班前往微信的文件传输助手发了一条消息,是SQL语句,如下:

CREATE TABLE `user` (
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '用户ID',
 `username` varchar(20) NOT NULL COMMENT '用户名',
 `password` char(40) NOT NULL COMMENT '登录密码',
 `api_token` varchar(128) NOT NULL DEFAULT '' COMMENT 'token',
 `created_at` int(10) unsigned NOT NULL COMMENT '创建时间',
 `updated_at` int(10) unsigned NOT NULL COMMENT '更新时间',
 PRIMARY KEY (`id`),
 UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表'

晚上回到家,本想复制这条消息记录在家里的电脑创建数据表,却莫名其妙报错了...

分类至 杂项
1条评论

判断两个时间段是否重叠的算法

判断两个时间段是否重叠,如:

startdate1 — enddate1
startdate2 — enddate2

两个时间的重叠分4种情况,若你一一列出这四种情况来判断是否重叠那就弱爆了,最简单的方法:

startdate1 <= enddate2 and enddate1 >= startdate2

若你无法理解上面这种方法,那我还有下面的方法提供给你:

(startdate1 BETWEEN startdate2 AND enddate2)
or (enddate1 BETWEEN startdate2 AND enddate2)
or (startdate2 BETWEEN startdate1 AND enddate1)
or (enddate2 BETWEEN startdate1 AND enddate1)

分类至 杂项
0条评论

nginx 做 websocket 代理

首先,在 nginx.conf 的 http{ } 段添加:

map $http_upgrade $connection_upgrade {
    default upgrade;
    '' close;
}

然后,在 server{ } 段添加:

location /wss/  {
    proxy_pass http://127.0.0.1:9501/;
    proxy_http_version 1.1;    
    proxy_connect_timeout 4s;
    proxy_read_timeout 60s;
    proxy_send_timeout 60s;
    proxy_set_header Upgrade $http_upgrade;    
    proxy_set_header Connection "Upgrade";    
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

 

分类至 杂项
0条评论